| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Digitale Engineering-Prozesse bei Pergande mit BIM-, CAD- und PDM-Lösungen von Autodesk, ein Anwenderbericht
|
Autor
|
Thema: Blechabwicklung mit ilogic (1195 / mal gelesen)
|
DavidB Mitglied
Beiträge: 111 Registriert: 05.07.2002 ACADM/Inventor/Vault 2022
|
erstellt am: 30. Jun. 2021 16:15 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich versuche per ilogic aus einer Baugruppe alle Blechteile (Abwicklungen) als DXF rauszuschreiben. der Code funktioniert auch soweit
Code:
'define the active document as an assembly file Dim oAsmDoc As AssemblyDocument oAsmDoc = ThisApplication.ActiveDocument oAsmName = Left(oAsmDoc.DisplayName, Len(oAsmDoc.DisplayName) -4) 'check that the active document is an assembly file If ThisApplication.ActiveDocument.DocumentType <> kAssemblyDocumentObject Then MessageBox.Show("Please run this rule from the assembly file.", "iLogic") Exit Sub End If 'get user input RUsure = MessageBox.Show ( _ "This will create a DXF file for all of the asembly components that are sheet metal." _ & vbLf & "This rule expects that the part file is saved." _ & vbLf & " " _ & vbLf & "Are you sure you want to create DXF for all of the assembly components?" _ & vbLf & "This could take a while.", "iLogic - Batch Output DXFs ",MessageBoxButtons.YesNo) If RUsure = vbNo Then Return Else End If oPath = ThisDoc.Path oDataMedium = ThisApplication.TransientObjects.CreateDataMedium oContext = ThisApplication.TransientObjects.CreateTranslationContext oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism oOptions = ThisApplication.TransientObjects.CreateNameValueMap 'get DXF target folder path oFolder = oPath & "\" & oAsmName & " DXF Files" 'Check for the DXF folder and create it if it does not exist If Not System.IO.Directory.Exists(oFolder) Then System.IO.Directory.CreateDirectory(oFolder) End If '- - - - - - - - - - - - - '- - - - - - - - - - - - -Component - - - - - - - - - - - - 'look at the files referenced by the assembly Dim oRefDocs As DocumentsEnumerator oRefDocs = oAsmDoc.AllReferencedDocuments Dim oRefDoc As Document 'work the the drawing files for the referenced models 'this expects that the model has been saved For Each oRefDoc In oRefDocs iptPathName = Left(oRefDoc.FullDocumentName, Len(oRefDoc.FullDocumentName) - 3) & "ipt" 'check that model is saved If(System.IO.File.Exists(iptPathName)) Then Dim oDrawDoc As PartDocument oDrawDoc = ThisApplication.Documents.Open(iptPathName, True) oFileName = Left(oRefDoc.DisplayName, Len(oRefDoc.DisplayName)) Try 'Set the DXF target file nameTry CustomName =iProperties.Value(oFileName, "Custom", "PF_PRT_ZNR") Catch CustomName ="XXX" 'Wert, wenn iPropertie PF_PRT_ZNR nicht existiert End Try oDataMedium.FileName = oFolder & "\" & CustomName & " " & oFileName & ".dxf" Dim oCompDef As SheetMetalComponentDefinition oCompDef = oDrawDoc.ComponentDefinition If oCompDef.HasFlatPattern = False Then oCompDef.Unfold Else oCompDef.FlatPattern.Edit End If Dim sOut As String sOut = "FLAT PATTERN DXF?AcadVersion=2000&OuterProfileLayer=IV_OUTER_PROFILE" oCompDef.DataIO.WriteDataToFile( sOut, oDataMedium.FileName) 'just for check its works coretcly 'i=MessageBox.Show(oDataMedium.FileName, "Title",MessageBoxButtons.OKCancel) 'MessageBox.Show(i,"title",MessageBoxButtons.OK) 'If i=2 Then 'Exit Sub 'End If oCompDef.FlatPattern.ExitEdit Catch End Try oDrawDoc.Close Else End If Next
beim Punkt:
sOut = "FLAT PATTERN DXF?AcadVersion=2000&OuterProfileLayer=IV_OUTER_PROFILE" hab ich versucht, &MergeProfilesIntoPolyline=True hinzuzufügen, damit die Kontur gleich eine Polylinie wird, leider verschwindet die Außenkontur dann komplett und es bleiben nur die inneren Konturen über. Hab ich noch was übersehen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 30. Jun. 2021 18:29 <-- editieren / zitieren --> Unities abgeben: Nur für DavidB
|
KraBBy Mitglied Maschinenbau-Ingenieur
Beiträge: 721 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 01. Jul. 2021 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für DavidB
Hi Ralf, wie hast Du das Zeichen gefunden? (ich hab das nicht zu stande gebracht. Hab die Zeile in Notepad++ kopiert und "alle Zeichen anzeigen" lassen. - ach jetzt wenn ich den Cursor mit den Pfeiltasten bewege ... zwischen R und O) ------------------ Gruß KraBBy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DavidB Mitglied
Beiträge: 111 Registriert: 05.07.2002 ACADM/Inventor/Vault 2022
|
erstellt am: 01. Jul. 2021 08:50 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2630 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 01. Jul. 2021 09:14 <-- editieren / zitieren --> Unities abgeben: Nur für DavidB
|