Witam
Mam kilka profili 3D na części (rodzinie części), które muszę przekonwertować na DXF i zachowując ich nazwę konfiguracyjną jako nazwę pliku, po wypróbowaniu Batchconverter , zauważam, że pochodzenie mojej części nie jest uwzględnione. Próbowałem makra, ale zdarza mi się to samo.
Jedynym rozwiązaniem, jakie znalazłem, jest zapisywanie pod dxf dla każdej konfiguracji. Jest długa i mam kilka takich kawałków do zrobienia.
Czy macie rozwiązanie mojego problemu?
Dziękuję.
Pozdrowienia
Moje makro:
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
Witam
Funkcja "ExportFlatPatternView" jest przestarzała, w swoim makrze musisz użyć funkcji ExportToDWG2 i zobaczyć za pomocą parametru "Alignment", aby ustawić współrzędne początku i kierunki osi.
Pozdrowienia
Witam
Dziękuję za odpowiedź,
Czy masz przykład, jak go użyć? Bo nie rozumiem, że to eksport do DWG, prawda?
Pozdrowienia.
Witam
Jak wskazano w ustawieniach funkcji, dotyczy to eksportu w formacie DXF lub DWG:
"FilePath : Ścieżka i nazwa eksportowanego pliku DXF/DWG"
Na linku, który Ci podałem, jest już przykład, zobacz TUTAJ. Aby zapisać w DXF w tym przykładzie, po prostu zmień linię sPathName = sPathName + "dwg" na sPathName = sPathName + "dxf".
Pozdrowienia
Witam
Ok, nie jestem wystarczająco dobry do makr. ^^
Jeśli chcę, aby plik dxf został utworzony w lokalizacji mojego pliku 3D, muszę czegoś dotknąć? i chciałbym, aby makro tworzyło DXF dla każdej konfiguracji
Oczywiście, jeśli masz na to czas
Pozdrowienia.
Oto przykład oparty na makrze:
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
Pozdrowienia
1 polubienie
Dziękuję bardzo.
Pomoże mi to w pracy, a zwłaszcza w nauce kodu VBA.
Pozdrowienia
Witam
Pozwalam sobie na przepisanie o tym makrze, rzeczywiście chcę je poprawić wybierając folder, w którym ma się zapisać ale trochę go tam blokuję, mogę wybrać folder ale nadal zapisuje się tam, gdzie jest plik.
Jakiego fragmentu kodu mi brakuje? Próbuję poszukać w sieci, ale jest tak wiele różnych kodów.
Pozdrowienia.
dxf.swp