프로그램
캐드 분류

선길이 표시 리습 입니다. 단위를 변경 하고 싶습니다.

컨텐츠 정보

  • 1,144 조회
  • 0 추천
  • 0 비추천
  • 목록

본문

이전에 고캐드에 올라온 리습 길이 표시 리습입니다.

다름이 아니오라 해당 리습의  표시 단위를 변경 하고 싶습니다.

현재는 길이가 1250mm 라면 = 1250으로 표기 됩니다.

mm (밀리미터) 단위를 → M(미터) 단위로 

그리고 소수 첫번째 자리까지 표시 하고 싶습니다.



1. 단위를 M로 변경 하고 싶습니다. 1250mm = 1.2



2. 반올림은 어떻게 해야 하는지도 궁금합니다. 1250mm = 1.3 표시



수정 합니다.
하기 리습으로 부탁 드립니다.
감사 합니다.




;####################### [ ISOAUTODIMMARK. LSP ] #######################


;;======================================================================================;;


;; Author : I'm peter http://cafe.daum.net/archimore & http://cafe.daum.net/notcolor


;; : Sooya12 https://www.gocad.co.kr/ & https://blog.naver.com/khs12kim


;; arragnge : I'm peter http://cafe.daum.net/archimore & http://cafe.daum.net/notcolor


;; coaching : 달수님 http://cafe.daum.net/notcolor, 자유천지(따라지)님 http://cafe.daum.net/notcolor


;; Title : 등각투영라인에 길이 표시하기


;; Request : 아키모아 데오늬님


;;======================================================================================;;


;; 위 타이틀 삭제 없이 공유 가능합니다


(defun c:isoautodimmark(/ ss ks_MakeText ks_polyVtx ks_midpt ks_LinVtx ks_LRUDsor ks_Text)


;;=======


;; SUB 1.


;;=======


(defun ks_MakeText(a b / c xc yc ang dst mdp txtpt i)


(setq xc(- (car a)(car b)) yc(-(cadr a)(cadr b)))


(if(and (/= xc 0)(/= yc 0))


(setq c (/ yc xc))


(setq c 0)


)



(setq ang (angle a b))


(setq dst(distance a b))


(setq mdp(ks_midpt a b))



(if (minusp c)


(progn


(setq txtpt (polar mdp (+ ang 1.5708)(* 2.0 (getvar 'dimgap))))


(setq i ang)


)


(progn


(setq ang (+ pi ang))


(setq txtpt (polar mdp (+ ang 1.5708)(* 2.0 (getvar 'dimgap))))


(setq i 0.523599)


)


)


(setq obj(vlax-ename->vla-object(ks_Text txtpt (getvar 'dimtxt)(rtos dst 2 (getvar 'dimdec)) ang)))


(vla-put-obliqueangle obj i)


)


;;=======


;; SUB 2.


;;=======


(defun ks_PolyVtx (EntList / L)


(setq L'())


(foreach x EntList


(if (= (car x) 10)


(setq L (append L (list (cdr x))))


)


)


L


)


;;=======


;; SUB 3.


;;=======


(defun ks_midpt (p1 p2)


(mapcar '(lambda (x1 x2) (/ (+ x1 x2) 2.0)) p1 p2)


)


;;=======


;; SUB 4.


;;=======


(defun ks_LinVtx(eL / L)


(mapcar 'cdr (vl-remove-if-not '(lambda (x)(or (= (car x)10)(= (car x) 11)))eL))


)


;;=======


;; SUB 5.


;;=======


(defun ks_LRUDsort(L)


(vl-sort (vl-sort L '(lambda (a b)(< (car a)(car b))))'(lambda (a b)(>(cadr a)(cadr b))))


)


;;=======


;; SUB 6.


;;=======


(defun ks_Text (pt hgt str ang)


(entmakex (list (cons 0 "TEXT")


(cons 10 pt)


(cons 11 pt)


(cons 40 hgt)


(cons 1 str)


(cons 50 ang)


(cons 72 1)


(cons 73 2)


)


)


)


;;=======


;;===MAIN


;;=======


(setq ss(ssget (list(cons 0 "*LINE"))))


(foreach e(vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))


(setq en(entget e))


(if(= "LWPOLYLINE" (cdr(assoc 0 en)))


(progn


(setq Lst(ks_polyVtx en))


(mapcar


'(lambda (a b / ang dst mdp txtpt)


(setq L(ks_LRUDsort(list a b)))


(setq a (car L)b(cadr L))


(ks_MakeText a b)


)


Lst (cdr Lst)


)


);progn


(progn


(setq L(ks_LRUDsort(ks_LinVtx en)))


(setq a (car L)b(cadr L))


(ks_MakeText a b)


);progn


);if


);foreach


(princ)


)


(vl-load-com)


(defun c:iadm nil (c:isoautodimmark))


(princ


(STRCAT


"n :: << ISOAUTODIMMARK(proto type. 1)>> ::"


"n :: COMMAND << ISOAUTODIMMARK >> ::"


"n :: OR << IADM >> ::"


)


)


(PRINC "n :: http://cafe.daum.net/archimore & http://cafe.daum.net/notcolor ::")


(princ)


관련자료

댓글 0 / 1 페이지
등록된 댓글이 없습니다.
전체 7,698 / 1 페이지
RSS
번호
제목
이름

최근글


새댓글


알림 0