Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  Blechabwicklung Basisfläche umkehren mit ilogic

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PDM System überzeugt durch Einfachheit und Klassifizierungen (GAIN Collaboration)
Autor Thema:  Blechabwicklung Basisfläche umkehren mit ilogic (232 mal gelesen)
SimonP
Mitglied


Sehen Sie sich das Profil von SimonP an!   Senden Sie eine Private Message an SimonP  Schreiben Sie einen Gästebucheintrag für SimonP

Beiträge: 6
Registriert: 22.02.2024

erstellt am: 27. Mrz. 2024 10:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo ,

ich bin auf der Suche nach einer Ilogic Regel, die aus einer Baugruppe alle Blechteilabwicklungen 2x die DXF herausschreibt in verschiedenen Ordner, 1x die Ausrichtung Basisfläche Standard und 1x Basisfläche umgekehrt.

Der Grund dafür ist, da die Stanzmaschine die Basisfläche Standard benötigt und der Biegeautomat die Basisfläche umgekehrt.

Kann mir bitte da vielleicht jemand helfen sowas umzusetzen mit Ilogic, wenn es überhaupt möglich ist.

MFG
SimonP

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2437
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 27. Mrz. 2024 15:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Moin

Versuch es mit den FlatPattern.TopFace und FlatPattern.BottomFace. Das sollten die beiden gesuchten Flächen sein. Die als DXF exportieren. Eine Schleife durch die AllReferencedDocuments im AssemblyDocument, dabei alle nicht-Bauteile, Bauteile die nicht Sheetmetal sind und alle SheetMetal die kein FlatPattern besitzen, ignorieren und schon fertig.

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KraBBy
Mitglied
Maschinenbau-Ingenieur


Sehen Sie sich das Profil von KraBBy an!   Senden Sie eine Private Message an KraBBy  Schreiben Sie einen Gästebucheintrag für KraBBy

Beiträge: 707
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 27. Mrz. 2024 15:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Hi,

abgesehen von der zweiten Ausrichtung, sollte sowas gut machbar sein, da bin ich mir recht sicher.

Ich habe ein VBA-Makro, das die Abwicklung als dxf speichert. Das entspricht dem Befehl im Kontextmenü der Abwicklung -> Kopie speichern unter -> dxf ...
Vorraussetzung ist, dass das Bauteil ein Blechteil ist (sheet metal document). Ggf. wird auch die Abwicklung noch erzeugt, sollte sie noch nicht existieren.

Es lässt sich auch Code schreiben, der alle Bauteile einer Baugruppe durchläuft und bei Blechteilen dieses Makro aufruft.

Mir ist aber keine Möglichkeit bekannt bei diesem DXF Export die Orientierung zu steuern. Da fällt mir nur der Umweg über eine Zeichnungsableitung ein. Das zu automatisieren stelle ich mir aber nicht ganz leicht vor (vielleicht habe ich aber einfach nur keine Ahnung davon). Nun die Frage: Wie erstellst Du die beiden Ausrichtungen bisher bzw. "zu Fuß"?

------------------
Gruß KraBBy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KraBBy
Mitglied
Maschinenbau-Ingenieur


Sehen Sie sich das Profil von KraBBy an!   Senden Sie eine Private Message an KraBBy  Schreiben Sie einen Gästebucheintrag für KraBBy

Beiträge: 707
Registriert: 19.09.2007

Inventor Professional 2020
WinX

erstellt am: 27. Mrz. 2024 15:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rkauskh:
Versuch es mit den FlatPattern.TopFace und FlatPattern.BottomFace. Das sollten die beiden gesuchten Flächen sein.

Ein möglicher Stolperstein ist dabei, dass bei diesen Flächen ggf. geprägte Features (die nicht abgewickelt wurden / werden konnten) NICHT enthalten sind. Es wird eben tatsächlich nur jene Fläche exportiert. Beim Export der Abwicklung sind diese Features enthalten.

------------------
Gruß KraBBy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2437
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 27. Mrz. 2024 17:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Moin

@KraBBy
Jain, die Außenkontur jedes Ausschnittes und jeder Prägung ist enthalten. Man kann nur nicht mehr unterscheiden ob das eine Ausklinkung oder eine Prägung ist. Biegelinien fehlen ebenso. Für's Stanzen könnte das reichen, für den Biegeautomaten wird's ohne Biegelinien schwierig. Da kann man aber die normale Abwicklung nehmen.

Es wäre besser über das FlatPatternOrientation Objekt zu gehen, eine neue Orientierung zu definieren (oder besser gleich "Standard" und "Invertiert"). In der Orientierung kann man die Basisfläche einfach mit "FlipBaseFace" invertieren. Die jeweilige Orientierung aktivieren und Abwicklung exportieren. Dann sollte alles drin sein.

------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2437
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 28. Mrz. 2024 07:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Moin

Hier mal zum rumspielen:

Code:

Option Explicit On
Private Sub Main
    'die Ordnernamen für die Ablage (Basispfad ist der Speicherpfad des Bauteiles)
    Dim sFolderName1 As String = "Standard"
    Dim sFolderName2 As String = "Standard invertiert"
   
    'die Abwicklungsdefinitionen
    Dim sFPO1 As String = "Vorgabe"
    Dim sFPO2 As String = "Invertiert"
   
    Dim oApp As Inventor.Application = ThisApplication
   
    If Not oApp.ActiveDocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
        MsgBox("Funktion nur in Baugruppe verfügbar.", MsgBoxStyle.Critical, "iLogic Export FlatPattern to DXF")
        Exit Sub
    End If
   
    Dim oAssDoc As AssemblyDocument = oApp.ActiveDocument
    Dim oRefDoc As Document
    Dim oPartDoc As PartDocument
    Dim oSheetMetalCompDef As SheetMetalComponentDefinition
   
    For Each oRefDoc In oAssDoc.AllReferencedDocuments
        If oRefDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject
            oPartDoc = DirectCast(oRefDoc, PartDocument)
            If oPartDoc.ComponentDefinition.Type = ObjectTypeEnum.kSheetMetalComponentDefinitionObject Then
                oSheetMetalCompDef = DirectCast( oPartDoc.ComponentDefinition,SheetMetalComponentDefinition)
                If oSheetMetalCompDef.HasFlatPattern = True Then
                    Dim oFPO As FlatPatternOrientation = oSheetMetalCompDef.FlatPattern.FlatPatternOrientations.ActiveFlatPatternOrientation
                    ExportFP2DXF(oApp,oPartDoc,oSheetMetalCompDef.FlatPattern, sFolderName1, sFPO1)
                    ExportFP2DXF(oApp, oPartDoc, oSheetMetalCompDef.FlatPattern, sFolderName1, sFPO2)
                    oFPO.Activate
                End If
            End If
            oPartDoc=Nothing
        End If
    Next
   
    MsgBox("Export beendet",MsgBoxStyle.Information,"iLogic Flat Pattern to DXF")
End Sub

Private Sub ExportFP2DXF(ByVal oApp As Inventor.Application, ByVal oPartDoc As PartDocument,ByVal oFP As FlatPattern, ByVal sSide As String, ByVal sFPO As String)
    Dim sPath As String= System.IO.Path.GetDirectoryName (oPartDoc.FullFileName)  & "\" & sSide
    Dim sExt As String = ".dxf"
    Dim sName As String = System.IO.Path.GetFileNameWithoutExtension(oPartDoc.FullFileName)
    Dim sNewName As String = sPath & "\" & sName &  sExt

    If Not System.IO.Directory.Exists(sPath) Then System.IO.Directory.CreateDirectory(sPath)
   
    Dim oFPOrientation As FlatPatternOrientation = GetFPOrientation(oFP, sFPO)
    oFPOrientation.Activate
   
    Dim oDataIO As DataIO = oFP.DataIO

    Dim sOut As String = "FLAT PATTERN DXF?AcadVersion=R12"

    If System.IO.File.Exists(sNewName) Then
        System.IO.File.Delete(sNewName)
    End If
   
    oDataIO.WriteDataToFile(sOut, sNewName)
End Sub

Private Function GetFPOrientation(ByVal oFP As FlatPattern, ByVal sName As String) As FlatPatternOrientation
    For Each GetFPOrientation In oFP.FlatPatternOrientations
        If GetFPOrientation.Name = sName Then
            Return GetFPOrientation
        End If           
    Next
   
    GetFPOrientation = CreateFPOrientation(oFP, sName)
End Function

Private Function CreateFPOrientation(ByVal oFP As FlatPattern, ByVal sName As String) As FlatPatternOrientation
    CreatefPOrientation = oFP.FlatPatternOrientations.ActiveFlatPatternOrientation.Copy(sName)
   
    If CreatefPOrientation.FlipBaseFace = True Then
        CreatefPOrientation.FlipBaseFace = False
    Else
        CreatefPOrientation.FlipBaseFace = True
    End If
End Function


------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

SimonP
Mitglied


Sehen Sie sich das Profil von SimonP an!   Senden Sie eine Private Message an SimonP  Schreiben Sie einen Gästebucheintrag für SimonP

Beiträge: 6
Registriert: 22.02.2024

erstellt am: 28. Mrz. 2024 07:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Bild.JPG

 
Hallo zusammen,

Danke für die Hilfe!

wie müsste so ein Code den aussehen, da sind meine Ilogic Kenntnisse zu schwach.

Müssten diese 2 Ausrichtungen(siehe Bild) in der Abwicklung vorhanden sein oder?

Zurzeit habe ich diesen Code(siehe Anhang), der über die Baugruppe die DXF herausschreibt, aber wie ich da noch die Basisflächen ansteuere, ist mir so nicht ganz klar.

MFG
SimonP

Dim oAsmDoc As AssemblyDocument
oAsmDoc = ThisApplication.ActiveDocument
oAsmName = Left(oAsmDoc.DisplayName, Len(oAsmDoc.DisplayName) -4)
oPath = ThisDoc.Path
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
Datei_Name = ThisDoc.FileName(False)
Dim oRefDocs As DocumentsEnumerator
oRefDocs = oAsmDoc.AllReferencedDocuments
Dim oRefDoc As Document
For Each oRefDoc In oRefDocs
iptPathName = Left(oRefDoc.FullDocumentName, Len(oRefDoc.FullDocumentName) -3) & "ipt"
If(System.IO.File.Exists(iptPathName)) Then
Dim oDrawDoc As PartDocument
oDrawDoc = ThisApplication.Documents.Open(iptPathName, False)
Datei_Name = Left(oRefDoc.DisplayName, Len(oRefDoc.DisplayName) -4)
If oDrawDoc.SubType = "{9C464203-9BAE-11D3-8BAD-0060B0CE6BB4}" Then
'oDrawDoc = ThisApplication.Documents.Open(iptPathName, True)
Dim oAssyDoc As AssemblyDocument = ThisDoc.Document
Dim oAssyDef As AssemblyComponentDefinition = oAssyDoc.ComponentDefinition
Dim oBOM As BOM = oAssyDef.BOM
If oBOM.PartsOnlyViewEnabled = False Then
oBOM.PartsOnlyViewEnabled = True
End If
Try
Dim Staerke As Integer
Try
Mate = oRefDoc.ComponentDefinition.Material.Name
Catch
Mate = "XXX"
End Try
Try
Staerke = oRefDoc.ComponentDefinition.Parameters.Item("BlecStae").Value * 100
Catch
Staerke = oRefDoc.ComponentDefinition.Parameters.Item("Stärke").Value * 100
Catch
Staerke = "XX"
End Try

If Mate = ("Stahl, verzinkt") Then Mate = ("VZ")
If Mate = ("Edelstahl") Then Mate = ("V2A")
If Mate = ("Stahl") Then Mate = ("FE")
If Mate = ("Aluminium 6061") Then Mate = ("ALU")
If Mate = ("Aluminium") Then Mate = ("ALU")

Ordner = oPath & "\" & "Stanz_Zuschnitte"  & "\" & Mate  & "\" & Staerke.ToString("00") & "_" & "10"
If Not System.IO.Directory.Exists(Ordner) Then
System.IO.Directory.CreateDirectory(Ordner)
End If

oDataMedium.FileName = Ordner & "\" & Datei_Name &"_" & (ThisBOM.CalculateQuantity("nur Bauteile", Datei_Name)) & "x" & ".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&UnconsumedSketchesLayer=2&OuterProfileLayer=Aussen&InteriorProfilesLayer=Innen&BendUpLayer=4&BendDownLayer=5&InvisibleLayers=IV_ARC_CENTERS;IV_FEATURE_PROFILES_DOWN;IV_TANGENT;IV_FEATURE_PROFILES;IV_FEATURE_PROFILES&OuterProfileLayerColor=0;0;0&BendUpLayerColor=255;0;0&BendDownLayerColor=0;255;0"
oCompDef.DataIO.WriteDataToFile( sOut, oDataMedium.FileName)
oCompDef.FlatPattern.ExitEdit
Catch
End Try
oDrawDoc.Close
Else
End If
End If
Next

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

SimonP
Mitglied


Sehen Sie sich das Profil von SimonP an!   Senden Sie eine Private Message an SimonP  Schreiben Sie einen Gästebucheintrag für SimonP

Beiträge: 6
Registriert: 22.02.2024

erstellt am: 28. Mrz. 2024 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Ralf,

Danke für die Hilfe.

Habe diesen Cod jetzt versucht, bin der Sache schon ganz nahe In der Abwicklung erstellt er Automatisch diese 2 Ausrichtungen "Standard" , "Standard invertiert"
aber de 2 Ordner mit Standard invertiert mit den umgekehrten Teil macht er noch nicht.

was müsste ich da noch ergänzen?

Mfg
SimonP

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




Sehen Sie sich das Profil von rkauskh an!   Senden Sie eine Private Message an rkauskh  Schreiben Sie einen Gästebucheintrag für rkauskh

Beiträge: 2437
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 28. Mrz. 2024 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für SimonP 10 Unities + Antwort hilfreich

Moin

Ersetze bitte in Zeile 31 das

Code:
ExportFP2DXF(oApp, oPartDoc, oSheetMetalCompDef.FlatPattern, sFolderName1, sFPO2)

durch
Code:
ExportFP2DXF(oApp, oPartDoc, oSheetMetalCompDef.FlatPattern, sFolderName2, sFPO2)


Dein Code ist etwas unstrukturiert. Hätte man ihn gleich gehabt, hätte man die restlichen Funktionen mit berücksichtigen können.
Ein paar Anmerkungen:
- Ein Bauteildokument oDrawDoc zu nennen ist vielleicht etwas unglücklich. oPartDoc wäre selbsterklärender.
- Die Bauteile sind bereits alle offen, sonst wäre deine angezeigte Baugruppe leer. Nochmal öffnen bringt nichts. Ebenso ist das Schließen am Ende vergebens. Inventor weiß, dass das Bauteil in der Baugruppe steckt und geöffnet bleiben muss. Also ignoriert er deine Schließanweisung einfach.
- Wenn du eine Abwicklung codebasiert erstellen lässt, denke daran dass ohne weitere Definition nicht sicher ist, welche Seite in der Standardabwicklung oben liegt. Könnte sonst viele seitenverkehrte Teile geben.
- Für den Export muss man nicht den Edit-Modus der Abwicklung aktivieren. Das kostet nur unnötig Zeit, weil Inventor eben im Hintergrund nochmal die Abwicklung aktualisiert. In der Regel ist das nicht erforderlich, außer man hat im Code vorher Parameter geändert und das Teil muss aktualisiert werden.
- Warum definierst du einmal oAssDoc und einmal oAssyDoc? Nimm das Zweite raus und ändere den Code entsprechend auf oAssDoc.
- Ihr gebt die Blechstärke in Mikrometer an? Das Value eines numerischen Parameters ist jedenfalls in cm. Multipliziert mit 100 wären dann Mikrometer.
- oDataMedium, oContext und oOptions stammen aus einem Beispiel für das Translator Addin und werden hier nicht verwendet. Kann weg.


------------------
MfG
Ralf

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

SimonP
Mitglied


Sehen Sie sich das Profil von SimonP an!   Senden Sie eine Private Message an SimonP  Schreiben Sie einen Gästebucheintrag für SimonP

Beiträge: 6
Registriert: 22.02.2024

erstellt am: 28. Mrz. 2024 09:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

funktioniert super jetzt mit diesen Code.

Danke!

MfG
SimonP

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz