(defun c:ahl (/ p1 p2 p3 p4 a10 a1 a2 s1 s2 lin pickpt linname lindata ang1)
(setq cosmode (getvar “OSMODE”))
(setvar “OSMODE” 0)
(setq lin (entsel “nPick a line: “)
pickpt (cadr lin)
linname (car lin)
lindata (entget linname)
p1 (cdr (assoc 10 lindata))
p2 (cdr (assoc 11 lindata))
p11 (cdr (assoc 10 lindata))
p12 (cdr (assoc 11 lindata))
)
(if ( (distance p11 pickpt) (distance pickpt p12))
(setq p13 p11
p11 p12
p12 p13
)
)
(setq ang (angle p1 p2)
ang1 (* (/ ang pi) 180)
a10 (* (/ 10.0 180) pi)
a1 (+ (- ang a10) pi)
a2 (+ (+ ang a10) pi)
)
(setq 1ang (angle p11 p12)
1ang1 (* (/ 1ang pi) 180)
1a10 (* (/ 10.0 180) pi)
1a1 (+ (- 1ang 1a10) pi)
1a2 (+ (+ 1ang 1a10) pi)
)
(if (= (getvar “USERR1”) 0.0)
(setvar “USERR1” 3.0)
)
(setq s1 (getvar “USERR1”))
(setq mess (strcat “nArrow Size = “))
(setq s2 (getreal mess))
(if (= s2 nil)
(setq s2 s1)
(setvar “USERR1” S2)
)
(setq p3 (polar p2 a1 s2)
p4 (polar p2 a2 s2)
)
(setq p13 (polar p12 1a1 s2)
p14 (polar p12 1a2 s2)
)
(command “SOLID” p2 p3 p4 p3 “”)
(command “SOLID” p12 p13 p14 p13 “”)
(setvar “OSMODE” cosmode)
(princ)
)
선 양끝에 화살표를 그려주는 리습입니다만
한번에 1개씩만 선택이됩니다. 이걸 한번에 여러개 선택해서 바꾸고 싶은데 어떻게 수정해야하나요?
(defun c:ahl (/ p1 p2 p3 p4 a10 a1 a2 s1 s2 lin pickpt linname lindata ang1)
(setq cosmode (getvar “OSMODE”))
(setvar “OSMODE” 0)
(setq ss (ssget ‘((0 . “LINE”))))
(if (/= ss nil)
(progn
(if (= (getvar “USERR1”) 0.0) (setvar “USERR1” 3.0))
(setq s1 (getvar “USERR1”))
(setq mess (strcat “nArrow Size = “))
(setq s2 (getreal mess))
(if (= s2 nil) (setq s2 s1) (setvar “USERR1” S2))
(repeat (setq n (sslength ss))
(setq ent (ssname ss (setq n (1- n))))
(setq lindata (entget ent))
(setq p1 (cdr (assoc 10 lindata)))
(setq p2 (cdr (assoc 11 lindata)))
(setq ang (angle p1 p2)
ang1 (* (/ ang pi) 180)
a10 (* (/ 10.0 180) pi)
a1 (+ (- ang a10) pi)
a2 (+ (+ ang a10) pi)
)
(setq 1ang (angle p2 p1)
1ang1 (* (/ 1ang pi) 180)
1a10 (* (/ 10.0 180) pi)
1a1 (+ (- 1ang 1a10) pi)
1a2 (+ (+ 1ang 1a10) pi)
)
(setq p3 (polar p2 a1 s2)
p4 (polar p2 a2 s2)
)
(setq p13 (polar p1 1a1 s2)
p14 (polar p1 1a2 s2)
)
(command “SOLID” p2 p3 p4 p3 “”)
(command “SOLID” p1 p13 p14 p13 “”)
)
)
)
(setvar “OSMODE” cosmode)
(princ)
)