Hallo
Ik heb verschillende 3D-profielen op een onderdeel (deelfamilie) die ik moet converteren naar DXF en met behoud van hun configuratienaam als bestandsnaam, na het proberen van Batchconverter , merk ik dat de oorsprong van mijn onderdeel niet is opgenomen. Ik heb een macro geprobeerd, maar het overkomt mij hetzelfde.
De enige oplossing die ik heb gevonden, is om voor elke configuratie onder dxf op te slaan. Het is lang en ik heb verschillende van dit soort stukken te doen.
Hebben jullie een oplossing voor mijn probleem?
Bedankt.
Vriendelijke groeten
Mijn macro:
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim vConfNameArr As Variant
Dim sConfigName As String
Dim nStart As Single
Dim i As Long
Dim bShowConfig As Boolean
Dim bRebuild As Boolean
Dim bRet As Boolean
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
vConfNameArr = swModel.GetConfigurationNames
For i = 0 To UBound(vConfNameArr)
sConfigName = vConfNameArr(i)
bShowConfig = swModel.ShowConfiguration2(sConfigName)
bRebuild = swModel.ForceRebuild3(False)
Dim FilePath As String
Dim PathSize As Long
Dim PathNoExtension As String
Dim NewFilePath As String
FilePath = swModel.GetPathName
PathSize = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)
NewFilePath = PathNoExtension + sConfigName & ".DXF"
'Export Flat Pattern
bRet = swModel.ExportFlatPatternView(NewFilePath, 1)
Next i
End Sub
meule_heller_pour_dxf.sldprt
Hallo
De functie "ExportFlatPatternView" is verouderd, in uw macro moet u de functie ExportToDWG2 gebruiken en met de parameter "Uitlijning" kijken om de coördinaten van de oorsprong en de richtingen van de assen in te stellen.
Vriendelijke groeten
Hallo
Dank u voor uw antwoord,
Heb je een voorbeeld van hoe je het kunt gebruiken? Omdat ik het niet begrijp, het is om te exporteren naar DWG toch?
Vriendelijke groeten.
Hallo
Zoals aangegeven in de functie-instellingen is dit voor een export in DXF of DWG:
"FilePath : Pad en bestandsnaam van het geëxporteerde DXF/DWG-bestand"
Op de link die ik je gaf staat al een voorbeeld, zie HIER. Om in dit voorbeeld in DXF op te slaan, verander je gewoon de regel sPathName = sPathName + "dwg" in sPathName = sPathName + "dxf".
Vriendelijke groeten
Hallo
Ok, ik ben niet goed genoeg voor macro's. ^^
Als ik wil dat de dxf wordt gemaakt op de bestandslocatie van mijn 3D, moet ik iets aanraken? en ik zou graag willen dat de macro een DXF maakt voor elke configuratie
Als je de tijd hebt natuurlijk
Vriendelijke groeten.
Hier is een voorbeeld op basis van uw macro:
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim vConfNameArr As Variant
Dim sConfigName As String
Dim nStart As Single
Dim i As Long
Dim bShowConfig As Boolean
Dim bRebuild As Boolean
Dim bRet As Boolean
Dim varAlignment As Variant
Dim dataAlignment(11) As Double
Dim varViews As Variant
Dim dataViews(0) As String
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
swModel.ShowNamedView2 "*Face", 1
swModel.ViewZoomtofit2
dataAlignment(0) = 0#
dataAlignment(1) = 0#
dataAlignment(2) = 0#
dataAlignment(3) = 1#
dataAlignment(4) = 0#
dataAlignment(5) = 0#
dataAlignment(6) = 0#
dataAlignment(7) = 1#
dataAlignment(8) = 0#
dataAlignment(9) = 0#
dataAlignment(10) = 0#
dataAlignment(11) = 1#
varAlignment = dataAlignment
varViews = dataViews
vConfNameArr = swModel.GetConfigurationNames
For i = 0 To UBound(vConfNameArr)
sConfigName = vConfNameArr(i)
bShowConfig = swModel.ShowConfiguration2(sConfigName)
bRebuild = swModel.ForceRebuild3(False)
Dim sPathName As String
Dim sModelName As String
sModelName = swModel.GetPathName
sPathName = swModel.GetPathName
sPathName = Left(sPathName, Len(sPathName) - 6)
sPathName = sPathName + sConfigName + ".dxf"
Set swPart = swModel
swPart.ExportToDWG2 sPathName, sModelName, swExportToDWG_ExportAnnotationViews, False, varAlignment, False, False, 0, varViews
Next i
End Sub
Vriendelijke groeten
1 like
Hartelijk dank.
Dit zal me helpen in mijn werk en vooral bij het leren van VBA-code.
Vriendelijke groeten
Hallo
Ik sta mezelf toe om over deze macro te herschrijven, ik wil hem inderdaad verbeteren door de map te selecteren waar hij moet worden opgeslagen, maar ik blokkeer hem daar een beetje, ik kan de map selecteren, maar hij slaat nog steeds op waar het bestand is.
Welk stukje code mis ik? Ik probeer te zoeken op het net, maar er is zoveel verschillende code.
Vriendelijke groeten.
dxf.swp