Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  iLogic - benutzerdef. iPart generieren

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
Autor Thema:  iLogic - benutzerdef. iPart generieren (587 / mal gelesen)
Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 22. Jan. 2024 11:46    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,

ich bastle mal wieder ein wenig in iLogic herum. Aktuell versuche ich ein Standardteil von uns als benutzerdefiniertes iPart (Factory) zu generieren.
Wenn das Teil in einer neuen Ausführung benötigt wird soll der Ablauf die folgt sein:

Ziel:
1) iPartFactory öffnen; Formular öffnet sich und ich gebe die benutzerdef. Parameter ein (über Änderung des Modellparameters).
2) iPartFactory aktiviert den entsprechenden Member mit den benutzerdef. Parameter (ist in Inventor sichtbar).
3) iPartMember (das aktuell aktivierte) soll exportiert werden.

Beim letzten Schritt hakt es jetzt. Ich bekomme es hin, dass das iPartMember exportiert wird, aber eben nur mit den Default Einträgen der benutzerdef. Parameter.

Code:
CreateCustomMember(FullFileName As String, [Row As Object], [CustomInput As Object])

Den "Kursiven" Teil bekomme ich nicht hin, da fehlt mir ehrlich gesagt das Verständnis wie ich das definiere... es kommt immer zu  Fehlermeldungen.


Hier der vollständige Code:

Code:
Dim oDoc As PartDocument = ThisApplication.ActiveDocument
Dim oCompDef As ComponentDefinition = oDoc.ComponentDefinition
Dim iPF As iPartFactory = oCompDef.iPartFactory
Dim iPM As iPartMember

'Generiere das aktuelle aktiviere iPart Member, wenn noch nicht im Ordner vorhanden
Try
'Generiere - Benutzerdefiniertes iPart

Dim Path As String = ThisDoc.Path
Dim Name As String = InputBox("Bitte gebe den Dateinamen an", "iLogic", "Default Entry")
Dim SaveAs As String = Path & "\" & Name & ".ipt"

iPM = iPF.CreateCustomMember(SaveAs) 'iPM = iPF.CreateCustomMember(FullFileName As String, [Row As Object], [CustomInput As Object])

Catch
i = MessageBox.Show("Es ist etwas schief gelaufen", "Überprüfen", MessageBoxButtons.OK)
End Try

'Meldung wo die Datei erstellt wurde
Dim x As String = iPF.MemberCacheDir & "\" & iPM.Name
MessageBox.Show(x, "Die Datei wurde im folgenden Ordner erstellt")



Nebenfrage (falls da jmd. eine Idee oder Beispiel hat wie sowas gehen könnte):
Wenn das läuft, soll im nächsten Schritt, eine "Vorlage" IDW geöffnet werden in welchen ein anders iPartMember bemaßt ist. Die Modellreferenz soll dann auf das neu generierte iPartMember geändert werden und über SaveAs gespeichert werden. Ziel ist also auch da die repetitive Arbeit immer eine fast identische Zeichnung zu erstellen, möglichst gering zu halten - also nur noch Maße ausrichten usw. Das bekomme ich (denke ich), bis auf die neu Referenzierung, hin. Hier also die Frage, wie hier der "Befehl" lauten könnte.

------------------
MfG Pablo                        
lesen gefährdet die Dummheit

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: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 22. Jan. 2024 23:27    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 Bienenkopf 10 Unities + Antwort hilfreich

Moin

Ich bin mir relativ sicher, das die Parameteränderung nicht automatisch in die iParttabelle geschrieben wird. Die Tabelle wird aber mW für den CustomMember benutzt. Also wirst du wohl den bzw. die Parameterwerte in die iPartFactory Tabelle schreiben müssen. Über iPartMember.Row kommt man an die aktive Reihe. Den Index der jeweiligen Zelle musst du entweder hart coden oder über die iPartFactory.TableColumns iterieren, jeweils TableColumn.Heading auslesen und mit deinem Parameterwerten abgleichen.
Das hier zeigt dir das Prinzip für einen Parameter "Hoehe":

Code:

Dim oDoc As PartDocument = ThisApplication.ActiveDocument
Dim oCompDef As PartComponentDefinition = oDoc.ComponentDefinition
Dim iPF As iPartFactory = oCompDef.iPartFactory
Dim iPM As iPartMember=oCompDef.iPartMember

'Generiere das aktuelle aktiviere iPart Member, wenn noch nicht im Ordner vorhanden
Try
'Generiere - Benutzerdefiniertes iPart

Dim Path As String = ThisDoc.Path
Dim Name As String = InputBox("Bitte gebe den Dateinamen an", "iLogic", "Default Entry")
Dim SaveAs As String = Path & "\" & Name & ".ipt"


Dim oFacCol As iPartTableColumn
Dim z As Integer

Parameter.UpdateAfterChange = True
Hoehe = InputBox("Wert angeben:")

For z = 1 To iPF.TableColumns.Count
If iPF.TableColumns(z).Heading = "Hoehe" Then
iPM.Row(z).Value = Hoehe
Exit For
End If
Next

iPM = iPF.CreateCustomMember(SaveAs) 'iPM = iPF.CreateCustomMember(FullFileName As String, [Row As Object], [CustomInput As Object])

Catch
i = MessageBox.Show("Es ist etwas schief gelaufen", "Überprüfen", MessageBoxButtons.OK)
End Try

'Meldung wo die Datei erstellt wurde
Dim x As String = iPF.MemberCacheDir & "\" & iPM.Name
MessageBox.Show(x, "Die Datei wurde im folgenden Ordner erstellt")



Zu deiner Nebenfrage, der Befehl lautet ReplaceReference. Ich gehe der Einfachheit halber davon aus, dass in der IDW nur der alte CustomMember referenziert ist. Ansonsten musst du den korrekten ReferencedFileDescriptor selbst heraussuchen. Die Bemaßung sollte, soweit keine Kanten wegfallen, erhalten bleiben.

Code:

doc = ThisDoc.Document
Dim oFD As FileDescriptor
oFD = doc.ReferencedFileDescriptors(1).DocumentDescriptor.ReferencedFileDescriptor
oFD.ReplaceReference("Pfad/zum/neuen/Part.ipt")
doc.Update()

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

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 23. Jan. 2024 07:45    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,

vielen Danke für deine Hilfe/Antwort. Ich kann mich da leider erst morgen wieder ran setzen und es austesten.
Es scheint mir, dass ich da in meiner Herangehensweise einen Denkfehler hatte. Meine Vermutung war, dass ich irgendwie die Info in den [CustomInput As Object] meine benutz. def. Variable einspeisen muss.

CreateCustomMember(FullFileName As String, [Row As Object], [CustomInput As Object])

Naja, ich bin schon sehr gespannt und freu mich auf das testen.
Und danke auch für den direkten Antwort-Einwurf auf meine Nebenfrage 

------------------
                  
lesen gefährdet die Dummheit

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 25. Jan. 2024 13:27    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


Factory_Test.ipt

 
Hallo Ralf,

ich bin nur endlich dazu gekommen, dass ich den Code testen konnte. Leider ist es geblieben wie bisher.
Die Änderung wird eher "beantragt", aber noch nicht in die Zelle geschrieben. Erst wenn ich die Tabelle öffne (egal ob in Inventor oder per Excel) bekomme ich die Meldung/Frage:

"die Werte in der aktiven Zeile nicht den entsprechenden Dokument entsprechen - möchten Sie aktualisieren?" - so ungefähr.

Wenn ich das tue wird der Wert mit dem im Code (InputBox) abgefragten Werten überschrieben - anschließend klappt auch der korrekte iPartMember export. Vorher leider nicht. Hast du da noch eine Idee, wie ich eine Art "force update" auf die Tabelle ausüben kann?

Ich habe die Datei angehangen, falls das jmd. testen möchte.


PS: der zweite Code zum Referenzaustausch hat übrigens hervorragend funktioniert. Danke schon mal dafür 
------------------
                  
lesen gefährdet die Dummheit

[Diese Nachricht wurde von Bienenkopf am 25. Jan. 2024 editiert.]

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: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 25. Jan. 2024 23: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 Nur für Bienenkopf 10 Unities + Antwort hilfreich

Moin

Ich hab es nochmal getestet. Lag wohl daran, das mein Testpart nur eine Zeile in der Tabelle hatte. Probier es bitte mal so:

Code:

Dim oDoc As PartDocument = ThisApplication.ActiveDocument
Dim oCompDef As ComponentDefinition = oDoc.ComponentDefinition
Dim iPF As iPartFactory = oCompDef.iPartFactory
'Dim iPM As iPartMember

'Generiere das aktuelle aktiviere iPart Member, wenn noch nicht im Ordner vorhanden
Try
'Generiere - Benutzerdefiniertes iPart
Dim Path As String = ThisDoc.Path
Dim Name As String = InputBox("Bitte gebe den Dateinamen an", "iLogic", "Default Entry")
Dim SaveAs As String = Path & "\" & Name & ".ipt"

Dim oFacCol As iPartTableColumn
Dim z As Integer

Parameter.UpdateAfterChange = True
LängeA = InputBox("Wert angeben:")

For z = 1 To iPF.TableColumns.Count
If iPF.TableColumns(z).Heading = "LängeA" Then '"LängeA<free>10</free>" Then
'iPM.Row(z).Value = LängeA
iPF.DefaultRow(z).Value = LängeA
Exit For
End If
Next

iPM = iPF.CreateCustomMember(SaveAs) 'iPM = iPF.CreateCustomMember(FullFileName As String, [Row As Object], [CustomInput As Object])

'Generiere - Norm iPart
'iPM = iPF.CreateMember

i = MessageBox.Show("Member wurde erstellt", "Überprüfen", MessageBoxButtons.OK)
Catch ex As Exception
i = MessageBox.Show("Es ist etwas schief gelaufen", "Überprüfen", MessageBoxButtons.OK)
MsgBox(ex.Message )
End Try

'Meldung wo die Datei erstellt wurde
Dim x As String = iPF.MemberCacheDir & "\" & iPM.Name
MessageBox.Show(x, "Die Datei wurde im folgenden Ordner erstellt")


'Dim curFile As String = ThisDoc.PathAndFileName(True)
'If System.IO.File.Exists(x) Then
'frage = MessageBox.Show("Datei existiert. Überschreiben", "Hab da mal ne Frage",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
'          If frage = vbYes Then
' ThisDoc.Save
'          Else If frage = vbNo Then
'        MsgBox ("OK, nicht gespeichert")
'          End If
'Else
'MsgBox ("Datei existiert nicht")
'ThisDoc.Document.SaveAs("C:\_DOCS\Samples + Tutorial Files Inventor\Konstruktion\_Tests\dreieck1.ipt" , True)
'End If


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

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 26. Jan. 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,

mit "DefaultRow" hat es jetzt wunderbar geklappt. Danke für deine Hilfe!

Mal eine persönliche Frage. Kommst du aus dem IT-Bereich oder wie/wo hast du dir das Wissen bzgl. iLogic angeeignet?
Autodidaktische Fleißarbeit oder eher über Schulungen?

Ich bin da eigentlich mehr oder weniger reingerutscht (Autodidakt). Finde die ganze Thematik sehr interessant, aber merke doch, dass mir da gelegentlich das Logik Wissen fehlt. Ich schaue mir Youtube zum Thema an und lese in Foren usw.
Vllt hast du ja ein Tipp für mich oder eine gute Internetseite (neben CAD.de natürlich  )

------------------
                  
lesen gefährdet die Dummheit

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: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 26. Jan. 2024 10:03    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 Bienenkopf 10 Unities + Antwort hilfreich

Moin

Zitat:
Mal eine persönliche Frage. Kommst du aus dem IT-Bereich oder wie/wo hast du dir das Wissen bzgl. iLogic angeeignet?
Autodidaktische Fleißarbeit oder eher über Schulungen?

- 20 Jahre Arbeit als Sysadmin, CAD-Manager und Programmierer für Inventor Zusatzanwendungen
- Autodidakt, keine kommerziellen Schulungen, nur frei verfügbarer Lesestoff
- viel Probieren, viel Scheitern, viel nochmal Probieren

Es gibt meines Wissens immer noch keine Bücher oder Schulungen zum Thema Inventor Programmierung, lasse mich aber gern eines besseren belehren. Hier und da wird ein bißchen iLogic gezeigt, aber das sind in der Regel nur spezifische Lösungen für Einzelthemen.
Immer empfehlenswert für Einsteiger ist der Blog ModTheMachine. Er ist alt, aber die Grundlagen gelten noch immer. Es ist meiner Meinung zu Beginn wichtig zu begreifen wie das Inventor Objektmodell aussieht und funktioniert.
Schau dir vielleicht mal die Einführungslektionen an (https://modthemachine.typepad.com/my_weblog/2013/02/inventor-api-training-lesson-1.html). Die meisten Beispiele sind in VBA, aber das macht nichts. Für den Anfang würde ich eh VBA empfehlen, da es einen Editor mit Debugger mitbringt. Gerade bei der Fehlersuche und dem Erkunden zur Laufzeit welche Info in welchem Objekt gespeichert sein könnte, von unschätzbarem Vorteil. iLogic versteckt etlichen Programmieraufwand hinter vorgefertigten Bausteinen (inkl. der Ereignisauslöser). Das ist praktisch für einen schnellen Anfang, aber man kommt auch sehr schnell an die Grenzen.

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

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 30. Jan. 2024 10:04    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

Danke Ralf,

danke für deine Ausführung.

Modthemachine, war ich auch schon mal unterwegs. Aber gerade die von dir empfohlene Lektion werde ich mir mal genauer ansehen. Ich glaube gerade bei dieser Thematik hakt es nämlich bei mir. 

------------------
                  
lesen gefährdet die Dummheit

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

iogurt
Mitglied
Konstrukteur


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

Beiträge: 264
Registriert: 30.09.2005

Inventor 2021 Professional

erstellt am: 30. Jan. 2024 10: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 Bienenkopf 10 Unities + Antwort hilfreich

Was zusätzlich noch helfen könnte ist die Übersicht über das Inventor Object Model. Hier für 2022:

https://damassets.autodesk.net/content/dam/autodesk/www/pdfs/Inventor2022ObjectModel.pdf

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 07. Mrz. 2024 16:03    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

Hello again,

ich habe festgestellt, dass zu dem Zeitpunkt an dem die Funktion

Code:
...
iPM = iPF.CreateCustomMember(SaveAs)
...

ausgeführt wird auch die Factory-Datei überschrieben/gespeichert wird.
Ich begreife nicht, warum dies passiert. Kann man das irgendwie unterbinden?

------------------
                  
lesen gefährdet die Dummheit

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: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 08. Mrz. 2024 00:15    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 Bienenkopf 10 Unities + Antwort hilfreich

Moin

Du darfst nicht in dem Factoryteil herumschreiben und musst die Option "CustomInput" der CreateCustomMember Methode verwenden. Dann könnte es funktionieren. Die Eingabewerte (z.B. die Länge) müssen in lokalen Variablen gespeichert werden, nicht in Parametern. Ebenso welche Tabellenzeile als Basis benutzt werden soll.

Code:

Dim oDoc As PartDocument = ThisApplication.ActiveDocument
Dim oCompDef As ComponentDefinition = oDoc.ComponentDefinition
Dim iPF As iPartFactory = oCompDef.iPartFactory
'Dim iPM As iPartMember

'Generiere das aktuelle aktiviere iPart Member, wenn noch nicht im Ordner vorhanden
Try
'Generiere - Benutzerdefiniertes iPart
Dim Path As String = ThisDoc.Path
Dim Name As String = InputBox("Bitte gebe den Dateinamen an", "iLogic", "Default Entry")
Dim SaveAs As String = Path & "\" & Name & ".ipt"

Dim oFacCol As iPartTableColumn
Dim z As Integer = 1

'Parameter.UpdateAfterChange = True
'LängeA = InputBox("Wert angeben:")

Dim aArr(0) As String
aarr(0) = InputBox("Wert angeben:")

Dim oList As New List(Of String)
For z = 1 To iPF.TableColumns.Count
If iPF.TableColumns(z).Heading = "Variante" Then '"LängeA<free>10</free>" Then
For Each iTC As iPartTableCell In iPF.TableColumns(z)
oList.Add(iTC.Value )
Next
'iPM.Row(z).Value = LängeA
' iPF.DefaultRow(z).Value = LängeA
Exit For
End If
Next

If z > iPF.TableColumns.Count Then Exit Sub ' wenn z größer ist, wurde die Spalte nicht gefunden

sSelection = InputListBox("Variante auswählen ", oList, olist(0), Title := "iLogic CustomiPart", ListName := "Varianten")

ipm = iPF.CreateCustomMember(SaveAs, sselection, aArr)
'iPM = iPF.CreateCustomMember(SaveAs) 'iPM = iPF.CreateCustomMember(FullFileName As String, [Row As Object], [CustomInput As Object])

'Generiere - Norm iPart
'iPM = iPF.CreateMember

i = MessageBox.Show("Member wurde erstellt", "Überprüfen", MessageBoxButtons.OK)
Catch ex As Exception
i = MessageBox.Show("Es ist etwas schief gelaufen", "Überprüfen", MessageBoxButtons.OK)
MsgBox(ex.Message )
End Try

'Meldung wo die Datei erstellt wurde
Dim x As String = iPF.MemberCacheDir & "\" & iPM.Name
MessageBox.Show(x, "Die Datei wurde im folgenden Ordner erstellt")


'Dim curFile As String = ThisDoc.PathAndFileName(True)
'If System.IO.File.Exists(x) Then
'frage = MessageBox.Show("Datei existiert. Überschreiben", "Hab da mal ne Frage",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
'          If frage = vbYes Then
' ThisDoc.Save
'          Else If frage = vbNo Then
'        MsgBox ("OK, nicht gespeichert")
'          End If
'Else
'MsgBox ("Datei existiert nicht")
'ThisDoc.Document.SaveAs("C:\_DOCS\Samples + Tutorial Files Inventor\Konstruktion\_Tests\dreieck1.ipt" , True)
'End If



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

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 11. Mrz. 2024 12:36    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,

hat wieder mal super funktioniert 

Nun ist es aber so, dass ich in meiner vorangeschrittenen FactoryPart-Version, darauf aufbaue die Variantenauswahl und benutzerdef. Parameter in einem einzigen Formular darzustellen und eintragen zu lassen.
Das Problem dabei: Die Einträge im Formular speichere ich als Benutzerparameter ab um dann bei der Ausführung des iLogic-Codes drauf zugreifen zu können. Damit habe ich aber gleichzeitig eine "Änderung" an dem FactoryPart durchgeführt, sodass die Funktion "CreateCustomMember" leider doch zu einer Speicherung des FactoryPart führt.

Gibt es da eine Alternative bzw. ein Möglichkeit die Einträge in dem Formular nur temporär zu speichern bis der Code ausgeführt wurde?

Ich hoffe es ist einigermaßen Verständlich beschrieben 

------------------
                  
lesen gefährdet die Dummheit

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: 2428
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 11. Mrz. 2024 21:11    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 Bienenkopf 10 Unities + Antwort hilfreich

Moin

Ich sehe keine Möglichkeit das mit einem iLogic Formular zu lösen. Die Auswahlmenüs basieren auf den fx-Parametern, daran lässt sich nichts ändern. Sobald man da was umstellt, wird das ins Modell zurück geschrieben.
Wenn du aus der Einschränkung heraus willst, musst du auf ein Windows Form wechseln. Ich hatte mal eine dreiteilige Tutorialreihe im Bereich Gut zu wissen dazu verfasst, wie man das in iLogic erstellt und einbindet. Damit kann man auch die Werte und Wertelisten aus den fx-Parametern einlesen und benutzen, ohne dass das sofort ins Modell zurückwirkt.

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

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

Bienenkopf
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 210
Registriert: 04.11.2005

Inventor Professional 2022

erstellt am: 12. Mrz. 2024 07:57    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,

okay, dann weiß ich da erst mal bescheid. Hatte mir schon sowas in die Richtung gedacht, da ich trotz ewigen googlen nicht ansatzweise etwas gefunden habe. Dann schau mich mal wie ich mit dem Wissen weitermache.

Danke

------------------
                  
lesen gefährdet die Dummheit

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