|
Тема |
Re: Програмиране в ACAD [re: StSt] |
|
Автор | StSt (Нерегистриран) | |
Публикувано | 18.05.06 13:09 |
|
|
Аз продължавам да натискам по въроса
Предлагам ви програмка за прекъсване (TRIM) на обекти извън някаква затворена полилиния
;TRIM на обекти извън полилиния
(defun trimf (/ plrim plf plf1 p1 p2 nn)
(if (and
(setq plrim (entsel "\nИзберете полилиния за граница"))
(= "LWPOLYLINE" (cdr(ASSOC 0 (entget (car plrim)))))
);and
(progn
(COMMAND "zoom" "e")
(setq plrim (car plrim))
(COMMAND "offset" 1 plrim (getvar "extmin")(COMMAND))
(setq plf (entlast)
p1 (cdr(ASSOC 10 (entget plf)))
plf1 (entget plf)
plf1 (append plf1 (list (cons 10 p1))))
(FOREACH nn (cdr(member (cons 10 p1) plf1))
(if (= 10 (car nn))
(progn
(setq p2 (cdr nn)
);nab (csel1 plrim)
(COMMAND "trim" plrim """f" p1 p2 ""(COMMAND))
(setq p1 p2)
);progn
);if vertex
);FOREACH
(entdel plf)
(COMMAND "zoom" "p")
(princ)
);progn
);if LWPOLYLINE
);trimf
Програмката трябва да се копира във файл (например "TRIMF.LSP") в някоя директория, описана в SEARCH FILE PATH (например SUPPORT), зарежда се, като в командния ред се пише
(LOAD "TRIMF")
и се стартира като в командия ред се пише
(TRIMF)
посочва се полилинията, по която се изрязва и това е.
Не се изрязват блокове, текстове и др.
|
| |
|
|
|