CAD&BIM

반응형

기준선 각도로 text, mtext, block 다중선택 회전하기

 

인터넷에서 받았는데 아마도 아키모아 운영진 행복한하루님이 만드신 것으로 보입니다.

 

유용하네요.

thv(기준선각도로text,mtext,block다중선택회전하기).lsp
0.00MB

; 아키모아 운영진 "행복한하루"
; 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
)
반응형

'AutoCAD' 카테고리의 다른 글

선택한 블록만 이름 변경하기  (0) 2021.10.20
형강 작도 lisp  (0) 2021.10.20
블럭 insert point 변경하기  (0) 2021.10.19
RENAME명령  (0) 2021.10.18
문자 내용을 복사해서 붙여넣기  (0) 2021.10.06

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band