九江市八里湖礼赞:AUTOCAD中画直线

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 12:19:53
如何画一条直线使之与某斜线成指定夹角

在原来的直线上画一条直线与原直线重叠,然后选中后画的直线,用旋转命令RO ,捕捉端点旋转你想要的角度,顺时针为负,逆时针为正!!

用构造线来画比较方便。
xline→角度(A)→参照(R)→选择直线对象→输入构造线的角度→指定通过点 即可。

如果所要旋转的角度没有准确的度数,也就是说,比如要把一条直线旋转至与另一直线重合,也可用旋转命令,在提示输入角度时输入字符R,然后指定第一点,第二点,确定,ok搞定.

搞得这么复杂,直接用极坐标就ok了哦

我记得找到测量点的切线方向~没有别的办法,要确定测量点才可以~
多算一算~
这里有个实例~
(DEFUN c:jfx (/ E E1 ENA L P1 P2 P3 P4 P5 P6 P7 P8 P9)
(IF (SETQ E (CAR (NENTSEL "\n请选取欲画角分线的第一条线:")))
(PROGN
(IF (/= (SETQ ENA (PENAME E)) "LINE");判断第一条直线是否为直线
(ALERT (STRCAT "选择的实体不是直线, 是" ENA "."))
(PROGN
(IF (SETQ E1 (CAR (NENTSEL "\n请选取第二条直线:")))
(PROGN
(IF (/= (SETQ ENA (PENAME E)) "LINE");判断第二条直线是否为直线
(ALERT (STRCAT "选择的实体不是直线, 是" ENA "."))
(PROGN
(SETQ L (PLINEL E)
P1 (NTH 1 L);第一条直线起点坐标
P2 (NTH 2 L);第一条直线终点坐标
L (PLINEL E1)
P3 (NTH 1 L);第二条直线起点坐标
P4 (NTH 2 L);第二条直线终点坐标
)
(SETQ P5 (INTERS P1 P2 P3 P4 nil));判断两条直线是否相交并把交点坐标赋值给P5
(IF P5
(PROGN
(IF (< (DISTANCE P5 P1) (DISTANCE P5 P2));如果51距离小于52距离
(SETQ P8 P1 P1 P2 P2 P8);那么12两点坐标互换,P8为中间变量
)
(IF (< (DISTANCE P5 P3) (DISTANCE P5 P4));如果53距离小于54距离
(SETQ P8 P3 P3 P4 P4 P8);那么34两点坐标互换
)
(SETQ P6 (POLAR P5 (ANGLE P5 P1) (DISTANCE P5 P1));以P5为圆心51为半径作圆
P7 (POLAR P5 (ANGLE P5 P3) (DISTANCE P5 P1));圆与34直线的交点
P8 (POLAR P6 (ANGLE P6 P7) (* 0.5 (DISTANCE P6 P7)));角分线第一点
)
(SETQ P6 (POLAR P5 (ANGLE P5 P2) (DISTANCE P5 P2));以P5为圆心52为半径作圆
P7 (POLAR P5 (ANGLE P5 P4) (DISTANCE P5 P2));圆与34直线的交点
P9 (POLAR P6 (ANGLE P6 P7) (* 0.5 (DISTANCE P6 P7)));角分线第二点
)
)
(PROGN;else
(IF (INTERS P1 P3 P2 P4 1)
(SETQ P5 P3 P3 P4 P4 P5)
)
(SETQ P8 (POLAR P1 (ANGLE P1 P3) (* 0.5 (DISTANCE P1 P3)))
P9 (POLAR P2 (ANGLE P2 P4) (* 0.5 (DISTANCE P2 P4)))
)
)
)
;改变长度
(setq len (getreal "\n请键入角分线的长度:"))
(setq p8 (polar p9 (angle p9 p8) len))
(PLINE P8 P9)
)
)
)
)
)
)
)
)
)

(defun pename(e);提取图元的名称
(cdr (assoc 0 (entget e)));组码为0
)

(defun plinel(e / el p1 p2)
(setq el (entget e)
p1 (cdr (assoc 10 el));直线起点坐标
p2 (cdr (assoc 11 el));直线终点坐标
)
(list el p1 p2)
)

(defun pline(p1 p2);执行画角分线
(command "._line" p1 p2 "")
)