Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Vložit Partu/Sestavě - všem otevřeným componentům nějaké Properties

UživatelPříspěvek
Dana Janovská

Poslat zprávu | Profil
Datum: 25.9. 2012 | Zobrazeno: 9807x
Konfigurace CATIA:

Text dotazu:


Language="VBSCRIPT"

Sub CATMain()

Dim acDoc

Dim acProd

Dim tmpString

Dim FileName

Dim FileSeparator

Set acDoc = CATIA.ActiveDocument

Set acProd = acDoc.Product

acProd.ApplyWorkMode DESIGN_MODE




Set parameters1 = acProd.UserRefProperties

Set strParam1 = parameters1.CreateString("COSI", "")

strParam1.ValuateFromString "---"

Set acProd = acProd.ReferenceProduct



End Sub



Toto jsem částečně opsala a částečně vyzobala z makra vytvořeného záznamem.


Language="VBSCRIPT"

Sub CATMain()

Dim acDoc

Dim acProd

Dim tmpString

Dim FileName

Dim FileSeparator

Set acDoc = CATIA.ActiveDocument

Set acProd = acDoc.Product

acProd.ApplyWorkMode DESIGN_MODE



For Each oDoc IN CATIA.Documents

Set parameters1 = acProd.UserRefProperties

Set strParam1 = parameters1.CreateString("COSI", "")

strParam1.ValuateFromString "---"

Set acProd = acProd.ReferenceProduct

NEXT


End Sub


Pokud vložím toto a je otevřeno třeba 10 komponent. Spustí makro 10x ale na to právě aktivním a zatoží COSI, COSI.1, COSI.2 ... .

Takže je zjevné, že je cosi špatně.

Prosím o radu.
1. Jak vložím properties COSI s obsahem --- všem otevřeným partům?
2. Jak příkaz tomu partu přepíše jen obsah toho COSI nikoliv založí novýs indexem....?

Ing Jan Cinert

Poslat zprávu | Profil
[#3363] | Publikováno: 25.09. 2012 - 15:15
V cyklu máte chybu, berete objekt acProd, musíte použít oDoc, který nabývá hodnot instancí v kolekci CATIA.Documents. Takhle vám to v aktivním dokumentu vytvoří tolik added properties, kolik je otevřených dokumentů.

Část kódu od Dim acDOc až po acProd.ApplyWorkMode... klidně smažte, není třeba. Poslední řádek cyklu je také zbytečný.

Rekordér je dobrá věc, ale vytváří spoustu balastního kódu.



Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.