하기의 리습을 조금 수정하고 싶습니다.
예) 도면에 5파이, 8파이, 10파이 등의 파이가 있습니다.
이것을 선택하면
5파이는 E5블럭으로 , 8파이는 E8블럭으로, 10파이는 E10블럭으로 변경되는 리습으로 보완하고 싶습니다.
물론 도면내에 E5, E8,E10 의 블럭은 도면내에 지정되어 있는걸 가정합니다.
예로 세개의 파이를 예를 들었습니다만 더많은 파이가 있습니다.
첨부는 파이 상관없이 한개의 블럭으로 변경되는 리습입니다.
첨부를 하고 싶었습니다만, 첨부가 잘안되어 하기로 올립니다.
원을 블럭으로 , 포인트를 블럭으로 처리되는 리습인것 같은데 저한테는
여러 파이의 원이 여러 블럭으로 처리되는 리습이면 충분합니다.
고수님들의 도움이 절실합니다.
(defun c:c2b (/ ss ct len e eb bname pt echohold)
;(defun c:p2b (/ ss ct len e eb bname pt echohold)
;;;get command echo setting and store it
(setq echohold (getvar “CMDECHO”))
;;;set command echo off
(setvar “CMDECHO” 0)
;;;set attribute request off
(setvar “ATTREQ” 0)
;;;get name of block to insert
(setq bname (getstring “nBlock name: “))
;;;check that the block is defined in the current drawing
(if (tblsearch “block” bname)
(progn
;;;prompt for point selection
(princ “nSelect point objects:”)
;;; — if point OR circle objects were selected —
(if (setq ss (ssget ‘((0 . “CIRCLE”))))
;(if (setq ss (ssget ‘((0 . “POINT”))))
(progn
;;;walk through point objects
(setq len (sslength ss))
(setq ct 0)
(while (< ct len)
;;;for each point
(setq e (ssname ss ct))
(setq ct (+ ct 1))
(setq eb (entget e))
;;;get insert point
(setq pt (cdr (assoc 10 eb)))
;;;insert block
(command “_insert” bname pt “” “” “”)
)
)
(princ “nNo circle objects selected.”)
;(princ “nNo point objects selected.”)
)
)
(princ “nInvalid, block not defined in drawing.”)
)
;;;restore command echo setting to stored value
(setvar “CMDECHO” echohold)
;;;restore attribute request setting to stored value
(setvar “ATTREQ” 1)
(princ)
)
10파이의 원을 찾아 B10블럭으로 변경하라는 뜻으로 하기는 안되는건가요??
물론 B10블럭은 도면내에 존재합니다.
(defun C:CTB() (setq ss (ssget “_x” ‘(-5 . “<=”)(0 . “CIRCLE”)(-5 . “>=”))) (command “insert” “B10″”c” ss “” pause pause) (princ))
뭐가 문제일까요??
공부하려고 해도 어렵네요~~~
https://blog.naver.com/khs12kim/222216030619
수야 12님 답변 감사합니다.
그런데 사이트 알려주신데에는 단지 파이만 블럭화 하는거네요~~~
저는 제가 만들어놓은 블럭으로 변화되는것을 바라는것 입니다.
파이라면 radius가 아닌 diameter겠군요 my stake well-done ㅎㅎ;;
수야12님
정말 감사드려요 꼭 원하는겁니다.
감사합니다.
올한해 좋은일만 가득하세요~~~~~~~~~~