X,Y좌표리습을 선배님들 도움으로 X,Z로 바꿔서 사용중인데요.
(X=Z , Y=X (X좌표는 x2로 출력))
((((좌표 마지막이 정수로 떨어질 시 숫자 뒤에 (.)이 찍히도록 사용중인데,))))
정수 마지막 숫자가
짝수로 떨어지면 (.)이 찍히는데
홀수로 떨어지면 (.)이 안찍히네요.
EX) X1988. (끝자리 숫자가 8(짝수)라서 숫자 마지막에 . 찍힘)
X1987 (끝자리 숫자가 7(홀수)라서 숫자 마지막에 . 안찍힘)
위의 설명과 같은 내용이 포함된 이미지 첨부했습니다. 하단에 프로그램도 첨부합니다.
원 제작자분께 감사드리며, 도움 부탁드립니다
—출처—
Created by Trusted
Naver Blog : https://blog.naver.com/trusted_dwg
——————————————————————————————————————-
(defun c:ZX( / makeLayer maketextstyle searchmleaderstyle makemleaderstyle oldlayer oldcmleaderstyle pt1 pt2 xcoordinate ycoordinate allcoordinate)
(vl-load-com)
(defun makeLayer (newlayername newlayerColor)
(entmake
(list
(cons 0 “LAYER”)
(cons 100 “AcDbSymbolTableRecord”)
(cons 100 “AcDbLayerTableRecord”)
(cons 2 newlayername) ;layer name
(cons 70 0)
(cons 62 newlayerColor) ;layer color
)
)
)
(defun maketextstyle (newstylename)
(entmake
(list
(cons 0 “style”)
(cons 100 “AcDbSymbolTableRecord”)
(cons 100 “AcDbTextStyleTableRecord”)
(cons 2 newstylename) ;style name
(cons 3 “arial.ttf”) ;font
;(cons 4 “whgtxt.shx”) ;bigfont
(cons 70 0)
(cons 40 0) ;fixed height / 0=non
(cons 41 1) ;width factor
(cons 50 0) ;oblique angle
(cons 71 0) ;2=mirrored in X / 4=mirrored in Y
)
)
)
(defun searchmleaderstyle (mleaderstylename / mleaderstyledict searchresult)
(if
(setq mleaderstyledict (dictsearch (namedobjdict) “acad_mleaderstyle”))
(foreach x mleaderstyledict
(if
(and
(= (car x) 3)
(eq (strcase (cdr x)) (strcase mleaderstylename))
)
(setq searchresult t)
)
)
)
searchresult
)
(defun makemleaderstyle (newmleadername newmleadertextstyle)
(setq mleaderstyles (vla-item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) “ACAD_MLEADERSTYLE”))
(setq newmleaderstyle (vla-AddObject mleaderstyles newmleadername “AcDbMLeaderStyle”))
(vla-put-TextStyle newmleaderstyle newmleadertextstyle)
(vla-put-TextAngleType newmleaderstyle “1”)
(vla-put-ArrowSize newmleaderstyle “100”)
(vla-put-DoglegLength newmleaderstyle “100”)
(vla-put-TextHeight newmleaderstyle “100”)
(vla-put-TextLeftAttachmentType newmleaderstyle “3”)
(vla-put-TextRightAttachmentType newmleaderstyle “3”)
)
(if
(= (tblsearch “style” “xycoordinates”) nil)
(maketextstyle “xycoordinates”)
(princ)
)
(setq oldlayer (getvar “clayer”))
(if
(= (tblsearch “layer” “xycoordinates”) nil)
(progn
(makelayer “xycoordinates” 1)
(setvar “clayer” “xycoordinates”)
)
(setvar “clayer” “xycoordinates”)
)
(setq oldcmleaderstyle (getvar “cmleaderstyle”))
(if
(= (searchmleaderstyle “xycoordinates”) nil)
(progn
(makemleaderstyle “xycoordinates” “xycoordinates”)
(setvar “cmleaderstyle” “xycoordinates”)
)
(setvar “cmleaderstyle” “xycoordinates”)
)
(setq pt1 (getpoint “nClick point to measure”))
(if pt1
(progn
(if (not (vl-string-search “.” (rtos (car pt1) 2 3))) ;Z좌표
(setq xcoordinate (strcat “Z” (rtos (car pt1) 2 3) “.”))
(setq xcoordinate (strcat “Z” (rtos (car pt1) 2 3)))
)
(if (not (vl-string-search “.” (rtos (cadr pt1) 2 3))) ;X좌표(지름값-좌표*2)
(setq ycoordinate (strcat “X” (rtos (*(cadr pt1)2) 2 3) “.”))
(setq ycoordinate (strcat “X” (rtos (*(cadr pt1)2) 2 3)))
)
(setq allcoordinate (strcat Ycoordinate “n” Xcoordinate))
(command “mleader” pt1 pause allcoordinate)
)
)
(setvar “clayer” oldlayer)
(setvar “cmleaderstyle” oldcmleaderstyle)
(princ)
)
(defun c:ZXC( / makeLayer maketextstyle searchmleaderstyle makemleaderstyle newvalue mleaderstyles newmleaderstyle)
(vl-load-com)
(defun makeLayer (newlayername newlayerColor)
(entmake
(list
(cons 0 “LAYER”)
(cons 100 “AcDbSymbolTableRecord”)
(cons 100 “AcDbLayerTableRecord”)
(cons 2 newlayername) ;layer name
(cons 70 0)
(cons 62 newlayerColor) ;layer color
)
)
)
(defun maketextstyle (newstylename)
(entmake
(list
(cons 0 “style”)
(cons 100 “AcDbSymbolTableRecord”)
(cons 100 “AcDbTextStyleTableRecord”)
(cons 2 newstylename) ;style name
(cons 3 “arial.ttf”) ;font
;(cons 4 “whgtxt.shx”) ;bigfont
(cons 70 0)
(cons 40 0) ;fixed height / 0=non
(cons 41 1) ;width factor
(cons 50 0) ;oblique angle
(cons 71 0) ;2=mirrored in X / 4=mirrored in Y
)
)
)
(defun searchmleaderstyle (mleaderstylename / mleaderstyledict searchresult)
(if
(setq mleaderstyledict (dictsearch (namedobjdict) “acad_mleaderstyle”))
(foreach x mleaderstyledict
(if
(and
(= (car x) 3)
(eq (strcase (cdr x)) (strcase mleaderstylename))
)
(setq searchresult t)
)
)
)
searchresult
)
(defun makemleaderstyle (newmleadername newmleadertextstyle)
(setq mleaderstyles (vla-item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) “ACAD_MLEADERSTYLE”))
(setq newmleaderstyle (vla-AddObject mleaderstyles newmleadername “AcDbMLeaderStyle”))
(vla-put-TextStyle newmleaderstyle newmleadertextstyle)
(vla-put-TextAngleType newmleaderstyle “1”)
(vla-put-ArrowSize newmleaderstyle “100”)
(vla-put-DoglegLength newmleaderstyle “100”)
(vla-put-TextHeight newmleaderstyle “100”)
(vla-put-TextLeftAttachmentType newmleaderstyle “3”)
(vla-put-TextRightAttachmentType newmleaderstyle “3”)
)
(setq newvalue (getreal “n input new size for text and arrow “))
(setq mleaderstyles (vla-item (vla-get-Dictionaries (vla-get-ActiveDocument (vlax-get-acad-object))) “ACAD_MLEADERSTYLE”))
(setq newmleaderstyle (vla-AddObject mleaderstyles “xycoordinates” “AcDbMLeaderStyle”))
(if
(= newvalue nil)
(princ “ndo not leave new size empty!!!”)
(progn
(if
(= (searchmleaderstyle “xycoordinates”) nil)
(progn
(if
(= (tblsearch “style” “xycoordinates”) nil)
(maketextstyle “xycoordinates”)
)
(if
(= (tblsearch “layer” “xycoordinates”) nil)
(makelayer “xycoordinates” 1)
)
(if
(= (searchmleaderstyle “xycoordinates”) nil)
(makemleaderstyle “xycoordinates” “xycoordinates”)
)
(vla-put-ArrowSize newmleaderstyle newvalue)
(vla-put-DoglegLength newmleaderstyle newvalue)
(vla-put-TextHeight newmleaderstyle newvalue)
)
(progn
(vla-put-ArrowSize newmleaderstyle newvalue)
(vla-put-DoglegLength newmleaderstyle newvalue)
(vla-put-TextHeight newmleaderstyle newvalue)
)
)
)
)
(princ)
)
(princ “nCreated by Trusted_dwg”)
(princ “nWrite coordinate with MLEADER. Command : XY, XYT”)
(princ “nNaver Blog : https://blog.naver.com/trusted_dwg”)
(princ “nYoutube : https://www.youtube.com/trusted_dwg”)
(princ)
(setq ycoordinate (strcat “X” (rtos (*(cadr pt1)2) 2 3) “.”))
(setq ycoordinate (strcat “X” (rtos (*(cadr pt1)2) 2 3)))
위부분 아래껄로 바꿔서 해보세요………
(setq ycoordinate (strcat “X” (rtos (cadr pt1) 2 3) “.”))
(setq ycoordinate (strcat “X” (rtos (cadr pt1) 2 3)))