안녕하세요. 본 글에 있는 리습은 공차 리습입니다.
이 리습은 AcDbRotatedDimension,AcDbMText은 작동이 되는 리습입니다.
근데 AcDbOrdinateDimension(세로좌표) 가 작동이 되지 않아서
아래와 같이 수정을 하였는데 작동이 안되더라구요.
어떻게 수정을 해야 AcDbOrdinateDimension(세로좌표)도 작동이 될까요?
도움 주시면 고맙겠습니다.
(cond ((= (vla-get-objectname vobj) “AcDbRotatedDimension”) 을
————————–>
(cond ((= (vla-get-objectname vobj) “AcDbRotatedDimension””AcDbOrdinateDimension”)
이렇게 수정하였습니다.
(defun c:xx (/ en #newtext vobj #value #str #position)
(vl-load-com)
(or #text (setq #text “TEST”))
(or #measure (setq #measure 0.005))
(if (and (setq en (entsel “n치수나 문자 선택 :”))
(setq #newtext
(getstring (strcat “n입력할 문자 기입<“
#text
“>: “
)
)
)
(if (= #newtext “”)
(setq #newtext #text)
(setq #text #newtext)
)
(setq #measure
(cond
((getreal (strcat “n플러스될 치수 기입<“
(vl-princ-to-string #measure)
“>: “
)
)
)
(#measure)
)
)
)
(progn
(setq vobj (vlax-ename->vla-object (car en)))
(cond ((= (vla-get-objectname vobj) “AcDbRotatedDimension”)
(if (vlax-property-available-p vobj ‘TextOverride)
(progn
(setq #value (atof (rtos (vla-get-measurement vobj) 2 3)))
(vlax-put vobj
‘TextOverride
(strcat “<>” ” {\H0.7x;\C1;\S” #newtext “^” (vl-princ-to-string (+ #value #measure)) “;}”)
)
)
)
)
((= (vla-get-objectname vobj) “AcDbMText”)
(setq #str (vla-get-textstring vobj))
(setq #position (vl-string-search “;” #str))
(setq #value (rtos (atof (substr #str (+ #position 2))) 2 3))
(vla-put-textstring vobj
(strcat “\A1;” #value ” {\H0.7x;\C1;\S” #newtext “^” (vl-princ-to-string (+ (atof #value) #measure)) “;}”)
)
)
)
)
)
(princ)
)
공유
감사합니다. 아무리 해도 안되길래 질문 올렸는데, 답변 주셔서 고맙습니다.
(vl-load-com)
(or #text (setq #text “TEST”))
(or #measure (setq #measure 0.005))
(if (and (setq en (entsel “n치수나 문자 선택 :”))
(setq #newtext
(getstring (strcat “n입력할 문자 기입<“
#text
“>: “
)
)
)
(if (= #newtext “”)
(setq #newtext #text)
(setq #text #newtext)
)
(setq #measure
(cond
((getreal (strcat “n플러스될 치수 기입<“
(vl-princ-to-string #measure)
“>: “
)
)
)
(#measure)
)
)
)
(progn
(setq ett-0 (cdr(assoc 0(entget (car en)))))
(setq vobj (vlax-ename->vla-object (car en)))
(cond ((= ett-0 “DIMENSION”);(cond ((= (vla-get-objectname vobj) “AcDbRotatedDimension”)
(if (vlax-property-available-p vobj ‘TextOverride)
(progn
(setq #value (atof (rtos (vla-get-measurement vobj) 2 3)))
(vlax-put vobj
‘TextOverride
(strcat “<>” ” {\H0.7x;\C1;\S” #newtext “^” (vl-princ-to-string (+ #value #measure)) “;}”)
)
)
)
)
((= ett-0 “MTEXT”) ;((= (vla-get-objectname vobj) “AcDbMText”)
(setq #str (vla-get-textstring vobj))
(setq #position (vl-string-search “;” #str))
(setq #value (rtos (atof (substr #str (+ #position 2))) 2 3))
(vla-put-textstring vobj
(strcat “\A1;” #value ” {\H0.7x;\C1;\S” #newtext “^” (vl-princ-to-string (+ (atof #value) #measure)) “;}”)
)
)
)
)
)
(princ)
)