안녕하세요.
멋진분들이 만든 리습을 뚫어져라 보면서, 저에게 필요한것으로 수정하는 중입니다.
그러던중 trim 명령어에서 멈춘상태인데, 혹시 아시는 분은 도움 부탁드립니다.
질문. p1 p2를 지나는 무한직선에서 p1과 p2 사이의 선만 지울려고 합니다.
제가 생각한것을 (command “trim” p1 p2 “”) 이것인데,
역시나 안되더군요.
초보를 안타까이 여기시고 가르쳐 주시기 바랍니다.
* 수야12님 답변 정말 감사합니다. 그런데, 더 많은 고민을 해야할듯합니다.
수야12님이 주신답변은 완벽하게 작동하지만, 선을 선택해야하니까요. 선택없이
그걸 할수 있을까 다시 고민해보겠습니다. 다시한번 감사합니다.
trim이 아니라 break 을 사용 해야 하는거 아닌가요??
답변 감사합니다. break 가 맞습니다. 그런데, 두 선이 겹쳐 있으면 한선만 자르네요. 혹시 겹친선 다 지울수는 없나요?
(DEFUN C:FF(/ ss n p1 p2 )
(SETQ SS(SSGET)N 0)
(setq p1 (getpoint “np1:”)p2(getpoint p1 “np2:”))
(REPEAT(SSLEngth ss)
(setq e(ssname ss n))
(command “_break” e “_non” p1 “_non” p2)
(setq n(1+ n))
)
(princ)
)
복사붙혀 넣기 마시고 그대로 똑 같이 직접 타이핑 하셔야 제대로 작동합니다
답변감사합니다.
ff치면 객체 선택 하라 나옵니다.
그뒤에 p1선택한후 p2 선택하면
오류 no function definition: 1+n 이라 나옵니다.
결론은 안됩니다.
https://blog.naver.com/khs12kim/222923370750
1+ 한칸띄고 n 입니다 ㅎㅎ
(command “trim” “f” p1 p2 “”)
포인트 지정이면 “f” 옵션을 사용해보세요
f 옵션 해봤는데, 안되더라고요. 위의 답변 처럼 break 쓰니까 되긴하더고요. 답변 감사합니다.
(defun c:ff(/ ss n p1 p2 e)
(setq p1(getpoint "np1:")p2(getpoint p1 "np2:"))
(if (setq ss(ssget "c" p1 p2))
(progn
(setq n 0)
(repeat(sslength ss)
(setq e(ssname ss n))
(command "_.break" e "_non" P1 "_non" p2)
(setq n (1+ n))
)
)
)
(princ)
)
감사합니다. 해결되었습니다. 대충이지만 이해도 됐고요. 활용가능한것이 너무 많아 가슴이 두근두근 합니다. 그러나 출근을 해야해서, 오늘도 좋은 하루 되시기 바랍니다.