프로그램
캐드 분류

점과점을 직으면 구름마크 나오게끔 수정해주시면 안될까요

컨텐츠 정보

  • 121 조회
  • 0 추천
  • 0 비추천
  • 목록

본문

구름마크 리습인데 고수님이 올려주신 리습을 다운받았는데


호지름을 안넣고 바로 호지름에 지정호13이란 숫자가 입력되어서 바로 점과점을 직으면 구름마크 나오게끔 수정해주시면 안될까요 고수님 부탁드릴께요


 


 


 


 


 


 


 


 


(defun c:cdt (/ *error* plw pt1 pt2 p1 p2 xdist ydist spcsx spcsy ent1 ent2 nxt info bulge data c_o c_l)


 (defun *error* (msg)


   (setvar "osmode" c_o)


   (setvar "clayer" c_l)


 ) 


 (print ">> Cloud Draw Tool…")


              (setq c_o (getvar "osmode"))


 (setvar "cmdecho" 0)


 (setvar "osmode" 0)


              (setq c_l (getvar "clayer")) ;<= 현재 레이어값을 저장한다.


              (setq ly (tblsearch "layer" "Revision")) ;"레이어를 검색 없으면 레이어 생성


              (if (= ly nil) (command "layer" "n" "36″ ""))


              (setvar "clayer" "36″) ;<= 현재 레이어를 변경한다.


 (if (= ds nil)


   (setq ds 10);;(setq ds 10)


 )


 (setq plw (* 2 ds)


       oer *error*


       bm (getvar "blipmode")) 


 (print)                                           ; ————> circle size 


 (setq str (strcat "호 지름<" (rtos ds 2) "> : "));;;;;;;;;;;


 (setq  buf (getint str));;;;;;;;  (setq  buf (getint str))


 (if (= buf NIL)


   (setq buf ds)


   (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 (getvar "dimscale")) 2))    ;X spacing


  spcsy (/ (abs ydist) (/ (* ds (getvar "dimscale")) 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" "1″ "")     ;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 "blipmode" bm)      ;reset blipmode


 (setvar "cmdecho" 1)      ;turn command echo on


              (setvar "osmode" c_o)


              (setvar "clayer" c_l) ;<= 저장된 값으로 현재 레이어를 변경한다.


 (gc) (princ)       ;print blank line


)          ;End program

관련자료

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

최근글


새댓글


알림 0