Zobrazit plnou verzi příspěvku: VBA, iLogic

issin
21.03.2019, 11:09
Dobrý denPomalu pronikám do tajů programování VBA a iLogic. Jak tak procházím různé diskuze a příklady toho co se jak programuje tak jsem narazil na zápisy kdy ve složených závorkách je dlouhý řetězec znaků. Co tyto řetězce znamenají?Zde je část kódu obsahující takový řetězec:Dim p As Property    Set p = prt.PropertySets( _      "{32853F0F-3444-11D1-9E93-0060B03C1CA6}")("Description")    p.Expression = sb.Name

Vladimír Michl
21.03.2019, 13:15

to je tzv. GUID, interní jedinečné označení nějakého objektu nebo typu - obvykle se dá najít v dokumentaci objektového modelu

Navara
21.03.2019, 13:52

Trochu to rozvedu.Vlastnosti jsou ukládány v dokumentu v tzv. sadách (PropertySet) Každý PropertySet je možno identifikovat pomocí jednoho z následujících identifikátorů.index - pořadí v kolekci všech sad - hodně nespolehlivé, nepoužívá se.Name - anglický název, podle dokumentace by měl být shodný ve všech jazykových mutacích, lze použít.DisplayName - Lokalizovaný název sady vlastností, v každé jazykové mutaci je jiný, nepoužívá se.InternalName - Interní identifikátor (GUID), který je shodný ve všech jazykových mutacích, používám a za posledních 10 let se nezměnil. Tabulka jak jí vrací Inventor[code]Name                                   | DisplayName                                         | InternalName-------------------------------------------------------------------------------------------------------------------------------------Inventor Summary Information           | Souhrnné informace programu Inventor                | {F29F85E0-4FF9-1068-AB91-08002B27B3D9}Inventor Document Summary Information  | Souhrnné informace dokumentu programu Inventor      | {D5CDD502-2E9C-101B-9397-08002B2CF9AE}Design Tracking Properties             | Vlastnosti Design Tracking                          | {32853F0F-3444-11D1-9E93-0060B03C1CA6}Inventor User Defined Properties       | Uživatelsky definované vlastnosti programu Inventor | {D5CDD505-2E9C-101B-9397-08002B2CF9AE}[/code]

issin
23.03.2019, 13:49
Děkuji za osvětlení oč se jedná.Pro začátečníka, který teprve zjišťuje jak správně napsat kód a trápí se s tím jak v programu udělat další krok je to věc momentálně nepoužitelná. Tak to nechám na nějakou příští lekci.

issin
24.03.2019, 11:16
Dobrý denrád bych definoval několik proměnných najednouzápis je vcelku jasný:Dim Delka(1 To 5) As Double 'Definování 5-ti proměnnýchProblém nastává, když chci definovat předem vypočtený počet proměnných n (pro n jsem zkoušel String, Integer i Double):Dim Delka (1 To n) As DoubleTakto provedený zápis je neplatný. Chyba Constant expression reqiredJak to správně zapsat?Zatím to řeším tak, že počet definovaných proměnných značně převyšuje teoretický maximální předpokládaný potřebný počet. Ale to mi nepřipadá jako "nejčistší" řešení.

Vladimír Michl
24.03.2019, 11:35
Dynamícká pole lze řešit např. pomocí klauzule "ReDim" (podobně jako v Basicu)

issin
24.03.2019, 13:04
Mohl by jste to trochu rozvést. S VBA jsem se poprvé potkal minulou sobotu.Děkuji

Vladimír Michl
24.03.2019, 13:19
Tak třeba pro seznam názvů polohových reprezentací (dopředu nevím jejich počet):[CODE]Dim RepList() As String ReDim RepList(0 To oPosReps.Count-1)[/CODE]

issin
24.03.2019, 19:56
Děkuji

issin
27.03.2019, 06:16
Tak se zase dostávám o kousek dál.Rád bych začal experimentovat s modelováním.Příklad:   Dejme tomu že budu mít vytvořený náčrt a v něm nakreslenou uzavřenou smyčku.Pomocí VBA bych chtěl udělat vysunutí o konkrétní vzdálenost.Otázka:   Jaký by měl být správný postup? Mohl by sem někdo napsat nějakou osnovu, podle které bych mohl postupovat při tvorbě kódu.Děkuji

Navara
27.03.2019, 15:01

Osobně se snažím maximálně vyhnout tomu, že bych něco v modelu tvořil pomocí API. A zrovna vysunutí je docela komplexní operace. Co se týká nějakého příkladu, tak ty jsou k dispozici v nápovědě k API například pod heslem "ExtrudeFeatures Object"   

issin
03.04.2019, 16:23
Myslel jsem, že vysunutí (Extrude) bude spíše jedna z těch jednodušších věcí. Porovnám-li to s profilovým ohybem (ContourFlangeFeature) kde je třeba zadat kterým směrem se vytvoří tloušťka plechu a potom kterým směrem a na jakou vzdálenost dojde k "vysunutí"

Navara
03.04.2019, 21:07

No jak se to vezme. Například tady je diskuze s jedním krátkým příkladem (nevím, jestli funguje)https://knowledge.autodesk.com/support/inventor-products/troubleshooting/caas/discussion/t5/Inventor-Customization/Asymmetric-Extrude/td-p/5340853.htmlAle v obecné rovině, kdy můžete mít několik uzavřených profilů, překrývající se profily, víceobjemové těleso, vysouvání jako plocha, zúžení, vymezení od-do, atd... tak to úplně taková sranda není. Ale ten profilový ohyb je taky pěkný.

issin
03.04.2019, 21:40
bral jsem to tak, že si to učení nebudu komplikovat překrytými smyčkami, ani že nebudu blbnout s výsuvem od-do nebo k nejbližšímu apod. Ostatně tyto parametry "délky" jsou skoro u všech "výsuvů".Zatím se snažím přijít na to co vše se musí definovat než se přistoupí k samotnému zadání konkrétní funkce. To zda, když v modelu bude jeden náčrt a v něm jedna smyčka, je nutné dělat selectset.select ... nebo stačí při zadání funkce říct že definiční náčrt je náčrt.item(1)ani nevím zda je možné užít pojmenování náčrtu.Jsem stále na začátku.

issin
07.04.2019, 11:48
Zatím kód stavím spíše systémem pokus omyl a logickou skladbu spíše odhaduji, nicméně jsem zase o malý kousek dál. Nyní řeším práci s náčrtem a z logiky toho co se pokouším řešit makrem docházím k tomu, že bude potřeba náčrt kopírovat (promítat) z jedné pracovní roviny do druhé a tam jej přepnout aby byl jako konstrukční čára.Jak se nazývá funkce pro přepnutí normální čáry na konstrukční?Buď jsem slepý nebo nehledám kde mám.Děkuji za pomoc.

issin
26.04.2019, 22:00
Pokud bych chtěl ve formuláři používat stejné symboly / ikony jako jsou v inventoru, kde je najdu.

Navara
29.04.2019, 08:30

Oficiálně nikde. Neoficiálně se dají najít zakompilované v DLL souborech, nebo je vytáhnout z tlačítka příkazu jako vlastnost LargeIcon, nebo StandardIcon typu IPictureDisp, ale s tím je opravdu těžká práce.Část se dá najít i veřejně, pokud si nainstalujete z SDK DeveloperTools, tak součástí je i dokument "Inventor Icon Design Guidelines.pdf", kde je popsaný způsob tvorby a pár příkladů.