Combobox
Uživatel | Příspěvek |
Pavel Krsek ![]() ![]() Poslat zprávu | Profil |
Datum:
16.11. 2011
| Zobrazeno:
12852x Konfigurace CATIA: Text dotazu: |
Josef Kočí ![]() ![]() Poslat zprávu | Profil |
[#2398]
| Publikováno:
16.11. 2011 - 22:56 Combobox je na formuláři, takže při inicializaci formuláře přiřadit hodnotu (-ty) comboboxu.
BOX_ROZMER_DESEK_X.Value = neco BOX_ROZMER_DESEK_X.List= pole hodnot (mozna neni uplne presne toto). p. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2399]
| Publikováno:
16.11. 2011 - 22:56 Vytvořte funkci, která se bude spouštět při načítání formuláře.
' Initialize za podtrzitkem spusti funkci pri nacitani Psal jsem to narychlo z hlavy, ale mělo by to být OK. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2400]
| Publikováno:
16.11. 2011 - 23:15 Oprava - přidání položky do boxu je ve VBA správně takto:
BOX_ROZMER_DESEK_X.AddItem oParameter.ValueJinak je to stopro OK. Pro nastavení vychozí hodnoty lze použít vlastnost Value (příspěvek JK) i Text . |
Pavel Krsek ![]() ![]() Poslat zprávu | Profil |
[#2405]
| Publikováno:
17.11. 2011 - 08:27 Díky moc za nápovědu. Již to funguje.
Ještě bych se k tomu zeptal, zda-li dané řešení funguje i pro tlačítko Checkbox (zaškrtnutí políčka). Tj. Checkbox se odkazuje na parametr typu boolen (true,false) a potřebuji aby při spuštění makra u nastavené hodnoty false bylo políčko v checkboxu zaškrtnuté. Díky. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2408]
| Publikováno:
17.11. 2011 - 11:13 Samozřejmě, zatržení Checkboxu udává jeho vlastnost checked. Takže zjistíte, v jakém stavu je boolean parametr a podle toho nastavíte Checkbox, takže asi takto: zatrhavaci_policko.checked = bool_parametr.valueale nejsem si úplně jistý, jestli to v CATIA není jako "false" / "true", pak by to mohlo být If bool_parametr.value = "true" then |
Pavel Krsek ![]() ![]() Poslat zprávu | Profil |
[#2413]
| Publikováno:
18.11. 2011 - 13:30 Diky za pomoc.
Bohuzel co se tyka checkboxu, tak to se mi zatim nepodarilo. Duvod je pravdepodobne s tim, ze vlastnost "checked" ve VBA neni obsazeno. Min. ji nemuzu najit a kdyz ji napisi do codu, tak to vyhodi chybu. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2414]
| Publikováno:
18.11. 2011 - 17:01 Já se omlouvám za mystifikaci,
píšu makra na 90% ve Visual studiu 2008 a často si neuvědomím, že v catiovském VBA je to po staru. Takže: Checkbox.value = True ' checkbox zatrzeny |
Pavel Krsek ![]() ![]() Poslat zprávu | Profil |
[#2415]
| Publikováno:
18.11. 2011 - 17:19 To s vlastosti "value" me napadlo, ale stale porad to nefunguje: kod pro UserForm mam nasledujici:
Private Sub UserForm_Initialize() VBA nyni funguje tak, ze se makro spusti (checkbox nezatrzeny - bez ohledu na hodnotu true/false) - po zaskrtnuti checkbox se hodnota zmeni z false na true (pokud pred startem VBA byla hodnota true tak se logicky nic nestane) tj. potrebuji aby pri hodnote true a naslednem spusteni VBA bylo pole zaskrtnute. Diky Pavel |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2416]
| Publikováno:
18.11. 2011 - 17:50 Problém je v tom, že hodnota z Catie se načítá jako "True" / "False" (defacto text) a ve VBA máte programové True / False, už jsem to psal v příaspěvku #2408. If parametr.Value = "True" then |
Pavel Krsek ![]() ![]() Poslat zprávu | Profil |
[#2417]
| Publikováno:
21.11. 2011 - 05:46 Diky moc.
Uz to funguje. |
Josef Landa ![]() ![]() Poslat zprávu | Profil |
[#2461]
| Publikováno:
02.12. 2011 - 08:20 Uživatel odpovídá na příspěvek #2417:
Dobrý den, snažím se pomocí CheckBoxu prepínat parametr "Prepinani" (True/False) ten mám vytvoření v CATPart. Dostal sem se zatim k inicializaci po pár hodinách sem ji nedokázal rozchodit. Můžete mi prosím poradit? Private Sub UserForm_Initialize() |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2462]
| Publikováno:
02.12. 2011 - 09:10 Tenhle kód je pro zjištění hodnoty parametru a zatržení checkboxu při spuštění makra. Navíc je tam chyba, proto to nefunguje. Správně by to bylo: Private Sub UserForm_Initialize() Pokud zároveň chcete, aby se měnila hodnota parametru v Catii při zatržení / odtržení ve formuláři, musíte vytvořit funkci, která se spustí při změně hodnoty checkboxu. Takže asi takto: Private Sub Checkbox_Change() |
Josef Landa ![]() ![]() Poslat zprávu | Profil |
[#2468]
| Publikováno:
06.12. 2011 - 10:18 Uživatel odpovídá na příspěvek #2462:
Děkuji za pomoc, už mi to funguje. Jen ve zdrojovém kodu pro změnu parametru pri změně CheckBoxu sem musel odstranit závorky za oPart.Update a řádek oParameter.ValuateFromString = "True" mi nefungoval tak sem ho upravil pouze na: oParametr.Value = "True" a už mi to pracuje. Trvalo mi to asi tři hodiny, než sem to trefil, ale tím se člověk nejvíc učí. Tak jak mi to pracuje to vypadá takto:
Nemáte náhodou nějakou přírůčku, do které by se dalo nahlédnout, při problémech? Ještě jednou děkuji za pomoc. |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2470]
| Publikováno:
06.12. 2011 - 10:46 Kromě oficiální nápovědy o ničem v češtině nevím. Určitě existuje zahraniční literatura (vím o jedné německé knížce), ale ta je dost obsáhlá a také drahá. Poměrně dobré zdroje jsou na zahraničních fórech, ale většinou je to spousta hledání. Někdy se ale nejdou naprosto nedocenitelné informace.
PS: Ty kódy píšu narychlo z hlavy, tak to nemusí být pokaždé 100%. |
Josef Landa ![]() ![]() Poslat zprávu | Profil |
[#2515]
| Publikováno:
29.12. 2011 - 17:15 Dobrý den,
mužete mi prosím poradit jakým způsobem bych napsal do programu: Jestliže je aktivni otevřené okno sestava vyplň parametr_1 Jestliže ne vyplň parametr_2 Jde mi o to co mám napsat jako: If ........... = ............ Then A ještě jestli by jste mi pomohl s tímto: Jestliže existuje parametr_1 Asi to bude v tomto smyslu: If ........... = True Then |
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2518]
| Publikováno:
30.12. 2011 - 11:58 K sestavě:
Jestli je model sestava, poznáte nejlépe z jeho filename (končí na CATProduct) - je tedy třeba zjistit poslední část názvu za poslední tečkou ' rozdelime nazev souoboru Do pole podle tecek K parametru: Tady je to tak0 jednoduché. Zkusíme vytvořit objekt parametru podle hledaného názvu metodou Item. Pokud parametr neexistuje, nastane chyba ' osetreni mozne chyby |
Josef Landa ![]() ![]() Poslat zprávu | Profil |
[#2554]
| Publikováno:
17.01. 2012 - 13:36 Dobrý den,
děkuji za nápovědu. Rozpoznání dle přípony mi jde bez problémů a šlo to na první pokus, ale to s tím že jestli parametr existuje tak napříklat nic nedělej(nebo ten parametr vyplň) mi do toho makra přidat nejde....
|
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2555]
| Publikováno:
17.01. 2012 - 15:49 Nějak mi chybí část kódu, kde vytváříte objekt partDocument1...
Jinak na to jde zbytečně složitě a navíc si myslím, že parametr musí být typu Parameter. Takže: Parts = Split(CATIA.ActiveDocument.Name, ".") |
Josef Landa ![]() ![]() Poslat zprávu | Profil |
[#2556]
| Publikováno:
17.01. 2012 - 16:24 Chtěl jsem si udělat makro na to, že si dám do jednoho adresáře modely kterým chci zapsat určitý parametr.
Když je to sestava vytvoř parametr "sestava". Když je to díl vytvoř parametr "díl". Jestliže parametr existuje nevytvářej žádný... Makro mi pracuje tak že otevírá jeden soubor za druhým a parametry se mi vytváří ale když existuje, tak mi to vždy vytvoří další a to nechci. Celé to mám tekhle:
|
Ing Jan Cinert ![]() ![]() Poslat zprávu | Profil |
[#2557]
| Publikováno:
17.01. 2012 - 17:14 Uživatel odpovídá na příspěvek #2518:Postup je uvedený v tomto příspěvku, akorát že místo Err.level musí být Err.number <> 0 ...
Princip je takový, že zkusíte parametr načíst - pokud neexistuje, chodí to chyby, kterou právě tímto odchytíte. On Error Resume Next ' osetrime pad pri vniku chyby |
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.