| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Parameter mit VBA erstellen und löschen (2282 mal gelesen)
|
RolandWeber Mitglied Zimmermann
Beiträge: 40 Registriert: 01.02.2002 Inv. 5.3, SP2 Inv. 7.0 XP Prof, SP2 3DLabs VP760 P IV 2.4, 1GB
|
erstellt am: 08. Jan. 2004 20:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute Aus einem benutzerdefierten Formular möchte ich User-Parameter bearbeiten, erstellen und teilweise auch wieder löschen. Auflisten und die Werte bearbeiten funktioniert mit Hilfe des Beispieles in der API-Hilfe wunderbar. Aber hat jemand ein Beispiel, wie man neue Parameter erstellt oder wieder einzelne Parameter löscht? Vielen Dank Roland
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 09. Jan. 2004 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für RolandWeber
Hallo Roland, Du brauchst dazu ein AttributeSet. Ich habe Dir hier mal ein Stueck code-Schnipsel aus einer meiner App's. In diesem Fall verweise ich mit 'AttributeSets' auf BohrungsFeature (Set oAttribSets = oHole.AttributeSets). Anschliessend fuege ich ein neues AttributeSet hinzu (Set oAttribSet = oAttribSets.Add("MyAttribute")). Falls dieses AttributeSet 'MyAttribute' schon existiert, kommt es zum Error und ich loesche anschliessend das AttributeSet, womit auch dessen Attribute geloescht werden. Danach wird das AttributSet neu gesetzt (Set oAttribSet = oAttribSets.Add("MyAttribute")). Dann kannst Du beliebug viele Attribute definieren (die letzten 3 Zeilen), wobei Du da auf die richtigen Typen und Werte schauen musst, z.B. im ersten Attribut 'Set oAttr = oAttribSet.Add("HType", kIntegerType, cmbHole.ListIndex)' ist 'HType' der Name des Attributes, kIntegerType der Typ = Integer und 'cmbHole.ListIndex' ist der Integer-Wert, hier eben der Index aus einer ComboBox. Sie Dir das Beispiel mal an: Dim oAttribSets As AttributeSets Dim oAttribSet As AttributeSet Dim oAttr As Inventor.Attribute
Set oAttribSets = oHole.AttributeSets
' Error, falls AttributeSet schon existiert On Error Resume Next Set oAttribSet = oAttribSets.Add("MyAttribute") If Err Then Err.Clear Set oAttribSet = oAttribSets.Item("MyAttribute") ' falls Attribut schon existiert ---> loeschen oAttribSet.Delete Set oAttribSet = oAttribSets.Add("MyAttribute") End If ' Attribute setzen Set oAttr = oAttribSet.Add("HType", kIntegerType, cmbHole.ListIndex) Set oAttr = oAttribSet.Add("TType", kIntegerType, cmbTap.ListIndex) Set oAttr = oAttribSet.Add("TValue", kStringType, cmbTapSize.Text) ' usw... Ich hoffe, das hilft.
Gruesse, Paul www.morecam.ch/cad.htm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RolandWeber Mitglied Zimmermann
Beiträge: 40 Registriert: 01.02.2002 Inv. 5.3, SP2 Inv. 7.0 XP Prof, SP2 3DLabs VP760 P IV 2.4, 1GB
|
erstellt am: 09. Jan. 2004 10:14 <-- editieren / zitieren --> Unities abgeben:
Danke für die Antwort ... nur ..... Jetzt habe ich eine Verständnisfrage: Reden wir vom gleichen? UserParameter: Sind das nicht die Werte, welche ich frei unter "Extras>Parameter" neu definieren kann? Attributes: Wozu brauche ich (bzw IV) diese? Aus der Programmierhilfe habe ich auch ein Beispiel für die Attributes genommen und auspropiert, verstehe aber nicht, was wirklich gesetzt wird. Grüsse Roland
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VOSTA1 Mitglied techn. Angestellter
Beiträge: 108 Registriert: 23.12.2002
|
erstellt am: 09. Jan. 2004 10:37 <-- editieren / zitieren --> Unities abgeben: Nur für RolandWeber
Hallo, Beispiel für eine *.idw unter Eigenschaften Benutzdefiniert findet sich die Variable TEST in der IDW ++++++++++++++++++++++++++++++++++++++++++++++ sub test Dim oDoc As DrawingDocument Set oDoc = ThisApplication.ActiveDocument 'Löscht ein User Parameter TEST On Error Resume Next oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("TEST").Delete 'Erzeugt ein User Parameter mit TEST On Error Resume Next oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Add "", "TEST" 'setzt "testparameter123456" in TEST oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("TEST").Value = "testparameter123456" 'MSGBOX Zeigt was in "TEST" steht
msgbox oDoc.PropertySets("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}").Item("TEST").Value end sub ++++++++++++++++++++++++++++++++++ MFG VOSTA1
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 09. Jan. 2004 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für RolandWeber
Hallo Roland, sorry, aber jetzt hatte ich einen Knoten - man solle eben das Gehirn einschalten, bevor man in die Tasten greift... Mit Attributen kannst Du Informationen an Objekte anbringen (z.B. Bauteile, Flaechen, Kanten, Bohrungen, usw.). Ich benutze diese oft. Setzten und veraendern von Parametern ist kein Problem, ich finde jetzt aber auf die Schnelle nichts zum loeschen von User-Parametern. Ich bin im Moment etwas gehetzt, kuemmere mich am Nachmittag mal darum. Gruesse, Paul www.morecam.ch/cad.htm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 09. Jan. 2004 16:37 <-- editieren / zitieren --> Unities abgeben: Nur für RolandWeber
|
RolandWeber Mitglied Zimmermann
Beiträge: 40 Registriert: 01.02.2002 Inv. 5.3, SP2 Inv. 7.0 XP Prof, SP2 3DLabs VP760 P IV 2.4, 1GB
|
erstellt am: 13. Jan. 2004 22:19 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|