Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  [Makro]Wie kommt man an Feldinfos

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
  
Auf dem Weg zur digitalen Auftragsmappe. (Phoenix/PDM,SOLIDWORKS,PDM System,PLM,PLM System), ein Anwenderbericht
Autor Thema:  [Makro]Wie kommt man an Feldinfos (905 / mal gelesen)
Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 07. Mai. 2023 16:09    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 habe mir überlegt ein Makro zu erstellen, dass mich nach bestimmten Werten/Einstellungen fragt und diese dann in meinem geöffneten Teil ablegt.

Bin mir nur nicht sicher wie aufwendig so etwas ist und wie ich an die benötigten Feldinfos komme.


Was ich mir vorgestellt habe:


Makro aufrufen, es erscheint ein Fenster in dem man die Werte eintragen / auswählen kann:

Die bisher eingegebenen Werte sollen ausgelesen werden und schon vor dem Ausfüllen drin stehen. (falls vorhanden)


Zitat:

Makro für die Pflege von Stücklistenwerten

1) Stücklisteneigenschaft ändern
  Menüband => Extras/Dokument-Einstellungen => Registerkarte: Stückliste

    Vorgabe-Stücklistenstruktur: _______________
    (Auswahlfeld: Normal, Unteilbar, Gekauft, Phantom, Referenz)

2) iProperties ändern
  Menü: Datei => iProperties => Tab: Projekt

    Bauteilenummer: _______________
    (Wert: Textfeld)

    Bestandsnummer: _______________
    (Wert: Textfeld)

    Bezeichnung: _______________
    (Wert: Textfeld)

    Geschätzte Kosten _______________
    (Wert: Textfeld)

Zulieferer: _______________
    (Wert: Textfeld)

    Web-Verlinkung: _______________
    (Wert: Textfeld)

3) Speichern


Kennt sich damit jemand aus? und würde mich dabei etwas unterstützen?

Gruß Mücke

------------------
[Inventor Professional 2023] - [WIN 10]

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

freierfall
Ehrenmitglied V.I.P. h.c.
Techniker



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

Beiträge: 11556
Registriert: 30.04.2004

WIN10 64bit, 32GB RAM
IV bis 2022

erstellt am: 07. Mai. 2023 17: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 Muecke.1982 10 Unities + Antwort hilfreich

dies gibt es schon in vielen verschiedenen Varianten.

nti-tool
mum tool

und sicherlich auch im app store von Autodesk andere Varianten 

Das Ausfüllen geht sehr schnell allgemein über die Stückliste, denn bisher habe ich noch keinen sinnvollen Ersatz gefunden. 

herzlich Sascha

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

Windows 10 x64, AIP 2023

erstellt am: 07. Mai. 2023 17:52    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 Muecke.1982 10 Unities + Antwort hilfreich

Moin

Wo soll man da anfangen? Vorkenntnisse in VBA gleich null oder vorhanden?

- Erstelle eine UserForm
- Füge eine Auswahlliste für die Stücklistenstruktur ein, die Werte holst du aus der Eigenschaft BOMStructure der ComponentDefinition
- Füge ein Textfeld für jedes iProperty ein, die vorhandenen Werte aus dem jeweiligen iProp auslesen und als Wert ins Textfeld übernehmen
- Füge einen Abbrechen-Button ein, der die UserForm schließt
- Füge einen OK-Button ein, der die Form schließt und:
    - den Wert der Stücklistenstruktur in deiner Form mit dem vorhandenen vergleicht und ggf. aktualisiert
    - den Wert jedes iPropfeldes in deiner Form mit dem jeweiligen iProp vergleicht und ggf. aktualisiert
    - das Dokument speichert
- Erstelle eine Public Sub, die die UserForm aufruft und füge diese als Button in den Benutzerbefehle-Ribbon ein

Das wäre im Groben alles unbedingt erforderliche. Kann man natürlich noch mit jeder Menge Vorprüfungen und Plausi's der Eingaben ergänzen.
Der nächstausführliche Schritt wäre dir den kompletten Code zu posten.

Die Tools von Sascha sind meines Wissens kostenpflichtig. Die Stückliste dürfte beim Erstellen eines Bauteiles wenig hilfreich sein, da nicht vorhanden. Ich vermute es geht darum direkt zu Beginn die notwendigen Felder zu füllen?

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

RKW Solutions GmbH
www.RKW-Solutions.com

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 07. Mai. 2023 17:59    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

Zitat:
Original erstellt von freierfall:
und sicherlich auch im app store von Autodesk andere Varianten  


Oha, den kenne ich noch gar nicht. Das ist cool. Danke.

Zitat:
Original erstellt von freierfall:

Das Ausfüllen geht sehr schnell allgemein über die Stückliste, denn bisher habe ich noch keinen sinnvollen Ersatz gefunden.  

Meine IPT hat keine Stückliste, oder machst du das in der Baugruppe?

Wie genial, in der Baugruppe kann ich das alles in die Stückliste eintragen und speichern, das wird dann für die Komponenten übernommen. Ich bin gar nicht auf die Idee gekommen, das dort zu ändern. 
DANKE!!! für den Hinweis.

Dann brauche ich dafür kein Makro oder so.


------------------
[Inventor Professional 2023] - [WIN 10]

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 07. Mai. 2023 18: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

Zitat:
Original erstellt von rkauskh:
Moin

Wo soll man da anfangen? Vorkenntnisse in VBA gleich null oder vorhanden?



In Excel habe ich mit dem Recorder das eine oder andere Makro erstellt und dann etwas geändert (Pfad etc.).
Aber selbst schreiben geht bei mir auch nicht so gut.
Ich kopiere mir da immer was ab. :D

Zitat:
Original erstellt von rkauskh:

- Erstelle eine UserForm
- Füge eine Auswahlliste für die Stücklistenstruktur ein, die Werte holst du aus der Eigenschaft BOMStructure der ComponentDefinition
- Füge ein Textfeld für jedes iProperty ein, die vorhandenen Werte aus dem jeweiligen iProp auslesen und als Wert ins Textfeld übernehmen
- Füge einen Abbrechen-Button ein, der die UserForm schließt
- Füge einen OK-Button ein, der die Form schließt und:
    - den Wert der Stücklistenstruktur in deiner Form mit dem vorhandenen vergleicht und ggf. aktualisiert
    - den Wert jedes iPropfeldes in deiner Form mit dem jeweiligen iProp vergleicht und ggf. aktualisiert
    - das Dokument speichert
- Erstelle eine Public Sub, die die UserForm aufruft und füge diese als Button in den Benutzerbefehle-Ribbon ein

Das wäre im Groben alles unbedingt erforderliche. Kann man natürlich noch mit jeder Menge Vorprüfungen und Plausi's der Eingaben ergänzen.
Der nächstausführliche Schritt wäre dir den kompletten Code zu posten.



damit ich etwas googeln kann, um wenigstens einen Teil zu bekommen.


Zitat:
Original erstellt von rkauskh:

Die Tools von Sascha sind meines Wissens kostenpflichtig. Die Stückliste dürfte beim Erstellen eines Bauteiles wenig hilfreich sein, da nicht vorhanden. Ich vermute es geht darum direkt zu Beginn die notwendigen Felder zu füllen?


Ja das stimmt, das habe ich auch gerade gesehen.
Und ja, es wäre schön, wenn man das Makro im IPT ausführen könnte und ja, es gibt keine Stückliste oder ich habe sie übersehen.

------------------
[Inventor Professional 2023] - [WIN 10]

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 07. Mai. 2023 19:16    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


UserForm1_19_13_07_05_23.png


UserForm1_frm.txt


UserForm1_frx.txt

 
Zitat:
Original erstellt von rkauskh:
- Erstelle eine UserForm
- Füge eine Auswahlliste für die Stücklistenstruktur ein, die Werte holst du aus der Eigenschaft BOMStructure der ComponentDefinition

Ich habe nicht verstanden, wo ich welche Werte herbekommen kann, das sagt mir nichts, was du da geschrieben hast :-(.
Allerdings habe ich bei Google einen kleinen Code gefunden, der vielleicht in die richtige Richtung geht.

Ich habe das UserForm1 erstellt, bin mir aber nicht sicher ob ich es richtig gemacht habe.
Auf dem Bild =>

ist der Code den ich gefunden habe:

Code:

    If ThisDoc.Document.DocumentType = DocumentTypeEnum.kPartDocumentObject Or ThisDoc.Document.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
        Dim oBOMStructure As BOMStructureEnum = ThisDoc.Document.ComponentDefinition.BOMStructure
        Select Case oBOMStructure
            Case BOMStructureEnum.kNormalBOMStructure
                Logger.Info ("BOMStructure: " & "Normal")
            Case BOMStructureEnum.kInseparableBOMStructure
                Logger.Info ("BOMStructure: " & "Unteilbar")
            Case BOMStructureEnum.kPhantomBOMStructure
                Logger.Info ("BOMStructure: " & "Phantom")
                i = MessageBox.Show(ThisDoc.FileName(True) & " ist Phantom", "Stücklistenstruktur", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1)
   
            Case BOMStructureEnum.kPurchasedBOMStructure
                Logger.Info ("BOMStructure: " & "Gekauft")
            Case BOMStructureEnum.kReferenceBOMStructure
                Logger.Info ("BOMStructure: " & "Referenz")
            Case Else
                Logger.Info ("BOMStructure: " & "Unbekannt")
        End Select
    End If

Ich habe die UserForm1 auch einmal exportiert.
(der Datenanhang ging aber so nicht, daher .txt (das _ durch ein . ersetzen und das .txt löschen, dann hat man wieder die richtige Datei).

Gruß Mücke


------------------
[Inventor Professional 2023] - [WIN 10]

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

chense
Mitglied
Konstrukteur


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

Beiträge: 71
Registriert: 14.04.2020

Inventor 2019 auf Windows 10
Intel Xeon E5-1630, 3,7Ghz
Nvidia Quadro P4000
32GB Ram

erstellt am: 08. Mai. 2023 12:26    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 Muecke.1982 10 Unities + Antwort hilfreich

Also das mit den IProperties machen wir über einen "Propertyhelper".

Dafür erstellen wir eine Inputlistbox in der die änderbaren Properties (mit Leerzeilen dazwischen s.u.) angewählt und mit OK in der Box ausgewählt werden können

Dann erscheint je nach Property eine Inputbox oder eine weitere Listbox die teilweise schon mit Defaultwerten (z.B. Zeichnungsnummer und Beschreibung) befüllt ist.

Hier mal ein ganz kurzes Beispiel zur Erklärung.

1) Erstellen der "Standardstrings"

Code:

Sub Main

'[Propertyhelper (Ausfüllen)
'Zeichnungsnummer und Bauteilname aus Speichername
Dim iNumber As String = (Left(ThisDoc.FileName(False), 9))
Dim iDescription As String = (Mid(ThisDoc.FileName(False), 11))
'Allgemeine Strings erstellen
Dim i As Integer
Dim xLZ As String = ""
Dim xEnd As String = " Ausfüllen der Properties Beenden"
Dim xCancel As String = " !ABBRUCH!"
Dim xProphelper As String


2) Aus Excel Arraylisten befüllen (ACHTUNG: Excel-Zugriff is langsam also nicht zu viel nehmen ... bei uns brauchen ca. 50 Zugriffe fast 30 Sekunden)

Code:
'[Auswahlarraylisten erstellen
'Qualitätseinstufung
Dim eCostCenter As New ArrayList
i = 2
Do Until GoExcel.CellValue("G:\QS\Konstruktionshandbuch\in Arbeit\Freigabeworkflow\Datensammlung Freigabetool.xlsx", "Arrayliste", "B" & i) = ""
eCostCenter.Add(GoExcel.CellValue("G:\QS\Konstruktionshandbuch\in Arbeit\Freigabeworkflow\Datensammlung Freigabetool.xlsx", "Arrayliste", "B" & i))
i = i + 1
Loop

3) Schleife für Propertyhelper beginnen

Code:
'Propertyhelper in Schleife ausführen (Bis Ende oder Abbruch)
Do Until xProphelper = xEnd

4) Die zur Auswahl stehenden Properties definieren

Code:
'[Auswahlliste Properties definieren
'Variablen basierend auf IProperties befüllen
Dim xPartNumber As String = "Bauteilnummer:                    " & iProperties.Value("Project", "Part Number")
Dim xStockNumber As String = "Bestandsnummer:                " & iProperties.Value("Project", "Stock Number")
Dim xDescription As String = "Bezeichnung:                      " & iProperties.Value("Project", "Description")
Dim xProject As String = "Projekt:                                " & iProperties.Value("Project", "Project")
Dim xCostCenter As String = "Qualitätseinstufung:             " & iProperties.Value("Project", "Cost Center")

5) Inputlistbox aus einer Arrayliste erstellen:

Code:
Dim xList As New ArrayList
xList.Add(xPartNumber)
xList.Add(xLZ)
If ThisDoc.ModelDocument.DocumentType = kPartDocumentObject
xList.Add(xStockNumber)
xList.Add(xLZ)
End If
xList.Add(xDescription)
xList.Add(xLZ)
xList.Add(xProject)
xList.Add(xLZ)
xList.Add(xCostCenter)
xList.Add(xLZ)
        xList.Add(xEnd)
xList.Add(xLZ)
xList.Add(xCancel)

6) Das zu ändernde Property wählen:

Code:
'Auswahl zu änderndes Property
xProphelper = InputListBox("IProperties setzen", xList, xEnd, _
Title := "iProperty Übersicht", ListName := "Übersicht der IProperties")


7) Über eine Select-Case Anweisung je nach Auswahl die Änderungsmaske für das gewählte Property erstellen oder das Programm Beenden.

Code:
'[Case-Abfrage zu änderndes Property
Select Case xProphelper

'Zeichnungsnummer
Case xPartNumber
iProperties.Value("Project", "Part Number") = InputBox("Zeichnungs/-Artikelnr", "Property: Bauteilnummer", iNumber)

'Bestandsnummer
Case xStockNumber
iProperties.Value("Project", "Stock Number") = InputBox("Bauteilabmessungen", "Property: Bestandsnummer", iProperties.Value("Project", "Stock Number"))

'Beschreibung
Case xDescription
iProperties.Value("Project", "Description") = InputBox("Bezeichnung", "Property: Bezeichnung", iDescription)

'Projekt
Case xProject
iProperties.Value("Project", "Project") = InputBox("Projekt", "Property: Projekt", iProperties.Value("Project", "Project"))

'Qualitätseinstufung
Case xCostCenter
iProperties.Value("Project", "Cost Center") = InputListBox("Aktuelle Auswahl: " & iProperties.Value("Project", "Cost Center"), eCostCenter, "", Title := "Qualitätseinstufung", ListName := "Wählen sie die Qualitätseinstufung")

Case xLZ

Case xCancel
Exit Sub

End Select
']
Loop

End Sub


------------------
Für jede Fehlermeldung gibt es eine Lösung

[Diese Nachricht wurde von chense am 08. Mai. 2023 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: 2505
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 08. Mai. 2023 13:50    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 Muecke.1982 10 Unities + Antwort hilfreich

Moin

Es wäre für den TE vielleicht hilfreich, wenn man erwähnt das es sich um iLogic Code handelt, der unter VBA nicht funktionieren wird.

@chense
Zu deinem Tempoproblem. Du erstellst in deiner Schleife je Durchlauf eine neue Excelinstanz. Versuch es mal so:

Code:

'[Auswahlarraylisten erstellen
'Qualitätseinstufung
GoExcel.Open("G:\QS\Konstruktionshandbuch\in Arbeit\Freigabeworkflow\Datensammlung Freigabetool.xlsx")

Dim eCostCenter As New ArrayList
i = 2
Do Until GoExcel.CellValue("B" & i) = ""
    eCostCenter.Add("B" & i)
    i = i + 1
Loop

GoExcel.Close



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

RKW Solutions GmbH
www.RKW-Solutions.com

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

chense
Mitglied
Konstrukteur


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

Beiträge: 71
Registriert: 14.04.2020

Inventor 2019 auf Windows 10
Intel Xeon E5-1630, 3,7Ghz
Nvidia Quadro P4000
32GB Ram

erstellt am: 08. Mai. 2023 14:16    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 Muecke.1982 10 Unities + Antwort hilfreich

Danke für beide Hinweise! Dachte das mit Ilogic hätte ich geschrieben   
Wir starten das ganze über ein VBA "Startmakro" damit wir einen Button in den Ribbon setzen können

Danke auch für den Super-Tipp für die Geschwindigkeit! Wird gleich getestet!

*Edith teilt folgendes mit*

Der Code funktioniert fast - So habe ich ihn zum Laufen gebracht und einen enormen Geschwindigkeitsgewinn

Code:

'[Auswahlarraylisten erstellen
'Excel-Instanz öffnen
GoExcel.Open("G:\QS\Konstruktionshandbuch\in Arbeit\Freigabeworkflow\Datensammlung Freigabetool.xlsx", "Arrayliste")

'Qualitätseinstufung
Dim eCostCenter As New ArrayList
i = 2
Do Until GoExcel.CellValue("B" & i) = ""
    eCostCenter.Add(Goexcel.CellValue("B" & i))
    i = i + 1
Loop
GoExcel.Close


------------------
Für jede Fehlermeldung gibt es eine Lösung

[Diese Nachricht wurde von chense am 08. Mai. 2023 editiert.]

[Diese Nachricht wurde von chense am 08. Mai. 2023 editiert.]

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 09. Mai. 2023 07: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

Cool, danke für den Code, das muss ich mir in Ruhe anschauen, gegen Ende der Woche :-(.

Ich habe aber kein Excel auf meinem Rechner installiert, geht das trotzdem?
Wobei ich auch nicht so ganz nachvollziehen kann, warum Excel benutzt wird.

Naja, ich muss mir das alles noch in Ruhe anschauen.

Ich melde mich wieder, wenn ich das geschafft habe.

Gruß Mücke

------------------
[Inventor Professional 2023] - [WIN 10]

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

chense
Mitglied
Konstrukteur


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

Beiträge: 71
Registriert: 14.04.2020

Inventor 2019 auf Windows 10
Intel Xeon E5-1630, 3,7Ghz
Nvidia Quadro P4000
32GB Ram

erstellt am: 09. Mai. 2023 10: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 Muecke.1982 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Muecke.1982:
Cool, danke für den Code, das muss ich mir in Ruhe anschauen, gegen Ende der Woche :-(.

Ich habe aber kein Excel auf meinem Rechner installiert, geht das trotzdem?
Wobei ich auch nicht so ganz nachvollziehen kann, warum Excel benutzt wird.

Naja, ich muss mir das alles noch in Ruhe anschauen.

Ich melde mich wieder, wenn ich das geschafft habe.

Gruß Mücke


Ohne Excel wird das nicht funktionieren mit der Verknüpfung, die ist aber auch nur dazu da, dass man diese Arrays in einer Datei pflegen kann (wir haben ca. 10 ILogic-Regeln die sich ihre "Kostenstelle" ziehen.

Alternativ kannst du die Arrays aber auch händisch füllen:

Code:

Dim eCostCenter as New ArrayList
eCostCenter.Add("C1")
eCostCenter.Add("C2")
eCostCenter.Add("weitere Texte")

------------------
Für jede Fehlermeldung gibt es eine Lösung

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 13. Mai. 2023 00:02    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 komme mit dem Code nicht hinterher.

Was ist VBA und wo fängt der VBA-Code an und wo muss ich iLogic-Code eingeben?
Wenn ich deinen Code in den VBA-Editor einfüge, sind fast alle Zeilen rot hinterlegt.  

[EDIT_1]
Mein UserForm1 wird so nicht verwendet? kann ich es löschen?
[/EDIT_1]

Gruß Mücke

------------------
[Inventor Professional 2023] - [WIN 10]

[Diese Nachricht wurde von Muecke.1982 am 13. Mai. 2023 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: 2505
Registriert: 15.11.2006

Windows 10 x64, AIP 2023

erstellt am: 13. Mai. 2023 17: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 Muecke.1982 10 Unities + Antwort hilfreich


Frm_Muecke1982.zip

 
Moin

Der gesamte Code von chense ist iLogic. iLogic ist eine, auf VB.Net basierende Programmierumgebung. VBA und iLogic Code sind nicht kompatibel. Deswegen wird so ziemlich jede ilogic Codezeile in VBA als fehlerhaft markiert.
In deinem Fall noch Excel mit ins Spiel zu bringen ist etwas unglücklich, weil unnötig.
Wie weit bist du jetzt? Wo  klemmt es genau? Noch beim Zugriff auf die iProps?
Ein Hinweis:
Benenne deine Formularobjekte frühzeitig sinnvoll. TextBox1 bis 6  beispielsweise ist wenig aussagekräftig und führt später gern zu Verwechslungen. Man könnte, aber das ist nur ein Vorschlag, stattdessen TBox_Bauteilnummer, TBox_Bezeichnung usw. nehmen. Dann sieht man es ist eine TextBox und zu welchem iProp sie gehört. Mit Buttons (Btn_OK, Btn_Cancel) geht das ebenso.

Anbei mal deine Form ein wenig erweitert.

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

RKW Solutions GmbH
www.RKW-Solutions.com

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 13. Mai. 2023 22:35    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


Makro_Menueband.png

 
Hey Ralf,

Zitat:
Original erstellt von rkauskh:
Wie weit bist du jetzt? Wo  klemmt es genau? Noch beim Zugriff auf die iProps?

Bis jetzt habe ich noch nichts geschafft, weil ich noch nicht so weit bin :(.
Auch beim Schreiben des Codes an die richtige Stelle klemmt es. :(

Zitat:
Original erstellt von rkauskh:
Ein Hinweis:
Benenne deine Formularobjekte frühzeitig sinnvoll. TextBox1 bis 6  beispielsweise ist wenig aussagekräftig und führt später gern zu Verwechslungen. Man könnte, aber das ist nur ein Vorschlag, stattdessen TBox_Bauteilnummer, TBox_Bezeichnung usw. nehmen. Dann sieht man es ist eine TextBox und zu welchem iProp sie gehört. Mit Buttons (Btn_OK, Btn_Cancel) geht das ebenso.


Oh ja, das ist ein guter Hinweis, das macht das Leben im Nachhinein viel einfacher.


Zitat:
Original erstellt von rkauskh:
Anbei mal deine Form ein wenig erweitert.

Ich glaube, wir müssen das Wort wenig und seine Bedeutung noch einmal nachschlagen.
Das ist der komplette Code, und das funktioniert sowohl für eine IPT als auch für eine IAM, das ist der Hammer. DANKE !!!!


Was habe ich noch gemacht.
1) Deine FRM über den VBA Editor (ALT+F11) in die Datei "Default.ivd" geladen
2) Ein Modul hinzugefügt
3) Code für das Modul eingefügt

Code:

Option Explicit

Sub iProp_pflegen()
    Frm_Muecke1982.Show
End Sub



4) VBA-Editor schließen
5) im IV in der Multifunktionsleiste Rechtsklick => Benutzerbefehle anpassen...
6) Makros auswählen im Feld => Befehl auswählen:
7) Rechtsklick auf das Menü, in das es eingefügt werden soll.
8) und dann Makro verschoben
9) Häkchen bei Groß und Text gesetzt
10) mit OK bestätigt

Das Makro kann nun direkt aus der Multifunktionsleiste aufgerufen werden. DANKE

Womit habe ich das verdient, diese Unterstützung. DANKE!

Gruß Mücke


------------------
[Inventor Professional 2023] - [WIN 10]

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

chense
Mitglied
Konstrukteur


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

Beiträge: 71
Registriert: 14.04.2020

Inventor 2019 auf Windows 10
Intel Xeon E5-1630, 3,7Ghz
Nvidia Quadro P4000
32GB Ram

erstellt am: 13. Mai. 2023 22:52    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 Muecke.1982 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rkauskh:
Moin

Der gesamte Code von chense ist iLogic. iLogic ist eine, auf VB.Net basierende Programmierumgebung. VBA und iLogic Code sind nicht kompatibel. Deswegen wird so ziemlich jede ilogic Codezeile in VBA als fehlerhaft markiert.
In deinem Fall noch Excel mit ins Spiel zu bringen ist etwas unglücklich, weil unnötig.
Wie weit bist du jetzt? Wo  klemmt es genau? Noch beim Zugriff auf die iProps?
Ein Hinweis:
Benenne deine Formularobjekte frühzeitig sinnvoll. TextBox1 bis 6  beispielsweise ist wenig aussagekräftig und führt später gern zu Verwechslungen. Man könnte, aber das ist nur ein Vorschlag, stattdessen TBox_Bauteilnummer, TBox_Bezeichnung usw. nehmen. Dann sieht man es ist eine TextBox und zu welchem iProp sie gehört. Mit Buttons (Btn_OK, Btn_Cancel) geht das ebenso.

Anbei mal deine Form ein wenig erweitert.



Hallo Ralf erstmal auch von meiner Seite nochmal herzlichen Dank für deinen Input und noch ein paar Cents von mir dazu auch wenn ich deutlich weniger weit bin was VBA / ILogic angeht als du.

Ilogic / VBA: Erstmal nur als Spaß zu sehen - Ich würde die beiden nicht als unkompatibel wie ein altes Ehepaar bezeichnen eher ist Ilogic die Tochter die ein wenig ungehörig ist. VBA hat gigantische Vorteile im Inventor sehe ich aber nur den, dass es direkt in Shortcuts / Buttons eingebunden werden kann - ILogic ist dann stark wenn man auf mehr als IProperties in Inventor zugreifen will. Wir haben da zum Beispiel ein recht cooles Tool (wenn auch recht hemdsärmlig geschrieben  ) für Angebotszeichnungen von Standardkomponenten in dem man ähnlich dem "Propertyhelper" ein paar Sachen abfragt und dann diverse Features wie Extrusionen etc aktiviert oder rausschmeisst und Parameter ändert. Das kann VBA glaube ich nicht oder?

Excel: Da bin ich total bei dir - Für Mückes Zwecke nicht wirklich nötig und geeignet. Ich hab es für unsere Tools halt genutzt weil ich faul bin und gewisse Sachen die immer gleich sind (z.B. Qualitätseinstufungen) oder Dinge die grundsätzlich gleich bleiben aber mal erweitert werden (z.B. Einbauorte) die auf der Zeichnung erscheinen sollen, nicht xmal im Code einbauen will sondern ein Dokument will das ich einmal aufbaue und das dann auch z.B. mein Abteilungsleiter pflegen kann ohne gleich von mir eine Einführung in unseren Code (inzwischen sind es alle in allem fast 5000 Zeilen ...) zu brauchen die über absolute Grundlagen rausgeht.

Benennung: Sehe ich nicht nur bei Formularen sondern auch allgemein in solchen Dingen als sehr wichtig an ... Ich hab ja da sehr gewachsenen Code mir aber vor einiger Zeit ein Bennenungssystem angewöhnt gerade was Strings angeht.

Präfix: Sagt grob was über den Zweck aus - z.B. e für Excelzugriffe, x und z für Strings die in irgendeiner Form als Bezeichnung für Properties benutzt werden, p für Funktionsstrings die auf Properties zugreifen usw.

Bezeichnung: Sprechend und in Englisch und wenn vorhanden die Bezeichnung die auch Inventor auf Englisch nutzt

so ist ein xHeader z.B. ein aktueller Schriftkopf und ein zHeader ein zu ersetzender Schriftkopf - aber villeicht hast du da als Profi noch ein paar Tipps wie man das noch besser machen kann?

Dein Formular werde ich mir wenn erlaubt auch gerne mal ansehen 

------------------
Für jede Fehlermeldung gibt es eine Lösung

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 13. Mai. 2023 23:16    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

Zitat:
Original erstellt von chense:
Dein Formular werde ich mir wenn erlaubt auch gerne mal ansehen  

Das Formular mit allen Code ist in der ZIP Datei enthalten, man muss die datei nur im VBA Inportiren. 

------------------
[Inventor Professional 2023] - [WIN 10]

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

chense
Mitglied
Konstrukteur


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

Beiträge: 71
Registriert: 14.04.2020

Inventor 2019 auf Windows 10
Intel Xeon E5-1630, 3,7Ghz
Nvidia Quadro P4000
32GB Ram

erstellt am: 13. Mai. 2023 23:20    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 Muecke.1982 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Muecke.1982:

Das Formular mit allen Code ist in der ZIP Datei enthalten, man muss die datei nur im VBA Inportiren.  


Das habe ich gesehen aber ein Formular mit dem Namen eines Users will ich trotz öffentlichem Postings nichts einfach weiternutzen ohne zu fragen  Jedenfalls immer wieder genial wie einem hier geholfen wird!

------------------
Für jede Fehlermeldung gibt es eine Lösung

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

Windows 10 x64, AIP 2023

erstellt am: 14. Mai. 2023 10:23    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 Muecke.1982 10 Unities + Antwort hilfreich

Moin

Das Formular hat nur einen anderen Namen, da es sonst beim Import zu einer Namenskollision kommt wenn bereits eine UserForm1 vorhanden ist. Manche Problemchen umgeht man einfach schon von vorn herein. 

@Muecke.1982
Das passiert immer wenn ich was anderes zu tun hätte, aber null Lust dazu. Der Code ist nicht fertig, läuft aber erstmal. Gib ihn einfach mal 10 Leuten und warte drei Tage. Anwender finden problemlos jede Art ein Programm zu benutzen, die einen Fehler produziert. 

@chense
Wenn, ist VBA die Ur-Oma. iLogic ist, da man das gesamte .Net-Framework einbinden kann, wesentlich mächtiger. Versuch mal in VBA auf einen Vault zuzugreifen. Geht, aber Spaß ist was anderes. Und wer mal mit Try-Catch-Statement in .Net gearbeitet hat, will das nicht mehr missen. Der einzige Nachteil ist, das iLogic selbst ein Addin ist, das im Inventor geladen werden muss. Dadurch scheiden ein paar Sachen aus. Eigene Eventhandler definieren beispielsweise. Dazu muss man dann in ein eigenes Addin ausweichen. Dafür spart man sich eine Menge "Rumpf" schreiben zu müssen. Ist wie im Werkzeugkasten, alles hat seinen Zweck, Vor- und Nachteile.

Alles in Sachen Inventor API was in iLogic geht, kann VBA auch. iLogic kennt ein paar Befehle die man als Alias bezeichnen könnte. Dahinter verstecken sich Funktionen, die mehrere Einzelbefehle zusammenfassen. Die gibt es in VBA so nicht, könnte man sich aber selbst bauen. iLogic fehlt nach wie vor ein integrierter Debugger. Für Dreizeiler kein Problem, für größere Projekte vermisst man den schon. VBA ist im Durchschnitt um dem Faktor 10 langsamer. Bei kleinen Programmen merkt man davon aber nichts.

Wenn du mit dem Namensschema klar kommst, nutze es. Es gibt kein perfektes Schema. Alles ist besser, als Variable a, b, c, usw.
Ich nutze den Ansatz, der erste Buchstabe signalisiert den Typ (s=String, i=Integer, o=Objekt usw.), gefolgt von einem sinnvollen Namen der den Inhalt widerspiegelt. Das liegt aber daran, wenn man eher mit VB.Net arbeitet, wo Typisierung eine Rolle spielt. Der Variablentyp spielt in VBA hingegen kaum eine Rolle, da VBA intern selbst bei Bedarf konvertiert. Das geht nur manchmal etwas in die Hose. Ich konvertiere deswegen lieber selbst, gewollt und kontrolliert.

iLogic und Buttons im Ribbon, guck dir mal den Button-Constructor von Jelte De Jong an.

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

RKW Solutions GmbH
www.RKW-Solutions.com

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

Muecke.1982
Mitglied



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

Beiträge: 903
Registriert: 23.07.2009

[Inventor Professional 2023] - Temporäre Lizenz
WIN 10, WIN 11 funktioniert leider nicht.

erstellt am: 14. Mai. 2023 11: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

Zitat:
Original erstellt von rkauskh:
@Muecke.1982
Das passiert immer wenn ich was anderes zu tun hätte, aber null Lust dazu. Der Code ist nicht fertig, läuft aber erstmal. Gib ihn einfach mal 10 Leuten und warte drei Tage. Anwender finden problemlos jede Art ein Programm zu benutzen, die einen Fehler produziert.  

das kenne ich nur zu gut, aus den Excel Tabellen bei uns in der Arbeit. und deren Formeln die darin hinterlegt sind 

Ich bin wirklich begeistert von deiner unterstützung. DANKE dafür.

VG Mücke

------------------
[Inventor Professional 2023] - [WIN 10]

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