Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Porduct template mit reaction

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:  Porduct template mit reaction (583 mal gelesen)
MichaelJ
Mitglied



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

Beiträge: 67
Registriert: 19.05.2004

R14, R16, R17, R18

erstellt am: 29. Okt. 2008 20:23    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 mal wieder die Erfahrung gemacht das CATIA nichts für Gelegenheitsprogrammierer ist. 

Ich hab ein Product Template mit einer Reaction erstellt. Die Reaction löscht mit VB Script einige Constrains und Parts. Wenn ich die Reaction in dem Product auslöse in dem sie definiert ist, klappt alles bestens. Wenn ich das ganze jedoch in ein weiteres Product einfüge hagelt es Fehlermeldungen (Methode nicht unterstützt).

Hat jemand eine Idee?

Gruß
Michael

Hier der Code.

Sub main
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = productDocument1.Product

Dim Assy As Products
Set Assy = product1.Products

Dim NutSelect As Selection
Set NutSelect = productDocument1.Selection
NutSelect.Clear

Dim ConSelect As Selection
Set ConSelect = productDocument1.Selection
ConSelect.Clear

Dim parameters1 As Parameters
Set parameters1 = product1.Parameters

Dim Nut As Parameter
Set Nut = parameters1.Item("Nut")

Dim constraints1 As Collection
Set cons1 = product1.Connections("CATIAConstraints")
Dim cons1 As Constraint


if (Nut.Value = "xyz") then

Set Con = cons1.Item("Coincidence.06_1")
ConSelect.Add Con

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

logan
Mitglied
MSc Distributed Computing Systems Engineering Dipl.-Ing. (FH) Softwaretechnik


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

Beiträge: 111
Registriert: 07.02.2005

erstellt am: 30. Okt. 2008 19: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 MichaelJ 10 Unities + Antwort hilfreich

Hallo MichaelJ,

ohne etwas ähnliches bereits durchgeführt zu haben, habe ich ein paar Anmerkungen:

1. Welche Methode wird denn nicht unterstützt?

2. Du definierst im Makro die Umgebung über CATIA.ActiveDocument. Verbaust Du Dein Document Template, so kann das ActiveDocument meiner Meinung nach ein völlig anderes sein. Z.B. das aktive (blaue) Product der Zielbaugruppe.

3. Folgende Zeilen des Makros halte ich für redundant:
...
Dim NutSelect As Selection
Set NutSelect = productDocument1.Selection
NutSelect.Clear

Dim ConSelect As Selection
Set ConSelect = productDocument1.Selection
ConSelect.Clear
...

4. Set Con = cons1.Item("Coincidence.06_1")
Es ist gut möglich, dass Elemente wie "Coincidence.06_1" beim Instantiieren des Document Templates in die Zielbaugruppe kopiert werden. Dabei könnte (,muß aber nicht) sich ein Name ändern.


Viele Grüße,
Logan

PS: Ich interpretiere die Bezeichnung Product Template als Document Template (PKT Workbench).

[Diese Nachricht wurde von logan am 30. Okt. 2008 editiert.]

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

MichaelJ
Mitglied



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

Beiträge: 67
Registriert: 19.05.2004

R14, R16, R17, R18

erstellt am: 03. Nov. 2008 19:21    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 logan,

1. Die Methode Item in der Zeile nach dem if funktioniert nicht.
2. Stimmt, aber wie definiere ich die Umgebung wenn ich den Namen des eingefügten Templates (Products) und die Position im Baum nicht kenne ?
3. Stimmt schon wieder, so etwas passiert wenn man den Makrorecorder verwendet.
4. Sollte eigentlich nicht passieren. In dem Template sind keine Abhängigkeiten zu der übergeordneten Baugruppe definiert.

Mit deinem PS hast Du voll ins schwarze getroffen.

Gruß
Michael

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 03. Nov. 2008 20:08    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 MichaelJ 10 Unities + Antwort hilfreich

Hallo Michael,

CATIA.ActiveDocument ist die oberste Product im Fenster, es hat nichts mit blau hinterlegt zu tun!

Falls du den DocTemplate in die oberste einfügst, müsste es gehen. In die tiefere Ebenen kannst Du es interaktiv auch nur tun, wenn Du die entsprechende Ebene blau hinterlegst. Bei den Makros muss man aber generell anders vorgehen.

Übergebe mal diesen VBScript ein Objekt (z.B. den Parameter "Nut"), dann kannst du von diesen Objekt aus mit .parent, bzw. das oft genug verwendet an die richtige Product-Ebene kommen, dann dürfte dein Skript nach Änderungen auch funktionieren.

Übrigens, Selection gibt es nur eine pro Fenster, einer der beiden Zeilen von Dim NutSelect As Selection, Dim ConSelect As Selection ist eines also wirklich überflüssig. Selection am besten gleich von ActiveDocument nehmen.

Gruß,

Zoltan

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