level 1
和睦青蛙
楼主
这段程序是偏移带边,但是现在是鼠标点到那就偏移到哪,能否有大神帮忙加上指定距离便宜的功能,小弟先谢谢了。
(defun c:zxjx()
(setq cm (getvar "cmdecho")
os (getvar "osmode")
)
(setvar "cmdecho" 0) (setvar "osmode" 0)
(command "_undo" "be")
(while (setq ssa (ssget ":S" '((0 . "line"))))
(setq ent (ssname ssa 0)
dxf (entget ent)
p1 (cdr (assoc 10 dxf))
p2 (cdr (assoc 11 dxf))
ang (+ (angle p1 p2) (* 0.5 pi))
)
(if (setq pt (getpoint "\n指定要偏移的那一侧上的点:"))
(progn
(setq pp (polar pt ang 1.0)
jd (inters p1 p2 pt pp nil)
dd (distance pp jd)
)
(command "_offset" dd ent pt "")
(setq ent1 (entlast)
dxf1 (entget ent1)
p3 (cdr (assoc 10 dxf1))
p4 (cdr (assoc 11 dxf1))
)
(command "_line" p1 p3 "" "line" p2 p4 "")
)
)
)
(setvar "osmode" os) (setvar "cmdecho" cm)
(command "_undo" "be")
)
2015年12月23日 14点12分
1
(defun c:zxjx()
(setq cm (getvar "cmdecho")
os (getvar "osmode")
)
(setvar "cmdecho" 0) (setvar "osmode" 0)
(command "_undo" "be")
(while (setq ssa (ssget ":S" '((0 . "line"))))
(setq ent (ssname ssa 0)
dxf (entget ent)
p1 (cdr (assoc 10 dxf))
p2 (cdr (assoc 11 dxf))
ang (+ (angle p1 p2) (* 0.5 pi))
)
(if (setq pt (getpoint "\n指定要偏移的那一侧上的点:"))
(progn
(setq pp (polar pt ang 1.0)
jd (inters p1 p2 pt pp nil)
dd (distance pp jd)
)
(command "_offset" dd ent pt "")
(setq ent1 (entlast)
dxf1 (entget ent1)
p3 (cdr (assoc 10 dxf1))
p4 (cdr (assoc 11 dxf1))
)
(command "_line" p1 p3 "" "line" p2 p4 "")
)
)
)
(setvar "osmode" os) (setvar "cmdecho" cm)
(command "_undo" "be")
)