Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Grenzen der Abwicklung in Parameter

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:  Grenzen der Abwicklung in Parameter (2318 mal gelesen)
Richi82
Mitglied
technischer Angestellter


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

Beiträge: 15
Registriert: 19.10.2005

Siemens Celsius
NVidia Quadro FX 1500
AIP 2008, MDT 2007
Compass Productstream 5
Vault 5

erstellt am: 12. Jun. 2007 09:32    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 stehe da gerade etwas an. Und zwar möchte ich die Grenzen von einer Abwicklung in meinen Benutzerparametern haben. Dazu habe ich auch ein schönes Bsp gefunden das die Grenzen ausließt und dann nur mehr umgeschrieben damit die Werte in die Userparameter geschrieben werden. Jedoch habe ich jetzt noch ein kleines Problem. Sobald der Befehl einmal ausgeführt wurde werden diese Parameter nicht mehr überschrieben. Dazu müsste ich jetzt vorher die erstellten Userparameter löschen, aber irgendwie schaff ich das nicht.

hier der Code:
Option Explicit

Public Sub getBoundingBox()

    Dim oDoc As PartDocument
    Set oDoc = ThisApplication.ActiveDocument

    Dim oCD As SheetMetalComponentDefinition
    Set oCD = oDoc.ComponentDefinition

    Dim oFP As FlatPattern
    Set oFP = oCD.FlatPattern

    Dim dimX, dimY, dimZ As Double
    Dim sdimXYZ As String
 
    On Error Resume Next
    dimX = Round((oFP.Body.RangeBox.MaxPoint.X - oFP.Body.RangeBox.MinPoint.X) * 10, 3)

    If Err Then
      MsgBox "Abwicklung fehlt!", 16, "Error"
      End
    End If

    dimY = Round((oFP.Body.RangeBox.MaxPoint.Y - oFP.Body.RangeBox.MinPoint.Y) * 10, 3)
    dimZ = Round((oFP.Body.RangeBox.MaxPoint.Z - oFP.Body.RangeBox.MinPoint.Z) * 10, 3)

      'MsgBox ("X= " & CStr(dimX) & " mm" _
              & Chr(10) & "Y= " & CStr(dimY) & " mm" _
              & Chr(10) & "Z= " & CStr(dimZ) & " mm")
           
    sdimXYZ = CStr(dimX) & " x " & CStr(dimY) & " x " & CStr(dimZ)
     
        MsgBox ("Grenzen der Abwicklung :" & vbCrLf & vbCrLf & sdimXYZ & "    mm x mm x mm")
 
    'Call IPropEintraege.Property_setzen(oDoc, "Groesse_Abwicklung", CStr(sdimXYZ))
   
   
    Dim oParams As Inventor.Parameters
    Set oParams = oDoc.ComponentDefinition.Parameters
   
    'Parameter löschen
    'oParams.UserParameters.Item(GrenzeAbwicklungX).Delete
    'oParams.UserParameters.Item(GrenzeAbwicklungY).Delete
    'oParams.UserParameters.Item(GrenzeAbwicklungZ).Delete
   
    'Parameter für Grenzen erstellen
    oParams.UserParameters.AddByValue "GrenzeAbwicklungX", dimX / 10, kMillimeterLengthUnits
    oParams.UserParameters.AddByValue "GrenzeAbwicklungY", dimY / 10, kMillimeterLengthUnits
    oParams.UserParameters.AddByValue "GrenzeAbwicklungZ", dimZ / 10, kMillimeterLengthUnits
   
    Set oFP = Nothing
    Set oCD = Nothing
    Set oDoc = Nothing
 
End Sub

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: 12. Jun. 2007 09:49    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 Richi82 10 Unities + Antwort hilfreich

Hallo Richi,

Du läufst hier auf einen Fehler auf, falls Deine UserParams schon bestehen:

    'Parameter für Grenzen erstellen
    oParams.UserParameters.AddByValue "GrenzeAbwicklungX", dimX / 10, kMillimeterLengthUnits
    oParams.UserParameters.AddByValue "GrenzeAbwicklungY", dimY / 10, kMillimeterLengthUnits
    oParams.UserParameters.AddByValue "GrenzeAbwicklungZ", dimZ / 10, kMillimeterLengthUnits


Du kannst das folgendermassen lösen:

    'Parameter für Grenzen erstellen

  On Error Resume Next
    oParams.UserParameters.AddByValue "GrenzeAbwicklungX", dimX / 10, kMillimeterLengthUnits
   
    If Err Then
      Err.Clear
      oParams.UserParameters.Item(GrenzeAbwicklungX).Delete
      oParams.UserParameters.AddByValue "GrenzeAbwicklungX", dimX / 10, kMillimeterLengthUnits
    End If

usw.

HtH

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

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

iShell: Assembly zu Hüllenpart

thinkCAD Web-Kataloge

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

Richi82
Mitglied
technischer Angestellter


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

Beiträge: 15
Registriert: 19.10.2005

Siemens Celsius
NVidia Quadro FX 1500
AIP 2008, MDT 2007
Compass Productstream 5
Vault 5

erstellt am: 12. Jun. 2007 10:03    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,
Danke für deine Hilfe, so was habe ich mir schon gedacht, bin halt noch ein echter Noob programiertechnisch gesehen.

Was ebenfalls noch gefehlt hat waren die Anführungsstrichchen beim Parameternamen und hat daher ein Kompilierungsfehler ausgegeben da er es nicht als String erkannt hatte.

Aber jetzt funzts 

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: 12. Jun. 2007 10: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 Nur für Richi82 10 Unities + Antwort hilfreich

Hallo Richi,

Sorry, hatte ich gar nicht gesehen... hab's nur mal schnell hier rein 'codiert', nicht getestet 

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

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

iShell: Assembly zu Hüllenpart

thinkCAD Web-Kataloge

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