프로그램
캐드 분류

캐드 리습사용 중 특정파일에서 기본 SCALE 이상 현상

컨텐츠 정보

  • 100 조회
  • 2 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

안녕하세요 Autocad 2014 사용 중에 궁금한 점이 있어서 여쭙습니다.
업무에 자주 사용하는 Lisp중 하나가 Cloud (단축키 cd) 리습인데요
프로그래밍 되어있는건 기본 사이즈가 8로 설정되게 되어 있으나
가끔 특정 파일에서 cd를 활용하면 기본사이즈가 0이나 80 등 8이 아닌 다른 숫자가 기본 사이즈로 설정되어있는것이 관측되었습니다.
혹시 원인이 무엇인지 변경방법은 어떤 것인지 알 수 있을까 하여 문의 드립니다.
보안 문제로 파일첨부가 되지 않는 점 양해 부탁드리며, 사용중인 리습의 일부를 아래에 공유드립니다.
(defun C:cd (/ ds plw pt1 pt2 p1 p2 xdist ydist spcsx spcsy ent1 ent2 nxt info bulge data)
        (SETQ OSM (GETVAR "OSMODE"))
        (SETVAR "OSMODE" 0)
(print ">> Cloud Draw Tool…")
(setvar "cmdecho" 0)
(setq ds (getvar "dimscale")
plw (* 0.02 ds)                                            
oer *error*
bm (getvar "blipmode"))
(setq   ds (* 8 ds))
(print)                                           ; ————> circle size 
(setq str (strcat "호 지름<" (rtos ds 2) "> : "))
(setq  buf (getint str)) 
(if (/= buf NIL) (setq ds buf))
(defun *error* (s) ;start error routine
(setvar "blipmode" bm) ;reset blipmode
(princ (strcat "Exit…" s)) ;type error message
(if oer (setq *error* oer))
(princ))
(print)
(SETQ PT1 (GETPOINT "영역의 좌측 하단점: ")) (terpri)
(setq pt2 (getcorner pt1 "영역의 우측 상단점: "))
(setvar "blipmode" 0)
(setq p1 (car pt1) p2 (car pt2) ;find x distances
xdist (- p2 p1))
(setq p1 (cadr pt1) p2 (cadr pt2) ;find y distances
ydist (- p2 p1))
;******TO ADJUST SPACING OF ARCS CHANGE THE NUMBER 2 IN THE NEXT TWO LINES*****
(setq spcsx (/ (abs xdist) (/ ds 2)) ;X spacing
spcsy (/ (abs ydist) (/ ds 2))) ;Y spacing
(if (= spcsx (fix spcsx)) (setq spcsx (fix spcsx)) (setq spcsx (+ 1 (fix spcsx))))
(if (= spcsx 1) (setq spcsx 2)) ;min of 2 spaces
(if (= spcsy (fix spcsy)) (setq spcsy (fix spcsy)) (setq spcsy (+ 1 (fix spcsy))))
(if (= spcsy 1) (setq spcsy 2)) ;min of 2 spaces
(setq xdist (/ xdist spcsx) ydist (/ ydist spcsy)) ;set distances
(setq p1 pt1) ;set polyline start point
(command "PLINE" p1 "W" "0″ "") ;start polyline command
(repeat spcsx ;draw bottom line segments
(setq p1 (polar p1 0.0 (abs xdist)))
(command p1))
(repeat spcsy ;draw right line segments
(setq p1 (polar p1 (/ pi 2) (abs ydist)))
(command p1))
(repeat spcsx ;draw top line segments
(setq p1 (polar p1 pi (abs xdist)))
(command p1))
(repeat (- spcsy 1) ;draw left line segments
(setq p1 (polar p1 (* pi 1.5) (abs ydist)))             
(command p1))
(command "C") ;Close polyline
(setq ent1 (entlast) ;get entity
ent2 (entget ent1) ;get entity info
;******TO ADJUST THE ARC SIZE ADJUST THE 0.5 BELOW*******
bulge (list (cons 42 0.5)) ;build cloud arcs   0.5
nxt (cdr (assoc -1 ent2)) ;set for lookup
nxt (entnext nxt) ;get next one
plw (list (cons 41 plw))) ;build cloud width
(if (= nxt nil)
(progn
(setq ent2 (subst (cons 42 0.5) (assoc 42 ent2) ent2))
(entmod ent2) ;modify entity
)
(while nxt ;start loop
(setq info (entget nxt) ;get exist. info
info (append info bulge) ;set bulge
info (append info plw) ;set width
) ;end of setq
(entmod info) ;modify entity
(setq nxt (entnext nxt)) ;get next segment
) ;end of while
)
(entupd ent1) ;update entity
        (SETVAR "OSMODE" OSM)
(setvar "blipmode" bm) ;reset blipmode
(setvar "cmdecho" 1) ;turn command echo on
(gc) (princ) ;print blank line
) ;End program

관련자료

댓글 2 / 1 페이지

수야12님의 댓글

(setq ds (getvar "dimscale")

딤스케일 영향 때문입니다 
전체 6,913 / 11 페이지
번호
제목
이름

최근글


새댓글


알림 0