Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Constraints per VBA bearbeiten

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
Autor Thema:  Constraints per VBA bearbeiten (2708 mal gelesen)
therp
Mitglied



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

Beiträge: 23
Registriert: 31.08.2010

Precision M4600
Intel(R) Core™ i5-2520M CPU @ 2.50GHz 8145 MB
NVIDIA Quadro 2000M
Microsoft Windows 7 Enterprise Service Pack 1
Catia V5 R19 SP09 HF069

erstellt am: 06. Jun. 2013 12:33    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 zusammen,

ich versuche mittels VBA Assembly-Constraints zu bearbeiten. Genauer: Ich habe Fixierungen (Fix Together), deren Parts ich verändern möchte.

Hier mal der Code:

Code:

Dim document As document
Dim prod As Product
Dim documents1 As Documents
Dim i As Integer
Dim constr As fixtogether
Dim rohprod As Product
Dim rohbaufix As String

rohbaufix = "KIN_L2_7"    'Erste Zeichen des Namens des neuen Parts

Set documents1 = CATIA.Documents

i = 1

Do Until i > documents1.Count
    Set document = documents1.Item(i)

    If Left(document.name, 15) = "STRICHKINEMATIK" Then  'ist das Produkt, indem sich die Constraints und die Parts befinden

        Set prod = document.Product 

    End If

    If Left(document.name, 8) = rohbaufix Then 'hier wird das neue Part gespeichert

        Set rohprod = document.Product
     
    End If

    i = i + 1
Loop

For Each constr In prod.Connections("CATIAFixTogethers")

    If constr.name = "Rohbau" Then
       
        constr.RemoveProduct (2)  'diese Zeile funktioniert noch. Das zweite Element des Constraints wird entfernt.

        constr.AddProduct rohprod 'hier bricht er ab - Run-time error'-2147467259(80004005) Method 'SetImpl' of object 'Fixtogether' failed
       
    End If
   
Next


Ich suche also in meinem Produkt nach einem Part mit einem bestimmten Namen. Dieses soll dann anstatt des Elements 2 im Constraint gespeichert werden.

Das Komische ist, die Funktion .addproduct kennt er, wenn man ihm allerdings ein Produkt liefert, funktioniert es nicht. Auffällig dabei ist natürlich, dass er ein Element "Product" benötigt, da ja eigentlich CATParts herangezogen werden. Aber die Deklaration 'Set rohprod = document.Product' funktioniert einwandfrei...

Bei der Onlinesuche nach dem Fehler habe ich leider nichts hilfreiches gefunden.

Ich hoffe ich konnte mich klar ausdrücken. Vielen Dank schonmal

MfG Robert

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 06. Jun. 2013 13:02    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 therp 10 Unities + Antwort hilfreich

Servus
Du musst auf das Exemplar des entsprechende Parts/Products zugreifen und nicht auf das Dokument. zB
Code:
Set rohprod = prod.products.item("Rohbau.1") 'bzw item(3)
dann solte es klappen

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

therp
Mitglied



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

Beiträge: 23
Registriert: 31.08.2010

Precision M4600
Intel(R) Core™ i5-2520M CPU @ 2.50GHz 8145 MB
NVIDIA Quadro 2000M
Microsoft Windows 7 Enterprise Service Pack 1
Catia V5 R19 SP09 HF069

erstellt am: 06. Jun. 2013 13:55    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

Genau da war das Problem!

Vielen Dank!

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



Entwickler für CAD-Automation (m/w/d)

Als Familienunternehmen, mit derzeit 1.600 Mitarbeitern weltweit, entwickeln, produzieren und vertreiben wir Verpackungsmaschinen für die unterschiedlichsten Branchen und Anwendungen rund um den Globus. 1966 in Crailsheim gegründet setzen wir mit unseren Innovationen bis heute regelmäßig neue Maßstäbe im Verpackungsmaschinenbau. Uns treiben die Neugierde und die Gewissheit, dass wir mit unseren ...

Anzeige ansehenAutomatisierungstechnik
mentosan
Mitglied
Engineer

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

Beiträge: 3
Registriert: 12.05.2014

erstellt am: 13. Mai. 2014 15: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 Nur für therp 10 Unities + Antwort hilfreich

hallo,

ich will alle Teile in Assy fixieren.
warum funktioniert nicht?

Sub CATMain()

Set productDocument1 = CATIA.ActiveDocument

Set selection1 = productDocument1.Selection

selection1.Search "Type=*,all"

Set product1 = productDocument1.Product

Set constraints1 = product1.Connections("CATIAConstraints")

Dim S

Dim Root as Product
Set Root=Docs.Add(Product").Product
S= Root.PartNumber
Set reference1 = product1.CreateReferenceFromName(S)

Set constraint1 = constraints1.AddMonoEltCst(catCstTypeReference, reference1)


End Sub

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