| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: iLogic Masse in einer Drawing auslesen (2591 / mal gelesen)
|
Shanks10 Mitglied
Beiträge: 29 Registriert: 20.10.2016 Inventor 2017
|
erstellt am: 08. Jan. 2018 14:18 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe folgenden Standardcode verwendet: mass = iProperties.Mass iProperties.Value("Custom", "Masse") = mass MessageBox.Show("Mass = " & mass, "iLogic") Wenn ich diese Regel in meiner .ipt ausführe bekomme ich in der Messagebox das Gewicht ohne Einheit angezeigt (alles gut). Bei der gleichen Regel/Code in meiner .dwg Datei ist die Ausgabe immer "0". Kann mir einer erklären wieso? Ich möchte die Masse als Benutzerparameter in meiner Drawing speichern, sodass ich diese ohne Einheit in meinen Title Block schreiben kann. Ich bekomme auf den verschiedensten wegen immer wieder "0" raus. Der Code spuckt mir nur das richtige Ergebnis aus wenn ich mass = iProperties.Mass(iProperties.Value("Project", "Part Number")& ".ipt") iProperties.Value("Custom", "Masse") = mass eingebe und mich so direkt auf mein Part beziehe. Nun habe ich aber auch .iam Daten und will nicht jedes Mal die Regel umschreiben müssen. Wie komme ich an die Masse in einer Drawing bzw wie komme ich an den Datentyp .ipt / .iam in einer Drawing? Vielen Dank schonmal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 08. Jan. 2018 18:40 <-- editieren / zitieren --> Unities abgeben: Nur für Shanks10
Dafür brauchst du keine iLogic-Regel... Du kannst die Masse des Bauteils direkt in einen Text packen, siehe hierzu angehängtes Bild. Dein erster iLogic-Code greift zudem auf die Masse der Zeichnung zu und diese hat logischerweise keine Masse, da es sich ja um eine Zeichnung handelt. Wenn du die Masse unbedingt per iLogic aus dem Modell ziehen möchtest und nicht auf die standardmäßig gegebenen Text-Funktionen zurückgreifen möchtest, dann sag Bescheid... Den Code dafür stelle ich dir gerne zur Verfügung, auch mit Unterscheidung zwischen Bauteil und Baugruppe. ------------------ Mit Besten Grüßen Marcel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Shanks10 Mitglied
Beiträge: 29 Registriert: 20.10.2016 Inventor 2017
|
erstellt am: 09. Jan. 2018 15:32 <-- editieren / zitieren --> Unities abgeben:
"Bescheid" Danke für deine Antwort. Da ich wie erwähnt die Masse ohne Einheit in meinem Title Block benötige, bringt mir die standardmäßige Textfunktion nichts. Dann würde ich auch gar keinen Aufwand fahren müssen....Ich habe mir den Code in meinem Titble Block Template jetzt so zurecht gelegt, dass nach dem Speichern eines Bauteils (und somit ein vorhandener XXX.ipt name) auf die .ipt zugegriffen wird und dort die Masse ohne Einheit rausgeschrieben wird. Da ich dies nur bei 2-3 Assemblies machen muss, änder ich dafür meine Regel ab, würde trotzdem gerne die saubere Lösung wissen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ruzy5624 Mitglied Konstruktionsleiter / staatl. gepr. Techniker
Beiträge: 280 Registriert: 01.07.2015 Product Design Suite 2018 Ultimate Visual Studio 2017 Windows 10 Pro Intel Xeon E3-1245 v5 @ 3,5GHz Nvidia Quadro M4000 8GB RAM 32GB 2x 24" Monitore FullHD SpaceMouse Pro
|
erstellt am: 10. Jan. 2018 20:05 <-- editieren / zitieren --> Unities abgeben: Nur für Shanks10
Code: Dim oDrwDoc As DrawingDocument = ThisApplication.ActiveEditDocument Dim oUseProps As PropertySet = oDrwDoc.PropertySets("Inventor User Defined Properties") Dim oSheet As Sheet = oDrwDoc.Sheets(1)If oSheet.DrawingViews.Count = 0 Then MessageBox.Show("Es ist keine Ansicht auf der Zeichnung vorhanden!", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error) Exit Sub End If Dim oView As DrawingView = oSheet.DrawingViews(1) Dim oRefDoc As Document = DirectCast(oView.ReferencedFile.ReferencedDocument, Document) Dim oRefDesProps As PropertySet = oRefDoc.PropertySets("Design Tracking Properties") Dim dblMass As Double = CDbl(oRefDesProps("Mass").Value) / 1000 dblMass = Math.Round(dblMass,2) Try oUseProps.Add("", "ModellMasse") Catch End Try oUseProps("ModellMasse").Value = dblMass
Der Code liest die Masse aus dem Modell auf der Zeichnung aus und schreibt sie in ein benutzerdefiniertes iProperty der Zeichnung. Das iProperty der Zeichnung heißt: "ModellMasse" Dieses kann dann in der Zeichnung abgerufen werden. Dabei ist es dem Code völlig egal, um was für ein Modell es sich handelt... Also Bauteil, Baugruppe, ...
------------------ Mit Besten Grüßen Marcel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|