PLINE?直接炸开不就是直线了。
谢谢Z版,但是不能选择箭头在直线的哪一侧了 顶了先 谢谢分享。 ;线变箭头 明经 ZZXXQQ 2014.8.6
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget '((0 . "LINE,LWPOLYLINE")))) (progn
(repeat (setq i (sslength ss))
(setq ent (entget (ssname ss (setq i (1- i)))))
(if (= (cdr(assoc 0 ent)) "LINE") (progn
(setq p1 (cdr(assoc 10 ent))
p2 (cdr(assoc 11 ent)))
(command "_.LEADER" p1 p2 "" "" "N")
) (progn
(setq plst (list))
(foreach x ent (if (= (car x) 10) (setq plst (cons (cdr x) plst))))
(if (setq fx (getpoint "\n端点: "))
(if (< (distance fx (last plst)) (distance fx (car plst)))
(setq plst (reverse plst))
)
)
(setq p1 (car plst))
(command "_.LEADER" P1)
(mapcar '(lambda (a) (command a)) (cdr plst))
(command "" "" "N")
))
)
(command "_.ERASE" ss "")
))
(setvar "CMDECHO" 1)
(princ)
)
不错。赞一个 本帖最后由 dabingrain 于 2016-6-1 12:35 编辑
;线变箭头 明经 ZZXXQQ 2014.8.6
(defun c:tt ()
(setvar "CMDECHO" 0)
(if (setq ss (ssget ":S" '((0 . "LINE,LWPOLYLINE"))))
(progn
(repeat (setq i (sslength ss))
(setq i (1- i))
(setq en (ssname ss i))
(redrawen 3)
(setq ent (entget en))
(if (= (cdr(assoc 0 ent)) "LINE")
(progn
(setq
p1 (cdr(assoc 10 ent))
p2 (cdr(assoc 11 ent))
)
(if (setq fx (getpoint "\n端点: "))
(if (< (distance fx p1) (distance fx p2))
(command "_.LEADER" p1 p2 "" "" "N")
(command "_.LEADER" p2 p1 "" "" "N")
)
)
)
(progn
(setq plst (list))
(foreach x ent
(if (= (car x) 10)
(setq plst (cons (cdr x) plst))
)
)
(if (setq fx (getpoint "\n端点: "))
(if (< (distance fx (last plst)) (distance fx (car plst)))
(setq plst (reverse plst))
)
)
(setq p1 (car plst))
(command "_.LEADER" P1)
(mapcar '(lambda (a) (command a)) (cdr plst))
(command "" "" "N")
)
)
(redrawen 4)
)
(command "_.ERASE" ss "")
)
)
(setvar "CMDECHO" 1)
(princ)
) 谢谢分享!!!! dabingrain 发表于 2016-6-1 10:52
能不用端點去判斷箭頭就好了,直線自由點在屏幕上,離那個端點近自由判斷箭頭在那邊,這樣操作比較爽
页:
1
[2]