| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Blechteil öffnen -> Abwicklung erstellen -> ini Konfiguration laden (2090 / mal gelesen)
|
Thomas Thomas Mitglied
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 27. Feb. 2020 20:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte gern ein Makro erstellen wo ein Blechteil geöffnet wird, anschließend die Abwicklung erstellt wird und diese dann als DXF Datei gespeichert wird. Das öffnen und erstellen der Abwicklung bekomme ich hin. Wie kann man die Konfigurationsdatei beim speichern einbinden? Marco Test (Blechdatei öffnen -> Abwicklung erstellen):
Public Sub test_Blechteil() ThisApplication.Documents.Open ("F:\01_Projekte\Blechteil.ipt") ThisApplication.ActiveDocument.ComponentDefinition.Unfold 'ini-Datei (Konfigurationsdatei)einlesen 'Abwicklung als DXF-Datei speichern End Sub Inhalt Konfiguration.ini:
[FP EXPORT SELECT OPTIONS] AUTOCAD VERSION=AutoCAD 2000 USE CUSTOMIZE=No CUSTOMIZE FILE=c:\program files\autodesk\inventor 2013\Design Data\DWG-DXF\FlatPattern.xml [FLATPATTERN LAYER OPTIONS] Tangentenlinien=IV_TANGENT:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Biegungslinien (vorne)=IV_BEND:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Biegungslinien (hinten)=IV_BEND_DOWN:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Werkzeugmittelpunkte (vorne)=IV_TOOL_CENTER:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Werkzeugmittelpunkte (hinten)=IV_TOOL_CENTER_DOWN:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Bogenmittelpunkte=IV_ARC_CENTERS:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Außenprofil=IV_OUTER_PROFILE:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Innenprofil=IV_INTERIOR_PROFILES:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Elementprofil (vorne)=IV_FEATURE_PROFILES:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Elementprofil (hinten)=IV_FEATURE_PROFILES_DOWN:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Alternative Darstellung (vorne)=IV_ALTREP_FRONT:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Alternative Darstellung (hinten)=IV_ALTREP_BACK:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Nicht einbezogene Skizze=IV_UNCONSUMED_SKETCHES:Visibility=ON;LinePattern=0;LineWeight=-1,0000;Color=-255,-255,-255; Tangentiale Rolllinien=IV_ROLL_TANGENT:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; Rolllinien=IV_ROLL:Visibility=ON;LinePattern=28100;LineWeight=0,0500;Color=0,0,0; [FLATPATTERN GEOMETRY OPTIONS] REBASE GEOMETRY=Yes GROUP GEOMETRY=Yes REPLACE SPLINE=No SPLINE SIMPLIFICATION METHOD=Linear CHORD_TOLERANCE=0,0 mm TRIM CENTERLINES=No Vielen Dank im Voraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meierjo Mitglied
Beiträge: 416 Registriert: 20.08.2003 Windows 10 Prof 64 Bit Inventor Prof 2021 Vault Basic 2021
|
erstellt am: 28. Feb. 2020 06:37 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
Hallo Ich habe auch mal so ein Makro erstellt. Ich meine mich zu erinnern, dass das Config-File nicht eingelesen werden kann. Ich hab's dann seinerzeit so gelöst, dass ich alle Parameter in das Makro eingetragen habe. Sieht in etwa so aus: Code: 'sOut = "FLAT PATTERN DXF?AcadVersion=2000" & _ &BendUpLayer=IV_BEND&BendUpLayerLineType=37644 '&BendUpLayerColor=255;0;0 '&FeatureProfilesUpLayer=IV_FEATURE_PROFILES '&FeatureProfilesUpLayerLineType=37634 '&FeatureProfilesUpLayerColor=255;0;0 '&InvisibleLayers=IV_TANGENT;IV_ROLL_TANGENT;IV_ARC_CENTERS;IV_BEND_DOWN" 'AcadVersion String 2007, 2004, 2000, or R12 (for DXF only) 'https://forums.autodesk.com/t5/inventor-customization/linetype-value-for-layers-in-export-flat-pattern-to-dxf/td-p/5786579 'This is from API enum: LineTypeEnum. At my side, the continuous line is 37633, instead od 38634 'LineTypeEnum Enumerator 'Name Value Description Deutsch 'kChainLineType 37644 Chain line style. Kette 'kContinuousLineType 37633 Continuous line style. Durchgehend 'kCustomLineType 37649 Custom line style. benutzerdefiniert 'kDashDottedLineType 37638 Dash dotted line style. Strich punktiert 'kDashedDoubleDottedLineType 37645 Dashed double dotted line style. Gestrichelt doppelt punktiert 'kDashedHiddenLineType 37641 Dashed hidden line style. Gestrichelt versteckt 'kDashedLineType 37634 Dashed line style. Gestrichelt 'kDashedTripleDottedLineType 37647 Dashed triple dotted line style. Gestrichelt dreifach punktiert 'kDefaultLineType 37648 default line style. Standard 'kDottedLineType 37636 Dotted line style. Punktiert 'kDoubleDashDoubleDottedLineType 37639 Double dash double dotted line style. Doppelstrich doppelt punktiert 'kDoubleDashedChainLineType 37637 Double dashed line style. Doppelt gestrichelt 'kDoubleDashedDottedLineType 37646 Double dashed dotted line style. Doppelt gestrichelt punktiert 'kDoubleDashedTripleDottedLineType 37640 Double dash triple dotted line style. Doppelt gestrichelt dreifach punktiert 'kLongDashDottedLineType 37642 Long dash dotted line style. Langer Strich punktiert 'kLongDashedDoubleDottedLineType 37635 Long dashed double dotted line style. Langer Strich doppelt punktiert 'kLongDashTripleDottedLineType 37643 Long dash triple dotted line style. Langer Strich dreifach punktiert 'Farbcodes '0 0 0 schwarz '0 0 255 blau '0 255 0 grün '0 255 255 cyan '255 0 0 rot '255 0 255 magenta '255 255 0 gelb '255 255 255 weiss sOut = "FLAT PATTERN DXF?AcadVersion=2004" & _ "&OuterProfileLayer=IV_OUTER_PROFILE&OuterProfileLayerLineType=37633&OuterProfileLayerLineWeight=0.0500&OuterProfileLayerColor=0;0;0" _ + "&ArcCentersLayer=IV_ARC_CENTERS&ArcCentersLayerLineType=37633&ArcCentersLayerLineWeight=0.0500&ArcCentersLayerColor=255;0;0" _ + "&InteriorProfilesLayer=IV_INTERIOR_PROFILES&InteriorProfilesLayerLineType=37633&InteriorProfilesLayerLineWeight=0.0500&InteriorProfilesLayerColor=0;0;0" _ + "&BendUpLayer=IV_BEND&BendUpLayerLineType=37633&BendUpLayerLineWeight=0.0500&BendUpLayerColor=0;0;255" _ + "&BendDownLayer=IV_BEND_DOWN&BendDownLayerLineType=37633&BendDownLayerLineWeight=0.0500&BendDownLayerColor=0;0;255" _ + "&ToolCenterUpLayer=IV_TOOL_CENTER&ToolCenterUpLayerLineType=37633&ToolCenterUpLayerLineWeight=0.0500&ToolCenterUpLayerColor=255;0;0" _ + "&ToolCenterDownLayer=IV_TOOL_CENTER_DOWN&ToolCenterDownLayerLineType=37633&ToolCenterDownLayerLineWeight=0.0500&ToolCenterDownLayerColor=255;0;0" _ + "&FeatureProfilesUpLayer=IV_FEATURE_PROFILES&FeatureProfilesUpLayerLineType=37633&FeatureProfilesUpLayerLineWeight=0.0500&FeatureProfilesUpLayerColor=255;0;0" _ + "&FeatureProfilesDownLayer=IV_FEATURE_PROFILES_DOWN&FeatureProfilesDownLayerLineType=37633&FeatureProfilesDownLayerLineWeight=0.0500&FeatureProfilesDownLayerColor=255;0;0" _ + "&AltRepFrontLayer=IV_ALTREP_FRONT&AltRepFrontLayerLineType=37633&AltRepFrontLayerLineWeight=0.0500&AltRepFrontLayerColor=255;0;0" _ + "&AltRepBackLayer=IV_ALTREP_BACK&AltRepBackLayerLineType=37633&AltRepBackLayerLineWeight=0.0500&AltRepBackLayerColor=255;0;0" _ + "&UnconsumedSketchesLayer=IV_UNCONSUMED_SKETCHES&UnconsumedSketchesLayerLineType=37633&UnconsumedSketchesLayerLineWeight=0.0500&UnconsumedSketchesLayerColor=0;255;0" _ + "&RollLinesLayer=IV_ROLL&RollLinesLayerLineType=37633&RollLinesLayerLineWeight=0.0500&RollLinesLayerColor=0;255;0" _ + "&InvisibleLayers=IV_TANGENT;IV_ROLL_TANGENT" _ + "&RebaseGeometry=False" _ + "&MergeProfilesIntoPolyline=False" _ + "&SimplifySplines=True" _ + "&SplineTolerance=0.0015"
Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Thomas Mitglied
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 29. Feb. 2020 19:05 <-- editieren / zitieren --> Unities abgeben:
|
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 720 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 29. Feb. 2020 19:51 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
Leider kann ich nur bestätigen, dass es diese Möglichkeit (.ini einlesen) für diesen Fall nicht gibt. Zumindest könnte ich sie nicht entdecken. Erscheint mir insofern auch plausibel, dass es die Möglichkeit beim dxf Export per GUI auch nicht gibt (ich meine den Befehl im Kontext Menü der Abwicklung 'als dxf speichern' oder ähnlich). ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 720 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 29. Feb. 2020 19:59 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 01. Mrz. 2020 00:36 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
Hallo Die Ini kann meiner Meinung schon mitgegeben werden. Sie muss nur in einen String gelesen werden. Kannst du die Funktion mal probieren? Die Sub hab ich jetzt nur schnell dazu geschrieben damit man es direkt testen kann. Code: Public Sub WriteSheetMetalDXF()'############################################## 'Needs Reference to Microsoft Scripting Runtime '############################################## Dim oDoc As PartDocument Set oDoc = ThisApplication.ActiveDocument Dim sIniFile As String sIniFile = "C:\Temp\dxf.ini" '<-- Pfad ggf. anpassen !!! Dim sIniFileString As String sIniFileString = ReadIniFile(sIniFile) Dim oObject As Object Set oObject = CreateObject("Scripting.FileSystemObject") Dim oDataIO As DataIO Set oDataIO = oDoc.ComponentDefinition.DataIO oDataIO.WriteDataToFile sIniFileString, "C:\temp\flat.dxf" '<-- Pfad ggf. anpassen !!! End Sub Private Function ReadIniFile(sIniFile As String) As String Dim FSO As Object Dim oFile As Scripting.File Dim IniFileStream As TextStream Dim sTemp As String Dim sZeile As String sTemp = "FLAT PATTERN DXF?" Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(sIniFile) Then Set oFile = FSO.GetFile(sIniFile) Else MsgBox "No IniFile found!" Return End If Set IniFileStream = oFile.OpenAsTextStream(ForReading, TristateUseDefault) Do While Not IniFileStream.AtEndOfStream sZeile = IniFileStream.ReadLine If Not Left(sZeile, 1) = "[" Then sTemp = sTemp & "&" & sZeile End If Loop IniFileStream.Close Set IniFileStream = Nothing Set FSO = Nothing ReadIniFile = sTemp End Function
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Thomas Mitglied
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 01. Mrz. 2020 13:20 <-- editieren / zitieren --> Unities abgeben:
Hallo, vielen Dank für die Antworten. Ich hab den Code von Ralf gerade mal probiert, bekomme aber bei Private Function in der Zeile Dim oFile As Scripting.File folgenden Fehler angezeigt. --------------------------- Microsoft Visual Basic for Applications --------------------------- Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert --------------------------- OK Hilfe --------------------------- Muss man dies anders definieren? Danke Grüße Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 01. Mrz. 2020 14:22 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
|
Thomas Thomas Mitglied
Beiträge: 49 Registriert: 27.02.2020
|
erstellt am: 01. Mrz. 2020 21:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, cool, es hat funktioniert, vielen Dank Ich habe mir den String nach dem einlesen mal in einem Fenster anzeigen lassen und den Inhalt in eine Word Datei eingefügt. Die INI Datei habe ich ebenfalls in eine Word Datei kopiert und anschließend habe ich die beiden Dateien miteinander vergleichen lassen. Ich habe das Ergebnis angefügt. Die Dateien sind nicht 100% identisch, spielt dies eine Rolle? nicht vorhanden im String: [FP EXPORT SELECT OPTIONS] [FLATPATTERN LAYER OPTIONS] [FLATPATTERN GEOMETRY OPTIONS] nicht vorhanden im Orginal:
FLAT PATTERN DXF? Grüße und einen schönen Abend
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 02. Mrz. 2020 00:10 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
Hallo Ich kann mich nicht mehr erinnern woher ich das habe. Aber die Abschnittsnamen in eckigen Klammern müssen ausgefiltert werden und das "FLAT PATTERN DXF?" musste vorangestellt werden, damit es funktioniert. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_Schalla Ehrenmitglied CAD_SYSTEMBETREUER
Beiträge: 1732 Registriert: 06.04.2002 DELL M6800 Cad Admin Methodikentwickler 3D
|
erstellt am: 28. Mrz. 2020 17:30 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas Thomas
Das mit der INI datei geht schon nur nicht wie Autodesk es vorhatte. Setze in deiner Funktion den Pfad für die LAST USED vor dem Export. Also am einfachsten vorher ein Silent Reg Import Hier als Beispiel Pfad muss an deine Inventor Version angepasst werden. ***************************************************** Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Autodesk\Inventor\RegistryVersion24.0\Translators\DWG] [HKEY_CURRENT_USER\SOFTWARE\Autodesk\Inventor\RegistryVersion24.0\Translators\DWG\LastINIfile] "LastExportDXFINIfile"="E:\\VAULT_2020_WORKDIR\\CAD_DATAS\\PROJECTS\\CUSTOMERS\\ADESK_SAMPLES\\Test Station\\Components\\dummy.ini" ------------------ ************************************ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |