프로그램
캐드 분류

반복문 한번에 선택

컨텐츠 정보

  • 30 조회
  • 1 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

(defun c:test ( / getentsel en1 10list elist point1 point2 point3 point4)
(vl-load-com)
(WHILE
(setq getentsel (entsel "nPick Rectangle")) ;객체선택
(setq en1 (entget (car getentsel) )) ; dxf 값 리턴
(setq 10list (vl-remove-if '(lambda (x) (/= (car x) 10)) en1) )
;assoc 10인 리스트만 남김
(setq elist (mapcar '(lambda (x) (cdr x)) 10list))
;cdr 해서 좌표값만 남김
(setq point1 (nth 0 elist) );1번째 포인트값
(setq point2 (nth 1 elist) ) ;2번째 포인트값
(setq point3 (nth 2 elist) );3번째 포인트값
(setq point4 (nth 3 elist) ):4번째 포인트값
(command "line" point1 point3 "")
(command "line" point2 point4 "")
)반복문 끝
);defun end

(setq getentsel (ssget "a" "nPick Rectangle")) ;객체선택

반복문 까지 적용해서 사각형 안에 엑스자 선이 그려지는 리습입니다.
클릭 클릭 클릭 해서 반복문이 됩니다.
한번에 선택해서 한번에 그리고 싶습니다.

관련자료

댓글 1

수야12님의 댓글

따옴표 대신 function 이라고 써도 됩니다

(defun c:test ( / ks_Line ss n e en 10list ) (defun ks_Line (p1 p2) (entmakex (list (cons 0 “LINE”) (cons 10 p1) (cons 11 p2) ) ) ) (setq ss(ssget (list (cons 0 “LWPOLYLINE”)(cons 70 1)(cons 90 4)))n 0) (if ss (progn (repeat (sslength ss) (setq e(ssname ss n)) (setq en(entget e)) (setq 10list (mapcar (function cdr) (vl-remove-if (function(lambda (x) (/= (car x) 10 )))en))) (mapcar(function(lambda(a b)(ks_Line a b)))(list(car 10list)(cadr 10list))(list(caddr 10list)(last 10list))) (setq n (1+ n)) );repeat );progn );if (princ) );defun end

여분필드1 여분필드2 여분필드3
전체 7,152 / 1 페이지
번호
제목
이름
알림 0