인터넷에서 받았는데 아마도 아키모아 운영진 행복한하루님이 만드신 것으로 보입니다.
유용하네요.
; 아키모아 운영진 "행복한하루"
; http://cafe.daum.net/archimore
; 기준선각도로 text,mtext,block 다중선택회전하기
; 2007.07.26
(defun dtr (a)(* pi (/ a 180.0)))
(defun c:thv(/ k ss1 ss2 ed1 ent stp edp ang1 en2 ed2)
;->*error* start
(defun *error* (msg)(princ "error: ")(princ msg)
(redraw (car ss1) 4)
(princ))
;-<*error* end
(setvar "cmdecho" 0)
(prompt "\n기준선각도로 text,mtext,block 다중선택회전하기..")
(setq k 0 ss1 nil ss2 nil)
(while (= ss1 nil) (setq ss1 (entsel "\n기준라인을 선택 :")))
(redraw (car ss1) 3)
(setq ed1 (entget (car ss1))
ent (cdr (assoc 0 ed1)))
(cond ((= ent "LINE")
(setq stp (cdr (assoc 10 ed1))
edp (cdr (assoc 11 ed1))))
((= ent "LWPOLYLINE")
(GetPolyVtx ed1)
(setq stp (car vtxlist) edp (cadr vtxlist)))
);cond
(setq ang1 (angle stp edp))
(if (and (> ang1 (dtr 90)) (<= ang1 (dtr 270)))
(setq ang1 (angle edp stp))
);if
(prompt "\n회전할객체선택<text,mtext,block> :")
(command "undo" "be")
(setq ss2 (ssget (list (cons 0 "text,mtext,insert"))))
(redraw (car ss1) 4)
(repeat (sslength ss2)
(setq en2 (ssname ss2 k)
ed2 (entget en2))
(entmod (subst (cons 50 ang1) (assoc 50 ed2) ed2))
(setq k (1+ k))
);repeat
(command "undo" "e")
(princ)
);defun
(defun GetPolyVtx(EntList) ; 피라인의 정점 추출
(setq VtxList '())
(foreach x EntList
(if (= (car x) 10)
(setq VtxList (append VtxList (list (cdr x))))
)
)
VtxList
)
선택한 블록만 이름 변경하기 (0) | 2021.10.20 |
---|---|
형강 작도 lisp (0) | 2021.10.20 |
블럭 insert point 변경하기 (0) | 2021.10.19 |
RENAME명령 (0) | 2021.10.18 |
문자 내용을 복사해서 붙여넣기 (0) | 2021.10.06 |