| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: ILogic Probleme (2181 mal gelesen)
|
Big-Daddy Mitglied Konstrukteur
Beiträge: 51 Registriert: 08.04.2015 IV 2022 Prof.
|
erstellt am: 29. Sep. 2015 14:29 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe ein paar kleinere Probleme mit ILogic. Ich hoffe ihr könnt mir helfen. Ich habe eine ILogic Regel mit dem Ereignisauslöser verknüpft was auch Problemlos funktioniert. Wenn ich diese Datei unter einem neuen Namen speichere, möchte ich das automatisch eine(oder alle) Regeln von dem Ereignisauslöser rausgenommen werden? Ist das machbar? Zweites Problem
Blechteil mit einer Abwicklung. Kann ich die Abwicklung als DXF exportieren? Dazu möchte ich gern den "Layernamen" definieren. Ist das irgendwie machbar? Danke schon mal für eure Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Heiko2 Mitglied CAD-Administration
Beiträge: 417 Registriert: 14.02.2003 AIS 2021 SP3; ACAD Mech 2021; VaultProf. 2021; W10 64 bit; HP ZBOOK (i7 2,6 GHZ 64 GB RAM NVIDIA Quadro P4200)
|
erstellt am: 29. Sep. 2015 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für Big-Daddy
Servus, ich habe das Problem gelöst, in dem ich die iLogic regel hinter eine Abfrage auf den Dateinamen gesetzt habe. Die Regel wird also nur ausgeführt, wenn sich der Dateiname nicht geändert hat. ------------------ CU Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Big-Daddy Mitglied Konstrukteur
Beiträge: 51 Registriert: 08.04.2015
|
erstellt am: 29. Sep. 2015 18:39 <-- editieren / zitieren --> Unities abgeben:
mhh nicht ganz das was ich mir vorstelle. Dennoch danke. Andere Frage. Kann ich in einer Baugruppe mittels ILogic die farben von bestimmten Bauteilen ändern. Aber nicht nach dem Dateiname, sondern durch eine Suchoption was in den Iproperties in dem Feld "Kategorie" steht? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 30. Sep. 2015 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für Big-Daddy
|
erwinosius Mitglied Konstrukteur
Beiträge: 21 Registriert: 19.01.2015
|
erstellt am: 30. Sep. 2015 11:09 <-- editieren / zitieren --> Unities abgeben: Nur für Big-Daddy
Hallo Big-Daddy, zu deinem ersten Problem kann ich nichts sagen, aber zum 2ten. DXF Export aus der Abwicklung geht. Layernamen definieren ist auch machbar. Hier ein Auszug aus meiner DXF-Export Regel: *****************************Code Anfang Dim oDXFDoc as document Dim dxffilename As String dxffilename=oRefDoc.Fullfilename oDXFDoc = ThisApplication.Documents.Open(dxffilename, True) Dim oCompDef As SheetMetalComponentDefinition oCompDef = oDXFDoc.ComponentDefinition If oCompDef.HasFlatPattern = False Then oCompDef.Unfold Else oCompDef.FlatPattern.Edit End If Dim sOut As String sOut = "FLAT PATTERN DWG?AcadVersion=2000& OuterProfileLayer=Burn&InteriorProfilesLayer=Burn&InvisibleLayers=IV_UNCONSUMEND_SKETCHES;IV_ALTREP_BACK;IV_ALTREP_FRONT;IV_ARC_CENTERS;IV_TOOL_CENTER_DOWN;IV_TOOL_CENTER;IV_ARC_CE NTERS;IV_TANGENT;IV_BEND;IV_BEND_DOWN&SplineTolerance Double 0.01" ' Get document's full file name Dim sFname As String sFname = oDXFDoc.PropertySets.Item("Design Tracking Properties").item("Part Number").Value 'sFname = oDXFDoc.iProperties.Value("Project", "Part Number") ' The file format will depend on the extension ' Set file name extension to ".DXF" sFname = oFolder + "\" + sFname + ".dxf" oCompDef.DataIO.WriteDataToFile( sOut, sFname) oCompDef.flatpattern.exitedit oDXFDoc.Close(True) **********************Code Ende sOut definiert die Layer welche in die DXF Datei geschrieben werden. Hier werden einige Konturen auf den Layer BURN geschrieben. gruß erwin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Big-Daddy Mitglied Konstrukteur
Beiträge: 51 Registriert: 08.04.2015 IV 2022 Prof.
|
erstellt am: 30. Sep. 2015 15:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Erwin, genau das was ich Suche. Vielen Dank. Ich bin aber noch Anfänger was die Programmierung angeht. Kannst du mir noch ein paar Sachen erklären. 1. Wo wird das Zielverzeichniss definiert? 2. In Zeile 3 bringt er mich noch eine Fehlermeldung bezüglich "OrefDoc ist nicht deklariert" [Diese Nachricht wurde von Big-Daddy am 02. Okt. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
erwinosius Mitglied Konstrukteur
Beiträge: 21 Registriert: 19.01.2015
|
erstellt am: 05. Okt. 2015 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für Big-Daddy
Hallo Big-Daddy, das war mein Fehler. Das Skript war ein Auszug aus einer größeren Logic und hatte so einige Referenzen verloren. Ich habe das Ganze nochmal funktionell für eine einzelne Datei geschrieben. Evtl ist hier noch eine Fehlerbehandlung nötig, aber für einen einfachen Einstieg sollte es erst mal reichen '***************************Code Anfang ********************** '**Document definieren Dim oDoc As Document = ThisDoc.Document Dim oCompDef As SheetMetalComponentDefinition = oDoc.ComponentDefinition
Dim sFname As String '**Variable für Namen deklarieren '**Variable für Abwicklungsoptionen deklarieren und mit Werten füllen Dim sOut As String = "FLAT PATTERN DWG?AcadVersion=2000& OuterProfileLayer=Burn&InteriorProfilesLayer=Burn&InvisibleLayers=IV_UNCONSUMEND_SKETCHES;IV_ALTREP_BACK;IV_ALTREP_FRONT;IV_ARC_CENTERS;IV_TOOL_CENTER_DOWN;IV_TOOL_CENTER;IV_ARC_CE NTERS;IV_TANGENT;IV_BEND;IV_BEND_DOWN&SplineTolerance Double 0.01" '**Prüfung ob eine Abwicklung vorhanden ist: If oCompDef.HasFlatPattern = False Then 'wenn nein dann abwicklen oCompDef.Unfold Else 'ansonsten editieren oCompDef.FlatPattern.Edit End If '**Dokumentennamen auslesen und daraus Name und Pfad für DXF Datei erstellen sFname = oDoc.PropertySets.Item("Design Tracking Properties").item("Part Number").Value sFname = "c:\temp\" + sFname + ".dxf" '**Daten schreiben oCompDef.DataIO.WriteDataToFile( sOut, sFname) '**Abwicklung verlassen 'oCompDef.flatpattern.exitedit '**Dokument schließen 'oDoc.Close(True) '************************Code Ende********************** Der Pfad wird jetzt als C:\Temp\ definiert. gruß erwin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Big-Daddy Mitglied Konstrukteur
Beiträge: 51 Registriert: 08.04.2015 IV 2022 Prof.
|
erstellt am: 07. Okt. 2015 07:14 <-- editieren / zitieren --> Unities abgeben:
Danke Erwin. Jetzt habe ich ja immer ein statischen Pfad, bzw müsste ihn ja jedes mal ändern wenn ich ein Bauteil in einem anderen Verzeichnis habe. Gibt es eine Möglichkeit den Pfad Variabel zu gestalten. Meine Inventor Dateien liegen auf Z:\Werkbank\Werkbankkomponenten\.... Meine DXF sollten in K:\Werkbank\Abwicklung Bauteile\.... Jetzt müsste ich ja den aktuellen Pfad abfragen und die ersten 32 Zeichen durch "K:\Werkbank\Abwicklung Bauteile\" ersetzten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
erwinosius Mitglied Konstrukteur
Beiträge: 21 Registriert: 19.01.2015
|
erstellt am: 08. Okt. 2015 11:35 <-- editieren / zitieren --> Unities abgeben: Nur für Big-Daddy
|
Big-Daddy Mitglied Konstrukteur
Beiträge: 51 Registriert: 08.04.2015 IV 2022 Prof.
|
erstellt am: 08. Okt. 2015 13:24 <-- editieren / zitieren --> Unities abgeben:
Gesagt getan Erwin, so sieht es mal aus bei mir. Es gibt bisher nur noch eine Fehlermeldung. '**Document definieren Dim oDoc As Document = ThisDoc.Document Dim oCompDef As SheetMetalComponentDefinition = oDoc.ComponentDefinition Title = ThisDoc.FileName (False) Pfad = ThisDoc.Path altPfad = Right(Pfad,Len(Pfad)-32) & "\" NeuPfad = "c:\Werkbank\Abwicklung_Bauteile\" & altPfad Dim sFname As String '**Variable für Namen deklarieren
'**Variable für Abwicklungsoptionen deklarieren und mit Werten füllen Dim sOut As String = "FLAT PATTERN DWG?AcadVersion=2000& OuterProfileLayer=Kontur&InteriorProfilesLayer=Kontur&InvisibleLayers=IV_UNCONSUMEND_SKETCHES;IV_ALTREP_BACK;IV_ALTREP_FRONT;IV_ARC_CENTERS;IV_TOOL_CENTER_DOWN;IV_TOOL_CENTER;IV_AR C_CE NTERS;IV_TANGENT;IV_BEND;IV_BEND_DOWN&SplineTolerance Double 0.01" '**Prüfung ob eine Abwicklung vorhanden ist: If oCompDef.HasFlatPattern = False Then 'wenn nein dann abwickeln oCompDef.Unfold Else 'ansonsten editieren oCompDef.FlatPattern.Edit End If '**Dokumentennamen auslesen und daraus Name und Pfad für DXF Datei erstellen sFname = oDoc.PropertySets.Item("Design Tracking Properties").item("Part Number").Value sFname = NeuPfad + Title + ".dxf" '**Daten schreiben oCompDef.DataIO.WriteDataToFile( sOut, sFname) '**Abwicklung verlassen 'oCompDef.flatpattern.exitedit '**Dokument schließen 'oDoc.Close(True) Ich habe oben den Pfad und den neuen Dateinamen definiert und unten eingetragen. Bisher gibt es nur ein "Unbekannten Fehler" So ganz schlau daraus werde ich noch nicht was falsch ist. [Diese Nachricht wurde von Big-Daddy am 12. Okt. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
erwinosius Mitglied Konstrukteur
Beiträge: 21 Registriert: 19.01.2015
|
erstellt am: 14. Okt. 2015 06:55 <-- editieren / zitieren --> Unities abgeben: Nur für Big-Daddy
Füge doch ein paar msgbox("Fehler") in deinen Code ein. Dadurch kann man gut herrausfinden an welcher Stelle der Fehler genau auftritt. Leider ist es, soweit ich weiß, im Inventor nicht möglich den Code Zeilenweise ablaufen zu lassen und sich über debug.print einzelne Parameter direkt anzeigen zu lassen. Falls doch wäre das auch eine Möglichkeit. Wenn du dann auf jeden Fall den Fehler geneuer eingegrenzt hast ist es leichter ihn zu beheben. Viel Spaß gruß erwin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Big-Daddy Mitglied Konstrukteur
Beiträge: 51 Registriert: 08.04.2015 IV 2022 Prof.
|
erstellt am: 14. Okt. 2015 07:49 <-- editieren / zitieren --> Unities abgeben:
|