Hola a todos
Estoy trabajando en una rutina que:
-en la primera entrada pida en contorno de la pieza.. (ese contorno 󠰡nel siempre tiene que ser una
polilinea cerrada, y solo será una entidad ya que después se convierte en region y finalmente, cuando
se complete con la resta de las regiones denominadas hueco se acabara extruyendo....)
-En la segunda peticion de seleccion que pida los huecos a restar de la primera region, y nos los tiene que pedir
seleccionar mediante SSGET, (para poder seleccionarlo uno a
uno... mediante una ventana o como queramos (pero siempre va a ser un conjunto de selecci󮬠 ya que serán varias entidades (Huecos). Estas entidades solo pueden ser Polilineas o Circulos, ya que luego las tiene que convertir también a Regiones (Para luego poder restarlas de la polilinea primera, convertida a region).
Hasta aquí lo tengo conseguido. Lo complicado para mi viene después y es que soy muy torpe y no se programar....
Necesito que los huecos de la segunda selecci󮠳e resten de la primera
Y que me devuelva una sola region... en la que estén restados los huecos...
Pienso que necesito un bucle en el que se vayan restando una por una las entidades de la segunda selecci󮠨los llamados huecos)....
Pero no se implementarlo. Alguien me puede ayudar?
Adjunto lo que tengo escrito de programa hasta ahora y un dibujo DWG de ejemplo...
Muchas gracias por vuestra ayuda
(defun c:RestaRegiones2 ( / i contorno L nhuecos contorno1)
(princ "\nSeleccione el contorno del panel:")
(setq
;selecci󮠣on filtro para incluir solo polilíneas cerradas
contorno (ssget "_:S" '((0 . "LWPOLYLINE")(-4 . "&") (70 . 1)))
) ;parentesis fin del primer setq
(command "_Region" contorno "")
(setq contorno1 (entlast))
(princ "\nSeleccione los huecos a restar:")
(setq
;contador para luego iterar por el selection set
i 0
;selecci󮠣on filtro para incluir solo polilíneas cerradas y circulos
nhuecos (ssget '((-4 . "<OR")
(-4 . "<AND")(0 . "LWPOLYLINE")(-4 . "&") (70 . 1) (-4 . "AND>")
(-4 . "<AND")(0 . "CIRCLE")(-4 . "AND>")
(-4 . "OR>")
))
) ;parentesis fin del primer setq
;bucle que itera por el selection set agregando las entidades a la lista L
(repeat (sslength nhuecos)
(setq L (cons (vlax-ename->vla-object (ssname nhuecos i))
L
))
i (1+ i)
)
(command "_Region" nhuecos "")
(command "_.subtract" contorno1 "" huecos "")
) ; fin del DEFUN