2016.03.11 13:37
안녕하세요.
제가 인터넷에서 지시선 정렬 LISP을 받았는데,
내용은 아래와 같습니다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
;;; aligns the landings of selected 3 point leaders to a picked point or selection of leader
;;; and makes landing horizontal (if not already)
(defun c:dd (/ c# crds doc e ins newpt obj ss txt x y sel)
(vl-load-com)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(initget 0 "Leader PickPoint")
(if (= (cond ((getkword
(strcat "\n Align by [Leader/PickPoint] <Leader>: ")
)
)
("Leader")
)
"Leader"
)
(and (setq e (car (entsel "\nSelect leader for alignment: ")))
(setq x (cadr (assoc 10 (reverse (entget e)))))
)
(setq x (car (getpoint "\nSelect point for alignment: ")))
)
(if (and x (setq ss (ssget '((0 . "leader")))))
(progn (vla-endundomark doc)
(vla-startundomark doc)
(foreach l (vl-remove e
(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
)
(setq obj (vlax-ename->vla-object l)
crds (vlax-get obj 'coordinates)
c# (length crds)
)
(if (and (= c# 9) ;if leader has 3 points and /= x coord
(not (equal x (nth (- c# 3) crds) 0.0001))
)
(progn (setq y (nth (- c# 5) crds) ;new y coord to ensure flat landing
newpt (list x y (nth (1- c#) crds))
)
(vlax-put obj
'coordinates
(append (reverse (cdddr (reverse crds))) newpt)
)
(vla-update obj)
(and (setq txt (vl-catch-all-apply ;has text attached to leader
'vlax-ename->vla-object
(list (cdr (assoc 340 (entget l))))
)
)
(not (vl-catch-all-error-p txt)) ;check for invalid ename
(setq ins (vlax-get txt 'insertionpoint))
(vlax-put txt
'insertionpoint
(polar (list x (cadr ins) (caddr ins))
(if (> x (nth (- c# 3) crds))
0.
pi
)
(if (zerop (getvar 'tilemode))
(vla-get-textgap obj)
(* (getvar 'dimscale) (vla-get-textgap obj))
)
)
)
(vla-update txt)
)
)
)
)
(vla-endundomark doc)
)
)
(princ)
)
------------------------------------------------------------------------------------------------------------------------------------------------------------
이 리습이 3점인 지시선에는 적용이 되는데,
2점인 지시선에서는 적용이 안되더라구요.
어떻게 2점까지 쉽게 추가할 수 있는 방법은 없는 것입니까?!
부탁드립니다!
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | ★ 드림플러스 질문은 메일 또는 홈페이지에 부탁합니다 ★ | 아저씨 | 2017.05.16 | 2774 |
공지 | 제목이 엉망이면 답변달지 않습니다. [1] | 아저씨 | 2014.04.04 | 23853 |
공지 | 순수 캐드 질문은 고캐드로 | 아저씨 | 2013.05.28 | 68640 |
공지 | 질문 답변 게시판을 만들었습니다. | 아저씨 | 2013.02.09 | 74943 |
1369 | 드림 실행할때마다 [1] | ㅇㅇㅇㅇ | 2015.03.02 | 104 |
1368 | 갑자기 드림 메뉴가 실행이 되질않습니다. [2] | KKJ | 2015.04.22 | 104 |
1367 | 철근재료표 관련 입니다. [2] | soils | 2015.07.13 | 104 |
1366 | 2016년 캐드 버전 드림은 언제 나오나요?ㅠ [1] | ㅇㄻㅇㄻㅇㄹ | 2015.08.20 | 104 |
1365 | 아바스트 검사에서 dreamcmd.exe 파일을 멀웨어로 인식하네요.. [4] | 이홍기 | 2016.07.09 | 104 |
1364 | 출력시 솔리드객체 채움문제 [3] | 솔리드 | 2016.10.31 | 104 |
1363 | 캐드 질문있습니다, [1] | 울라라라라 | 2016.10.14 | 104 |
1362 | cad계산기 [1] | kg | 2020.11.16 | 104 |
1361 | 질문)네트워크를 이용한 타컴퓨터 공유폴더 내 캐드파일을 실행하면 드림이 안먹혀요... [1] | 쟈소 | 2015.07.30 | 105 |
1360 | 명령어변경 관련 질문입니다. [1] | 이성필 | 2016.07.14 | 105 |
1359 | 연속문자수정(SED)에서 문자인식이 안됩니다.. [1] | 감사합니다 | 2015.06.18 | 106 |
1358 | zwcad2014 드림설치문의드립니다. [1] | 초짜 | 2015.10.30 | 106 |
1357 | cad210에서 edge명령 [1] | 송원섭 | 2015.11.21 | 106 |
1356 | 도면에서 거리를 측정하면 다르게 나와요! [1] | 새집아이 | 2016.11.18 | 106 |
1355 | 드림플러스 교육강좌을 싸이트에 올려주시면 좋겠습니다. [1] | 야옹 | 2022.04.13 | 106 |
안녕하세요.
저는 리습 언어를 모릅니다.
제가 할 줄아는 언어는 VB 또는 .NET 뿐입니다.
질문은 고캐드 질문게시판에 올리는 것이 나을 것 같습니다.