| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SolidEdge |
| |
| BCT erneut als Spitzenanbieter für lösungsorientierte PLM-Software und Dienstleistungen ausgezeichnet, eine Pressemitteilung
|
Autor
|
Thema: Material setzten VB (1551 mal gelesen)
|
peticeo Mitglied Wirtschaftsinformatiker FH
Beiträge: 162 Registriert: 25.10.2005 Windows 7 64bit Quad X5472 ST 2/12 Teamcenter 8.1
|
erstellt am: 02. Mrz. 2010 07:59 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen über VB hole ich den aktuellen Eintrag des Materials. Code: Dim objMaterialTable As SolidEdgeFramework.MatTable Dim plNumMaterials As Integer Dim listOfMaterials As Array objMaterialTable = mApp.GetMaterialTable() objMaterialTable.GetMaterialList(plNumMaterials, listOfMaterials) ... For i = 0 To plNumMaterials - 1 cb_mat.Items.Add(listOfMaterials(i)) Next Nun wie kann ich das aus dem Combobox gewählte Material zurückschreiben? Danke für eure Hilfe Gruss Peticeo [Diese Nachricht wurde von peticeo am 02. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nitram Mitglied Konstrukteur
Beiträge: 78 Registriert: 01.06.2007
|
erstellt am: 02. Mrz. 2010 13:42 <-- editieren / zitieren --> Unities abgeben: Nur für peticeo
Ich nehme an, du bist in einem PAR. Dann versuchs mal so: Dim objDoc As SolidEdgePart.PartDocument Dim mPropertySets As SolidEdgeFramework.PropertySets Dim mProperties As SolidEdgeFramework.Properties Dim mProperty As SolidEdgeFramework.Property objDoc = mApp.ActiveDocument mPropertySets = objDoc.Properties For Each mProperties In mPropertySets If mProperties.Name = "MechanicalModeling" Then For Each mProperty In mProperties If mProperty.Name = "Material" Then mProperty.Value = Me.cb_mat.Text End If Next End If Next Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
peticeo Mitglied Wirtschaftsinformatiker FH
Beiträge: 162 Registriert: 25.10.2005 Windows 7 64bit Quad X5472 ST 2/12 Teamcenter 8.1
|
erstellt am: 02. Mrz. 2010 17:04 <-- editieren / zitieren --> Unities abgeben:
So funktioniert nur in *.par. Ich müsste es vorallem für *.psm haben. ich habs so versucht: mPart.Properties("MechanicalModeling").Item("Material").Value =Me.cb_mat.Text Was ist daran falsch? Peticeo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
modeng Ehrenmitglied V.I.P. h.c.
Beiträge: 7061 Registriert: 10.12.2003
|
erstellt am: 02. Mrz. 2010 17:15 <-- editieren / zitieren --> Unities abgeben: Nur für peticeo
... allenfalls das mPart sofern es weder als SheetMetalDocument, Object noch als SolidEdgeDocument deklariert ist oder -- Nothing ist [Diese Nachricht wurde von modeng am 02. Mrz. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Arne Peters Ehrenmitglied V.I.P. h.c. CAD Dokumentation / Training / Programmierung / Datenbanken
Beiträge: 7478 Registriert: 05.2002.24 Solid Edge Seminarunterlagen Training, Beratung, Programmierung
|
erstellt am: 02. Mrz. 2010 17:16 <-- editieren / zitieren --> Unities abgeben: Nur für peticeo
|
peticeo Mitglied Wirtschaftsinformatiker FH
Beiträge: 162 Registriert: 25.10.2005 Windows 7 64bit Quad X5472 ST 2/12 Teamcenter 8.1
|
erstellt am: 02. Mrz. 2010 18:40 <-- editieren / zitieren --> Unities abgeben:
|
Nitram Mitglied Konstrukteur
Beiträge: 78 Registriert: 01.06.2007
|
erstellt am: 02. Mrz. 2010 18:50 <-- editieren / zitieren --> Unities abgeben: Nur für peticeo
Hallo, ich denke modeng hat recht. im Falle eines Sheetmetals muss mPart als SolidEdgePart.SheetMetalDocument deklariert werden. Du kannst es es einfach mal so versuchen: Dim mPart as Object Ist zwar etwas unsauber, müsste aber funktionieren. Wenn du es sauber programmieren willst, musst du zunächst den Type des aktuellen Dokumentes abfagen und dann entsprechend deklarieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |