CAFE

★ CAD/LISP/분과 Q&A

Re:Re:레이어 목록 만들기 리습수정문의

작성자행복한하루|작성시간10.06.17|조회수532 목록 댓글 8


- Off 와 Freeze 된 레이어를 리스트화 시켜줍니다.

- 실행하면 안에 텍스트는 안보이실겁니다.

- 맨위에 글자와 테두리선은 0 번 레이어로 그려집니다. 0번이 없진 않으시겠져.^^ 

- 해당 리습은 일초님이 만드신 XLL(xref 리스트화) 를 토대로 해서 수정되였습니다.


(defun c:llo (/ AcDoc oSpace lt maxlen textheight LayerObjS LayerNameList LayerName textlens maxlen tabp

                textlens2 lucp lup rup ldp rdp tinp p1 p2 VtxList oPlineObj TxtObj-1)   (vl-load-com) (princ "\nLayer List Off....") (setq AcDoc (vla-get-activedocument (vlax-get-acad-object))) (cond   ((= (vla-get-activespace AcDoc) 1) (setq oSpace (vla-get-modelspace AcDoc)))   ((= (vla-get-activespace AcDoc) 0) (setq oSpace (vla-get-paperspace AcDoc))) ) (setq lt (getvar "ltscale") maxlen 0) (setq textheight (* lt 3 2 1.5)) (setq LayerObjS (vla-get-layers AcDoc)) (setq LayerNameList '()) (vlax-for xxx LayerObjS     (setq LayerName (vla-get-name xxx))   (if (or (= (vla-get-LayerOn xxx) :vlax-false) (= (vla-get-Freeze xxx) :vlax-true))    (progn (setq LayerNameList (append LayerNameList (list LayerName)))     (setq textlens (car (cadr (textbox (list (cons 1 LayerName) (cons 40 textheight))))))     (setq maxlen (max maxlen textlens))    )   ) ) (if LayerNameList   (progn (vla-startundomark AcDoc)    (if (setq tabp (getpoint "\n 좌측상단 기준점 선택하세요 : "))     (progn      (setq textlens2 (car (cadr (textbox (list (cons 1 "LAYER-OFF") (cons 40 textheight))))))      (if (< maxlen textlens2) (setq maxlen textlens2))      (setq lucp (list (+ (car tabp) (* (/ (+ maxlen (* textheight 2)) 2))) (cadr tabp)))      (setq lup (list (car tabp) (cadr tabp)))      (setq rup (list (+ (car tabp) (* (+ maxlen (* textheight 2)))) (cadr tabp)))      (setq ldp (list (car tabp) (- (cadr tabp) (* (+ (length LayerNameList) 2) (* textheight 1.75)))))      (setq rdp (list (+ (car tabp) (* (+ maxlen (* textheight 2)))) (- (cadr tabp) (* (+ (length LayerNameList) 2) (* textheight 1.75)))))      (setq tinp (list (+ (car tabp) (* textheight)) (- (cadr tabp) (* (* textheight 1.75)))))      (setq p1 (list (+ (car lup) (* (+ (/ textheight 2) (/ (- maxlen textlens2) 2)))) (cadr lup)))      (setq p2 (list (- (car rup) (* (+ (/ textheight 2) (/ (- maxlen textlens2) 2)))) (cadr rup)))          (setq VtxList (list (car p1) (cadr p1) (car lup) (cadr lup) (car ldp) (cadr ldp) (car rdp) (cadr rdp) (car rup) (cadr rup)(car p2) (cadr p2)))          (vla-put-layer (vlax-invoke oSpace 'addlightweightpolyline VtxList) "0")      (setq TxtObj-1 (vla-addtext oSpace "LAYER-OFF" (vlax-3d-point lucp) textheight))      (vla-put-layer TxtObj-1 "0")      (vla-put-Alignment TxtObj-1 10)      (vla-put-TextAlignmentPoint TxtObj-1 (vlax-3d-point lucp))      (foreach x LayerNameList       (setq tinp (list (car tinp) (- (cadr tinp) (* (* textheight 1.75)))))       (vla-put-layer (vla-addtext oSpace x (vlax-3d-point tinp) textheight) x)      )      (vla-endundomark AcDoc)     )    )     )   (princ "\nFreez or Off is Not!!") ) (princ) )



다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 답댓글 작성자행복한하루 작성자 본인 여부 작성자 | 작성시간 10.06.17 해당레이어로 뿌려야되여 그래야지 켜놓고 다시끌때 저걸선택해서 끄져.^^
  • 답댓글 작성자3:16 | 작성시간 10.06.17 ㅋㅋ 그게 용도였나요?ㅋㅋ

    전... 레이어명으로 맞춰서 해보려구 했죠..^^;

    그래야 꺼진 레이어도 고를 수 있으니까요^^* ㅎㅎㅎ

    그러니까 객체를 선택함...문자겠죠? 암튼..그걸 선택함...레이어명을 받아오는거죠..글자로요...^^* ㅎㅎ

    그냥 함 생각해 본겁니당^^*

    머가 꺼졌는지도 알구 싶으니까요^^* ㅎㅎ 해당레이어가 껴져 있어도..레이명을 알수 있게 말이죠..^^* ㅎㅎ
  • 답댓글 작성자3:16 | 작성시간 10.06.17 암튼..하루님..수고했어요^^* ㅎㅎ
  • 작성자3:16 | 작성시간 10.06.17 저는..이거..별도의 레이어를 만들어서 하려고 했는데..^^;; ㅎㅎ

    암튼 수고하셨습니당^^*ㅎㅎ
  • 작성자3:16 | 작성시간 10.06.17 하루님 벌써 비줠리습 겁나게 잘 쓰시네요^^* ㅎㅎㅎ
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼