nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

LISP reperire entità appena create

Von: pincopalla (pincopalla@tin.it) [Profil]
Datum: 11.06.2008 08:32
Message-ID: <484f7198$0$41657$4fafbaef@reader4.news.tin.it>
Newsgroup: it.comp.software.cad
Ciao a tutti ho trovato in rete il seguente lisp che permette di eseguire
un'intersezione tra più regioni.
Il problema è che poi vorrei salvare in un gruppo di selezione le regioni
risultanti.
Ho già provato con
(ssget "_P") e (entlast)

Ho anche provato con l'utilissima funzione "ALE_Ss-After" del gentile
Marco_AA ma anche questa che di solito funziona bene in questo caso non
riesce. Avete qualche suggerimento?

Grazie

(defun c:test ()

(setq sel1 (ssget))
(setq sel2 (ssget))
(setq marker (ALE_LASTENT))
(soustrac sel1 sel2)
(setq regrisultati (ALE_SS-AFTER marker))
)

(defun soustrac (ss1 ss2 / n lst nn)
(vl-load-com)
(or *acdoc*
(setq *acdoc* (vla-get-activeDocument (vlax-get-acad-object)))
)
(if ss1
(if ss2
(progn
(vla-StartUndoMark *acdoc*)
(repeat (setq n (sslength ss2))
(setq
lst (cons (vlax-ename->vla-object (ssname ss2 (setq n (1- n))))
lst
)
)
)

(repeat (setq n (sslength ss1))
(setq obj (vlax-ename->vla-object (ssname ss1 (setq n (1- n)))))

(foreach o lst
(and (= (vla-get-ObjectName obj) (vla-get-ObjectName o))
(vla-Boolean obj acIntersection (vla-copy o))
)
)
)
(mapcar 'vla-delete lst)
(vla-EndUndoMark *acdoc*)
)
)
)
(princ)
)


[ Auf dieses Posting antworten ]

Antworten