Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Parameterübergabe an VB

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:  Parameterübergabe an VB (1638 mal gelesen)
Exodus2012
Mitglied
Student

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

Beiträge: 8
Registriert: 15.03.2011

Inventor 2011
Visual Basic 2010 Express

erstellt am: 17. Mrz. 2011 13:54    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 hab folgendes Problem:

Ich will aus einer Baugruppe einen Parameter ("Winkel") in VB importieren:

Dim oPara As Inventor.Parameter
oPara = oDoc.ComponentDefinition.Parameters.Item("Winkel")

und diesen Parameter dann in einer Schleife aufaddieren:

Do While Not zaehler <= 180      
       oPara = oPara + 2      
       zaehler = zaehler + 1
       oDoc.Update()
       oApp.ActiveView.Update()
       If zaehler = 180 Then Exit Do
Loop

Jetzt hab ich an der markierten Stelle folgenden Fehler:

"Der +-Operator ist für die Typen "Inventor.Parameter" und "Integer" nicht definiert."

Wie kann ich das umgehen? Kann ich irgendwie nur den Wert des Winkels importieren und nicht den "ganzen" Parameter?


Beste Grüße

[Diese Nachricht wurde von Exodus2012 am 06. Jun. 2011 editiert.]

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 17. Mrz. 2011 14: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 Nur für Exodus2012 10 Unities + Antwort hilfreich

Hallo Erik,

die Fehlermeldung sagt's ja bereits: Dein oPara ist ein PARAMETER und nicht der WERT des Parameters. Um einen Wert zuzuweisen musst Du auf '.Value' gehen, also:

oPara.Value = oPara.Value + 2

Ich vermute mal, dass Du irgendwas um irgendwas in 2° Schritten drehen willst ? Beachte folgendes:
- Inventor arbeitet intern mit 'cm' als Länegneinheiten
- Inventor arbeitet intern mit Radianten als Winkeleinheiten, Du muss also dann Deinen Wert in Grad umrechnen mit / 180 * PI

Generell zu Deinem Code:

Do While Not zaehler <= 180     
    oPara = oPara + 2      
    zaehler = zaehler + 1
    oDoc.Update()
    oApp.ActiveView.Update()
    If zaehler = 180 Then Exit Do
Loop


Die beiden letzten Zeilen:
    oApp.ActiveView.Update()
    If zaehler = 180 Then Exit Do

kannst Du Dir schenken... bzw. Do While Not zaehler <= 180 ??? Wo fängt Dein Zähler denn an ?


------------------
Grüsse, Paul

Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung

Meine Tochter auf Youtube

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

Exodus2012
Mitglied
Student

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

Beiträge: 8
Registriert: 15.03.2011

Inventor 2011
Visual Basic 2010 Express

erstellt am: 21. Mrz. 2011 08:31    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 Paul,

Vielen Dank für deine Hilfe, muss mich mit VB und dem Programmieren an sich noch etwas beschäftigen.  
Mit oPara.Value funktionierts endlich! Danke übrigens auch für den Tipp mit der Umrechnung. Den Fehler hätte wohl selbst nie gefunden!
Die Schleife soll eigentlich heissen Do While Not >= 180.

Gruss

[Diese Nachricht wurde von Exodus2012 am 06. Jun. 2011 editiert.]

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)2023 CAD.de | Impressum | Datenschutz