Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Komponente im Produkt deaktivieren

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:  Komponente im Produkt deaktivieren (1910 mal gelesen)
Criollo
Mitglied



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

Beiträge: 42
Registriert: 07.11.2008

erstellt am: 09. Dez. 2009 12:04    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 möchte im Produkt Komponenten aktivieren/deaktivieren.
Das ganze soll ausgehend von einem Makro mit Argumenten laufen, welches in einem Adapterpart hängt.

Das ganze klappt, bis zu dem Punkt, an dem ich den Parameterwert des Component Activation State-Parameters eines Parts ändern möchte.

Anbei mein Skript - vielleicht kann da jemand weiterhelfen. Die mit Smileys markierte Zeile erzeugt den Fehler.

Set mypart = PN
Set einbau = mypart.Parent.Parent
set paras = mypart.parameters

For each para in paras
if instr(para.name, "A_") <> 0 then
set p = para
laenge_p_name = len(p.name)
p_name = mid(p.name, 3, laenge_p_name)

Call Einbau_oeffnen(einbau, p_name, p)
end if
Next

End Sub
'**********************************************************************
Sub Einbau_oeffnen (einbau, p_name, p)

Set myroot = einbau
Set temp = myroot.ReferenceProduct.Parent
Set doc = CATIA.Documents.Open(einbau.ReferenceProduct.Parent.FullName)
doc.activate
Set myroot = doc.product
Call Struktur_durchsuchen (myroot, p_name, p)
doc.close

End Sub
'**********************************************************************
Sub Struktur_durchsuchen (myroot, p_name, p)

For each myprod in myroot.Products
if right(myprod.ReferenceProduct.Parent.Name, 10) = "CATProduct" then
set myroot = myprod
Call Struktur_durchsuchen (myroot, p_name, p)
else
if myprod.PartNumber = p_name then
if p.value = false then
For each para in myprod.Parameters
if instr(para.name, "Component Activation State") <> 0 then
Set p = para
msgbox p.name & vbnewline & p.valueasstring
p.value = False
end if
Next
Exit For
end if

end if
end if
Next

End Sub

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



Entwicklungsingenieur Konstruktion (m/w/d)

Die Unternehmen VACUUBRAND, BRAND und VITLAB sind Teil der international tätigen Brand Gruppe mit weltweit 1.000 Mitarbeitern. VACUUBRAND ist Marktführer bei Vakuumpumpen und -systemen im Labor. Wir entwickeln und fertigen alle unsere Geräte mit rund 250 Mitarbeitern am Standort Wertheim am Main. Unser Vertrieb ist in der ganzen Welt zu Hause. Grundlage unseres Erfolgs ist das hohe technische Niveau, ...

Anzeige ansehenEntwicklung
tberger
Mitglied
Application Manager CATIA V5 / V6


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

Beiträge: 1385
Registriert: 13.01.2007

WIN 7 64bit
V5R21SP3HF49
3DX/V6 R2016x

erstellt am: 11. Dez. 2009 08: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 Criollo 10 Unities + Antwort hilfreich

Hallo Criollo,

vielleicht könntest du eine andere Methode verwenden um den Wertt auf "false" zu setzen:

p.ValuateFromString "false"  statt p.value = false


Dann noch eine Anregung:

Die "Component Activation State" Variable ist auch die erst, die man aus einer Liste abgreifen könnte. Hier mal ein kleines Sub, mit dem man in einer Rekursion ein Product durchscannt um deaktivierte Komponenten zu aktivieren:

Sub Recursion(product)

Dim parameters As Parameters
Set parameters = product.Parameters

Dim products As Products
Set products = product.Products

Dim subProduct As Product
For Each subProduct In products

Dim subList As List
Set subList = parameters.SubList(subProduct, False)

If subList.Count > 0 Then

Dim parameter As Parameter
Set parameter = subList.Item(1)

If parameter.ValueAsString = "false" Then
parameter.ValuateFromString "true"  '<--  diese Zeile aendert die Activity
End If

Else
Recursion subProduct

End If

Next

End Sub

------------------
Grüße aus dem Rheinland

Thomas

+++++++++++++++++++++++++++++++++

CATIA - eine Laune der Natur ...

"Phase 2 in CATIA V5"  - www.tobeplus.de

       tberger@tobeplus.de

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