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

Řízení parametrů pomocí dialogového okna

Kompletní přehled příspěvků v tématu Řízení parametrů pomocí dialogového okna řazený podle data jejich publikace na fóru.

UživatelPříspěvek
Milan Duchek

Poslat zprávu | Profil
Datum: 28.9. 2010 | Zobrazeno: 4494x
Konfigurace CATIA:

Text dotazu:
Zdravím všechny,
prosím o radu, potřeboval bych řídit některé parametry typu Length či String pomocí dialogového okna (InputBox), ale tím způsobem aby hodnoty byly již předdefinovány a uživatel nemohl měnit jejich velikost, pouze vybrat z rozevíracího seznamu. Hodnota by se dala upravit či přidat pouze přepsáním makra. Možná že řešení je triviální, ale do programování jsem se zatím nepouštěl. Díky za odpovědi.

Ing Jan Cinert

Poslat zprávu | Profil
[#1151] | Publikováno: 28.09. 2010 - 23:13
Problém by to nebyl, ale už na to nestačí obyčejný CATScript, takže triviální to úplně není.
Napsat to lze jako VBA aplikaci přímo v Catii (má zabudovaný VB 6) nebo externě (C, novější VB). Já osobně používám Visual studio 2008, ale pokud nemáte žádné zkušenosti s programováním, bude pro vás o trochu jednodušší VB6 v Catii.
Ale jak vám co nejlépe poradit... Buď to nechám na vás a budete se v tom topit anebo vám to napíšu pro jeden parametr a vy si upravíte podle svých představ.

Ještě poznámka - pokud byste potřeboval jen vybírat hodnoty parametrů z předem definovaných hodnot, jde to příkazem Add range, ale předpokládám, že tohle víte.
Milan Duchek

Poslat zprávu | Profil
[#1152] | Publikováno: 29.09. 2010 - 08:35
Pokud by jste si našel čas a napsal mi to alespoň pro jeden parametr s nějakým popisem jak přidávat další tak by to bylo samozřejmě perfektní.
Ing Jan Cinert

Poslat zprávu | Profil
[#1153] | Publikováno: 29.09. 2010 - 22:11
Tak jsem dal dohromady jednoduchý příklad, pokusím se vám to alespoň trochu vysvětlit.

1. Vytvořte si novou Library typu VBA Project, pojmenujte třeba Parameters.catvba a dále si otevřete prázdný Part s jedním parametrem typu String a názvem "Color".

2. Otevřete si VBA editor (Tools - Macros) a načtěte si tento nově vytvořený projekt

3. Vložte do projektu UserForm, ten pojmenujte "Main" a vložte do něj tento kód:
(pravým tlačítkem nad názvem UserFormu a vybrat view code)
Dim oActiveDocument As Document

Dim oPart As Part
Dim oColorParameter As Parameter

Private Sub UserForm_Initialize()
' pri inicializaci naplnime rozklikavaci seznam hodnotami
ColorsComboBox.AddItem ("White")
ColorsComboBox.AddItem ("Yellow")
ColorsComboBox.AddItem ("Red")
ColorsComboBox.AddItem ("Blue")
ColorsComboBox.AddItem ("Green")
End Sub

Private Sub ChangeColorButton_Click()
'nastavime potrebne instance
Set oActiveDocument = CATIA.ActiveDocument
Set oPart = oActiveDocument.Part
Set oParameters = oPart.Parameters
Set oColorParameter = oParameters.Item("Color")
'zmenime nAs parametr na hodnotu vybranou v seznamu
oColorParameter.ValuateFromString (ColorsComboBox.Text)
'provedeme update
oPart.Update
End Sub

Private Sub ExitCommandButton_Click()
Main.Hide
End Sub


4. Vložte do projektu Module, pojmenujte ho "ChangeColor" a vložte do něj tento kód
Sub CatMain()

' zobrazime formular
Main.Show vbModeless
End Sub


5. Uložte projekt a tlačítkem Run spusťte makro. Mělo by to hned fungovat.

6. Abyste mohl makro pohodlně spouštět ikonou, je třeba si vytvořit nový panel a makro do něj přiřadit. V Tools - Customize si v záložce Toolbars vytvoříte nový panel nástrojů. Pak se přepněte do záložky Commands a v levém sloupci vyberete skupinu Macros. Pokud máte nastavený jako aktuální projekt Parameters.catvba, mělo by se v pravém sloupci objevit ChangeColor - modul, který jste vytvořil v projektu. Stačí ho pouze přetáhnout myší do panelu nástrojů a vybrat mu nějakou ikonku. A to je vše.

Samotný kód je úplné minimum, bez ošetření chyb atd, ale pro pochopení by to mělo stačit.

Přeju hodně trpělivosti...

V příloze máte CATPart, celý VBA projekt a video, jak by to mělo vypadat.

PS: Pokud byste měl zájem o něco "většího" (např. fajnovou konfiguraci celého rámu kola), neváhejte se obrátit přímo na mě.

Přiložené soubory:
changing_parameters.zip

Ing Jan Cinert

Poslat zprávu | Profil
[#1155] | Publikováno: 30.09. 2010 - 23:03
Ještě jsem vám zapomněl napsat, že do UserFormu musíte vložit příslušné ovládací prvky (rozklikávací seznam a tlačítka), ale pokud si otevřete projekt v příloze, uvidíte jak je to celé udělané.
Milan Duchek

Poslat zprávu | Profil
[#1157] | Publikováno: 01.10. 2010 - 09:57
Děkuji moc za Váš čas. Makro funguje perfektně, naučil jsem se přidávat i další parametry i když tuším že je to taková "surová" verze, jak říkáte bez ošetření chyb. Nepřišel jsem však na to, jak zabezpečit aby mekro fungovalo i v případě že Part v kterém chci měnit hodnoty je součástí Assembly. Lze makro deklarovat přímo na název souboru (Partu)?

PS: Děkuji za nabídku, až si udělám představu o funkcionalitě tak bych se ozval. Můžete mi na Vás poslat kontakt?
Ing Jan Cinert

Poslat zprávu | Profil
[#1179] | Publikováno: 05.10. 2010 - 13:55
Zajistit funkčnost makra, pokud je otevřená sestava, také není problém. Stačí aby požadovaný Part byl aktivní, jinak makro uživatele upozorní.

Kontakt jsem vám poslal na email (je to ten samý, který je uváděn u mých příspěvků), předpokládám, že jste ho dostal.
Josef Landa

Poslat zprávu | Profil
[#2455] | Publikováno: 29.11. 2011 - 18:52
Uživatel odpovídá na příspěvek #1155:


Dobrý den,
zkoušel jsem přidat do vašeho makra změnu parametru typu Boolean.
Chtěl bych aktivovat a deaktivovat různé stavy dílu. Můžete mi prosím pomoct, jak to vyřešit? Díl přikládám do přílohy.

Přiložené soubory:
changing_parameters.zip

Ing Jan Cinert

Poslat zprávu | Profil
[#2456] | Publikováno: 30.11. 2011 - 10:20
Tady je popsáno, jak měnit hodnotu parametru makrem...
http://www.catia-forum.cz/forum/topic.php?topic_id=454

Pak stačí jen parametr "Activity" příslušného feature pomocí formula nalinkovat na parametr, který se bude makrem ovládat.


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.