yunfengning 发表于 2018-3-7 20:07:13

点选1#色线的一端,往选定方向偏移出两条虚线(偏移距离分别为1000与2500),得到6...

点选1#色线的一端,往选定方向偏移出两条虚线(偏移距离分别为1000与2500),得到6#色的线

xiang19751218 发表于 2018-3-7 20:07:14

试一试
(defun c:pylj ( / np2 zdpt sd entn qd zd qd2 zd2 dx)
(vl-load-com)
(setvar 'cmdecho 0)
(setq np2 (entsel))
(setq zdpt (cadr np2))
(setq sd (getpoint "\nSide to offset:"))
(foreach dis '(1000 2500)
      (command "offset" dis np2 sd "")
      (setq entn (cons (entlast)entn))
    )

(setq qd (vlax-curve-getstartpoint (car entn)))
(setq zd (vlax-curve-getendpoint (car entn)))
(setq qd2 (vlax-curve-getstartpoint (cadr entn)))
(setq zd2 (vlax-curve-getendpoint (cadr entn)))
(setq dx (ptsort3 (list qd zd qd2 zd2) zdpt))
(entmake (list '(0 . "LINE")(cons 10 (cadr dx))(cons 11 (car dx))'(62 . 6)))
(foreach ent entn (entdel ent))
(setvar 'cmdecho 1)
(princ)
)


(defun ptsort3 (ptlstpt / d ptjuli dsort)
(foreach n ptlst
    (setq d (distance n pt))
    (setq ptjuli (cons(list d n)ptjuli))
)
(setq dsort (vl-sortptjuli '(lambda(x y)(< (car x) (car y) ) ) ))
(list (cadr(car dsort)) (cadr(last dsort)))
)

前生 发表于 2018-3-10 12:34:17

选择线,
offset到你指定的方向,2次
每次(entlast),取实体明,求二个端点。
线生成

yunfengning 发表于 2018-3-11 15:22:27

xiang19751218 发表于 2018-3-11 10:33
试一试
(defun c:pylj ( / np2 zdpt sd entn qd zd qd2 zd2 dx)
(vl-load-com)


谢谢xiang19751218,cad2012测试OK.:handshake
页: [1]
查看完整版本: 点选1#色线的一端,往选定方向偏移出两条虚线(偏移距离分别为1000与2500),得到6...