한수 부탁합니다.
1. PLINE 으로 LINE을 그릴때 마다 이동하는 마디에 삼각형(BLOCK)를
그리려고 합니다.
아래 내용은 조언을 받은 부분인데 pline이 아니고 line으로 처리되어
line이 끊어져서 저의 의도와 다르게 되었습니다
이래 저래 방법을 바꾸어 보았는데 좀 짧은 실력이라 해결이 안됩니다.
고수님 들의 조언을 부탁드립니다.
(defun c:linec()
(setq p1(getpoint))
(while (setq p2 (getpoint p1))
(command “pline” p1 p2 “”)
아래 부분은 별도의 명령을 실행하고 싶은 부분입니다.
>(test)
(command “insert” “블록” p2 “” “” (angle p1 p2))
(setq p1 p2)
)
)
>(defun test()
>(setq aa (getstring “Input value:”))
>
>)
이글을 읽어 주신 보든 분께 감사 드립니다.
LISP으로는PLINE그리는 중에 삼각형(BLOCK)을 그리거나 삽입하는 기능을 만들 수 없을 것 같은데요…~~…arx 전문가한테 의뢰해야 될 것 같습니다..~~
블럭을 삽입한 후 앞에 작업한 pline과 다음 작업에 들어가는 pline을 합치면 될 것 같은데…어떻게 하는지….
…
피라인으로 한개의 선분을 그린후에 명령을 종료하고, 다시 피라인 명령을 입력한후 시작점에서 엔터를 처보세요. 시작점이 이전 피라인 끝점과 똑같을 겁니다. 이걸 이용해서 피라인을 그려나가면 중간에 다른명령이 있어도
그려놓은 피라인과 새로그린 피라인을 연결할수 있는 조건은 성립됩니다. 연결을 하려면 먼저그려진 피라인을 변수에 저장 시켜놓고 새로 그려진 피라인을 조인 하면 되겟지요. 그외에는 직접 풀어나가보심이…
아니면 라인으로 다 그려놓고 나중에 연결을 하시던지요..
관심을 가져 주셔서 감사합니다.
아래와 같이 수정해 보았는데 성공하지 못했습니다.
pedit 를 써서 앞서 작업한 pline과 나중에 작업한 pline을 붙이려고 하는데 엔티티의 셋팅이 잘 안되는 것 같고 암튼 잘 안되네요.
함 보시고 조언 좀 부탁합니다.
;;;========================
(defun c:Li2 ( )
;;;========================
(setq tpath “c:/temp/”)
(setvar “cmdecho” 0)
(setq m_line2 (getvar “clayer”))
(princ “n 현재 작업 Layer : “)
(princ m_line)
; (princ “n 작업 할 라인을 선정하여 주십시요.”)
(setq ent-g (car (entsel)))
; (setq ent-g (entget ent))
(SETQ N 0)
; (command “pline”)
(setq p1 (getpoint “Point 1: “))
(while (setq p2 (getpoint p1))
(command “pline” p1 p2 “”)
(if (= n 0) (setq ent_l (entlast)))
; (princ (strcat ent_l ” ” (entlast)) )
(setq n (+ n 1))
(setq bb (entlast))
(if (>= n 2) (Draw_ell2))
(setq p1 p2)
)
) ; temp defun
;;—————
(defun Draw_ell2 ()
;;—————
(princ “n ->”)
; (princ ent_l)
(princ ent_l)
(princ (entlast))
; (command “line” p1 p2 “”)
; (command “insert” “블록” p2 “” “” (angle p1 p2))
(command “pedit” !ent_l “j” !bb ” ” ” “) ;; ,- 이부분이 실행이 안되는군요. 에러가…잡질 못하겠습니다.
)