Visual Basic para Aplicaciones - Dibujar en AutoCAD con VBA

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Dibujar en AutoCAD con VBA

Publicado por José A. (6 intervenciones) el 28/12/2021 18:00:46
He descargado un video de youtube (Emacro) Dibujando Líneas.
El video funciona correctamente, escribo el código (creo que igual que en el vídeo) y me salta error.
El código es:
Public Sub DrawLineObjets()
Dim dblStart(2) As Double
Dim dblEnd(2) As Double
Dim startPoint As Point
Dim endPoint As Point
Dim objEnt As AcadLine
Dim points As Variant
Dim k As Integer

Set points = GetRectangle()
'Set points = getStar()
'Set points = getPolygon()

For i = 1 To points.Count
Set startPoint = Point(i)

If (i = points.Count) Then
Set endPoint = Point(i)
Else
Set endPoint = Point(i + 1)
End If

dblStar(0) = startPoint.x: dblStar(1) = startPoint.y: dblStar(2) = 0
dblEnd(0) = endPoint.x: dblEnd(1) = endPoint.y: dblStar(2) = 0

ThisDrawing.Utility.Prompt ("x: " & CStr(startPoint.x) & CStr(startPoint.y)) & vbNewLine
Set objEnt = ThisDrawing.ModelSpace.AddLine(dblStar, dblEnd)
objEnt.Update
ZoomExtents

End Sub

Function GetRectangle()

Dim pnt1 As New Point
Dim pnt2 As New Point
Dim pnt3 As New Point
Dim pnt4 As New Point
Dim points As New Collection

pnt1.SetCoordinates 0, 0, 0
pnt1.SetCoordinates 0, 10, 0
pnt1.SetCoordinates 10, 10, 0
pnt1.SetCoordinates 10, 0, 0

points.Add pnt1
points.Add pnt2
points.Add pnt3
points.Add pnt4

Set GetRectangle = points

End Function

Alguien me puede decir porqué no me funciona.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Dibujar en AutoCAD con VBA

Publicado por José A. (6 intervenciones) el 30/12/2021 12:16:56
Después de End if
Falta.

Next i



El mensaje de error me salta en Dim StartPoint as Point
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Dibujar en AutoCAD con VBA

Publicado por José A. (6 intervenciones) el 30/12/2021 12:24:48
Después de End If

Debe ser:

Next i

dblStart(0) = StartPoint.x: dblStart(1) = StartPoint.y: dblStart(2) = 0
dblEnd(0) = EndPoint.x: dblEnd(1) = EndPoint.y: dblEnd(2) = 0


El error sigue saltando en el Dim StartPoint As Point.

En el video que lo he vuelto a ver varias veces, no da ningún problema. No entiendo lo que pasa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Dibujar en AutoCAD con VBA

Publicado por José A. (6 intervenciones) el 31/12/2021 12:18:59
El código como lo veo en el vídeo sería:

Public Sub DrawLineObjects()

Dim dblStart(2) As Double
Dim dblEnd(2) As Double
Dim startPoint As point
Dim endPoint As point
Dim objEnt As AcadLine
Dim points As Variant
Dim k As Integer

Set points = GetRectangle()
'Set points = getStar()
'Set points = getPolygon()

For i = 1 To points.Count
Set startPoint = points(i)

If (i = points.Count) Then
Set endPoint = points(i)
Else
Set endPoint = points(i + 1)
End If

dblStart(0) = startPoint.x: dblStart(1) = startPoint.y: dblStart(2) = 0
dblEnd(0) = endPoint.x: dblEnd(1) = endPoint.y: dblEnd(2) = 0

ThisDrawing.Utility.Prompt ("x: " & CStr(startPoint.x) & " y: " & CStr(startPoint.y)) & vbNewLine
Set objEnt = ThisDrawing.ModelSpace.AddLine(dblStar, dblEnd)
objEnt.Update

Next i

End Sub

Function GetRectangle() As Collection

Dim pnt1 As New point
Dim pnt2 As New point
Dim pnt3 As New point
Dim pnt4 As New point
Dim points As New Collection

pnt1.SetCoordinates 0, 0, 0
pnt1.SetCoordinates 0, 10, 0
pnt1.SetCoordinates 10, 10, 0
pnt1.SetCoordinates 10, 0, 0

points.Add pnt1
points.Add pnt2
points.Add pnt3
points.Add pnt4

Set GetRectangle = points

End Function

Adjunto pantallazos (lo ejecuto y error), en el vídeo funciona. Alguien puede ayudarme?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar