
save as dxf
Publicado por guihe (4 intervenciones) el 05/11/2009 14:47:34
Hola a todos,
estoy escribiendo un codigo en VB y no sé como guardar los archivos en dxf. solo me los guarda en dwg... ¿se os ocurre como puedo cambiarlos? No sé si tendra que ver con definir los objetos elipses como AcadApplication... en fin que estoy un poco perdido.
os transcribo el codigo. otra cosa que me ocurre es que en cada 'layer' me pinta dos elipses, la que dibuja en la 'layer' anterior y una nueva, y en la siguiente 'layer' repite la nueva (de la capa anterior) y pinta otra nueva.... ¿tendría que 'resetear' de alguna manera a ObjElip?
GRACIAS!
********************
Sub Dibuja_elip()
Dim aCaDaP As AcadApplication
Dim ArchSal As String
Dim CapaEl As AcadLayer
Dim ObjElip As AcadEllipse
Dim Centro(0 To 2) As Double
Dim EjeM(0 To 2) As Double
Dim PropRad As Double
Dim PI
PI = 4 * Atn(1)
Set aCaDaP = ConnToAcad
For i = 1 To 20
Centro(0) = Cells(i + 1, 15).Value: Centro(1) = Cells(i + 1, 16).Value: Centro(2) = 0
EjeM(0) = (Cells(i + 1, 11).Value / 2) * Cos(Cells(i + 1, 6) * (180 / PI))
EjeM(1) = (Cells(i + 1, 11).Value / 2) * Sin(Cells(i + 1, 6) * (180 / PI))
EjeM(2) = 0
diam1 = Cells(i + 1, 11).Value
diam2 = Cells(i + 1, 12).Value
If (diam1 / diam2) < 1 Then
PropRad = (diam1 / diam2)
Else
PropRad = (diam2 / diam1)
End If
'creamos las elipses en Model Space
'Set aCaDaP = ConnToAcad
aCaDaP.Visible = True
Set CapaEl = aCaDaP.ActiveDocument.Layers.Add("arb-" & i)
Set ObjElip = aCaDaP.ActiveDocument.ModelSpace.AddEllipse(Centro, EjeM, PropRad)
ObjElip.Layer = "arb-" & i
Next i
aCaDaP.ZoomExtents
'guarda el dibujo como un *.dxf
ArchSal = ThisWorkbook.Path & "/p_" & Cells(2, 3).Value & ".dwg"
aCaDaP.ActiveDocument.SaveAs ArchSal
End Sub
estoy escribiendo un codigo en VB y no sé como guardar los archivos en dxf. solo me los guarda en dwg... ¿se os ocurre como puedo cambiarlos? No sé si tendra que ver con definir los objetos elipses como AcadApplication... en fin que estoy un poco perdido.
os transcribo el codigo. otra cosa que me ocurre es que en cada 'layer' me pinta dos elipses, la que dibuja en la 'layer' anterior y una nueva, y en la siguiente 'layer' repite la nueva (de la capa anterior) y pinta otra nueva.... ¿tendría que 'resetear' de alguna manera a ObjElip?
GRACIAS!
********************
Sub Dibuja_elip()
Dim aCaDaP As AcadApplication
Dim ArchSal As String
Dim CapaEl As AcadLayer
Dim ObjElip As AcadEllipse
Dim Centro(0 To 2) As Double
Dim EjeM(0 To 2) As Double
Dim PropRad As Double
Dim PI
PI = 4 * Atn(1)
Set aCaDaP = ConnToAcad
For i = 1 To 20
Centro(0) = Cells(i + 1, 15).Value: Centro(1) = Cells(i + 1, 16).Value: Centro(2) = 0
EjeM(0) = (Cells(i + 1, 11).Value / 2) * Cos(Cells(i + 1, 6) * (180 / PI))
EjeM(1) = (Cells(i + 1, 11).Value / 2) * Sin(Cells(i + 1, 6) * (180 / PI))
EjeM(2) = 0
diam1 = Cells(i + 1, 11).Value
diam2 = Cells(i + 1, 12).Value
If (diam1 / diam2) < 1 Then
PropRad = (diam1 / diam2)
Else
PropRad = (diam2 / diam1)
End If
'creamos las elipses en Model Space
'Set aCaDaP = ConnToAcad
aCaDaP.Visible = True
Set CapaEl = aCaDaP.ActiveDocument.Layers.Add("arb-" & i)
Set ObjElip = aCaDaP.ActiveDocument.ModelSpace.AddEllipse(Centro, EjeM, PropRad)
ObjElip.Layer = "arb-" & i
Next i
aCaDaP.ZoomExtents
'guarda el dibujo como un *.dxf
ArchSal = ThisWorkbook.Path & "/p_" & Cells(2, 3).Value & ".dwg"
aCaDaP.ActiveDocument.SaveAs ArchSal
End Sub
Valora esta pregunta


0