얼마전 태은님의 도움으로 치수 dimdli값을 변경하여 적용하는 리습을 잘 사용하고 있습니다. 다시 한번 태은님께 감사드립니다.
사용하다보니 조금 더 욕심이나서 고쳐보려고하는데 잘 안되네요. 이번에 요청드리는 내용은 기존에 dimcontinue로 그려진 치수선을 dimdli값을 변경하여 dimbaseline으로 바꾸고 싶습니다.
아래에 제가 작성했다가 실패한 코드와 실행 전후의 도면을 첨부합니다. 이번에도 여러 고수선배님들만 믿고있습니다. (_ _)
(defun c:#dbr ()
(setq $os (getvar ‘osmode));setq
(if (= $dimdli nil)
(setq $dimdli 100));IF
(setq $dimdli01 (getreal (strcat “n치수선의 간격을 입력하십시오 (현재값: ” (rtos $dimdli) “)” )))
(if (= $dimdli01 nil)
(setq $dimdli01 $dimdli)
(setq $dimdli $dimdli01) );IF
(setvar “DIMDLI” $dimdli);setvar
(setvar “osmode” 0);setvar
(setq $selset (ssget ‘((0 . “DIMENSION”)))
$entityCount (sslength $selset)
$entityname (ssname $selset $count)
$entitylist (entget $entityname)
$count 0
);setq
(while (< $count $entityCount)
(setq $entityname (ssname $selset $count)
$entitylist (entget $entityname)
$pointlist (list (cdr (assoc 13 $entitylist)) (cdr (assoc 14 $entitylist)))
);setq
(setq $count (1+ $count))
);while
(vl-sort $pointlist (lambda ($ip1 $ip2)
(< (car $ip1) (car $ip2))));vl-sort
(setq $listlength (length $pointlist)
$pointno 2);setq
(command “_dimlinear” (nth 0 $pointlist)
(nth 1 $pointlist)
(list (/ (+ (car (nth 0 $pointlist)) (car (nth 1 $pointlist)) );+
2);/
(- (cadr (nth 0 $pointlist)) $dimdli) );list
“” );command “_dimlinear”
(while (< $pointno $listlength)
(setq $entlast (entlast))
(command “_dimbaseline” $entlast (nth $pointno $pointlist) “”)
(setq $pointno (1+ $pointno))
);while
(setvar “osmode” $os)
);defun