리습 수정 관련
컨텐츠 정보
- 228 조회
- 1 댓글
- 0 추천
- 0 비추천
- 목록
본문
(defun c:ff(/ e a10 rot xcsf p1 p2 L)
(setq ss(ssget (list (cons 0 "INSERT")))n 0)
(repeat (sslength ss)
(setq e(entget(ssname ss n)))
(setq a10(cdr(assoc 10 e)))
(setq rot(cdr(assoc 50 e)))
(setq xscf(cdr(assoc 41 e)))
(setq p1(polar a10 rot (* 100 xscf)))
(setq L(cons p1 L))
(setq p2(polar a10 (+ rot pi)(* 100 xscf)))
(setq L (cons p2 L))
(setq n (1+ n))
)
(setq L(vl-sort L '(lambda (e1 e2)(< (car e1)(car e2)))))
(setq L(cdr L))
(while (< 2 (length L))
(setq a(car L)b(cadr L)L(cddr L))
(_Make_line a b)
)
(princ)
)
(defun _Make_line (p1 p2)
(entmakex (list (cons 0 "LINE")
(cons 8 "0″)
(cons 10 p1)
(cons 11 p2))
)
)
지금 사용하고있는 헤드와 헤드사이 연결리습입니다.
이게 가로로는 잘되는데 세로로는 연결이 이상하게 됩니다.
궁금한게 p1,p2 어떤걸 나타내는건가여?
혹시 p1,p2 말고 p3,p4도 추가하면 세로 연결도 제대로 될까여?
관련자료
수야12님의 댓글
이 리습은 특정 블럭의 가로 연결을 위해 만들어진 리습입니다
(defun c:ff2(/ e a10 rot xcsf p1 p2 L)
(setq ss(ssget (list (cons 0 "INSERT")))n 0) (repeat (sslength ss) (setq e(entget(ssname ss n))) (setq a10(cdr(assoc 10 e))) (setq rot(cdr(assoc 50 e))) (setq xscf(cdr(assoc 41 e))) (setq p1(polar a10 rot (* 100 xscf))) (setq L(cons p1 L)) (setq p2(polar a10 (+ rot pi)(* 100 xscf))) (setq L (cons p2 L)) (setq n (1+ n)) ) (setq L(vl-sort L '(lambda (e1 e2)(< (cadr e1)(cadr e2))))) (setq L(cdr L)) (while (< 2 (length L)) (setq a(car L)b(cadr L)L(cddr L)) (_Make_line a b) ) (princ) ) (defun _Make_line (p1 p2) (entmakex (list (cons 0 "LINE") (cons 8 "0″) (cons 10 p1) (cons 11 p2)) ) )