Saltar al contenido

Macro seleccionar objetos de autocad


Recommended Posts

publicado

Navegando por la red he encontrado un código para seleccionar objetos de autocad, es el siguiente:

Public AcadDoc As Object

Public AcadUtil As Object

Dim objLinea As AcadObject

Dim Punto As Variant

Sub MacroSeleccion()

Set AcadDoc = GetObject(, "Autocad.Application").ActiveDocument

Set AcadUtil = GetObject(, "Autocad.Application").ActiveDocument.Utility

AcadDoc.Utility.GetEntity objLinea, Punto, "Selecione objeto: "

End Sub

Sin embargo, al ejecutarse en autocad sólo me pone que designe los objetos. No me los selecciona automáticamente.

He encontrado otro código similar, pero no me funciona. Creo que es más adecuado que el otro: es el siguiente:

Dim SS As AcadSelectionSet

Set SS = ThisDrawing.SelectionSets.Add("Prueba")

Call SS.SelectOnScreen

SS.Delete

Dim Entidad as AcadEntity

Set Entidad = SS(0)

el problema creo que está en ThisDrawing.SelectionSets.Add("Prueba")

Si alguien puede echar una mano. Lo único que deseo es seleccionar las líneas del espacio modelo de autocad para copiarlas.

publicado

Hola stopista,

las quieres copiar ¿donde y como?






Sub All_Line_Select()
Dim SOS As AcadSelectionSet
Dim objSS As AcadSelectionSet
Dim I As Integer
Dim j As Integer

For Each SOS In ThisDrawing.SelectionSets
If SOS.Name = "MySS" Then
ThisDrawing.SelectionSets("MySS").Delete
Exit For
End If
Next

ThisDrawing.SelectionSets.Add ("MySS")
Set objSS = ThisDrawing.SelectionSets("MySS")

j = 0
For I = 0 To ThisDrawing.ModelSpace.Count - 1
If ThisDrawing.ModelSpace.Item(I).ObjectName = "AcDbLine" Then
j = j + 1
End If
Next
ReDim ssobjs(0 To j - 1) As AcadEntity
j = 0
For I = 0 To ThisDrawing.ModelSpace.Count - 1
If ThisDrawing.ModelSpace.Item(I).ObjectName = "AcDbLine" Then
Set ssobjs(j) = ThisDrawing.ModelSpace.Item(I)
j = j + 1
End If
Next
objSS.AddItems ssobjs
MsgBox "Total : " & objSS.Count & " Lineas seleccionadas"

If objSS.Count < 1 Then
MsgBox "No lines and polylines selected!"
Exit Sub
End If

End Sub




[/CODE]

Aunque este foro es Excel...pero por curiosidad he estado investigando, esa macro que te pasa pone todas las lineas del espacio modelo en un selectionset, no se si es lo que buscabas, del código no estoy muy seguro, aunque uso el acad nunca habia usado el vba con el, tu dirás

Un Saludo

publicado

Buenos días Nachobm

Gracias por contestar y antes de nada, perdón por responder tan tarde (estuve algo liado).

Las líneas son un croquis o dibujo en autocad que creo a partir de unos datos de excel. Dicho dibujo lo quiero seleccionar para luego copiarlas como una imagen en excel).

Seguidamente, le ordenaría seleccionar todo el dibujo de nuevo y borrarlo para dejar el espacio modelo de autocad limpio y usarlo con unos nuevos datos cuando lo necesite.

Espero que se me haya entendido todo lo expuesto.

A continuación voy a probar el código que me proporcionas y te comento.

Ante todo, muchas gracias por tu respuesta Nacho.

publicado

No pasa nada,por el retraso , seguiré investigando cuando tenga un rato pues ahora ando algo liado yo tambien.

Un Saludo.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.