Již 10.000+ CAD tipů.
Přes 118.500 registrovaných u nás, celkem 1.094.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor.
Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
|
Odpovědět ![]() |
archiv |
Autor | ||
mimo0912 ![]() Zasloužilý člen ![]() Přihlášen: 24.říj.2008 Lokalita: Slovensko Používám: AutoCAD2011, Inventor2017, SolidEdge Stav: Offline Bodů: 122 |
![]() Zasláno: 17.led.2013 v 20:44 |
|
Pozdravujem,
začal som šprtať trochu do VBA. Na začiatok som chcel získať parameter, trochu to upraviť pod VBA a vrátiť späť upravený. Prikladám kód, ktorý hlási chybu pri príkaze Set ... . Mám veľmi málo skúsenosti z VBA pre Inv a tento kód som našiel v odbornom článku. Prikladám tiež dialóg References. Ďakujem. |
||
![]() |
||
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21908 |
![]() |
|
Máte tam překlep: ActiveDcoument --> ActiveDocument
|
||
![]() |
||
mimo0912 ![]() Zasloužilý člen ![]() Přihlášen: 24.říj.2008 Lokalita: Slovensko Používám: AutoCAD2011, Inventor2017, SolidEdge Stav: Offline Bodů: 122 |
![]() |
|
Áno bola to chyba, no nevšimol som si. Skopíroval som to, nepozornosť.
Takže som pokročil a ak zadám: oParam2 = ThisApplication.ActiveDocument.ComponentDefinition.Parameters.Item("d0").Value načíta sa mi do premennej hodnota 0,6 pritom skutočná hodnota je 6. Napr. parameter s hodnotou 1000 načíta do premennej 100. Je to u všetkých parametroch ktoré sú v mm, t. j. 10x menšie číslo. Ak je parameter v cm potom je to OK. Ak je parameter v metroch potom do premennej načíta 100x väčšie číslo. Je to vlastnosť? Robím chybu ja? Je to v nejakom nastavení? Prosím o radu. Ďakujem. |
||
![]() |
||
Vladimír Michl ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor ![]() ![]() Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21908 |
![]() |
|
To je v pořádku, rozměrové parametry jsou v API implicitně vyjádřeny v [cm].
Možná ještě pro doplnění - pokud potřebujete rozměr v aktuálních jednotkách dokumentu, můžete použít např.:
pak funkce
vrátí přepočtený řetězec rozměru včetně jednotek (přičemž UnitsSpecifier jde zadat buď jako řetězec - např. "in" nebo jao oJednotky) Upravil Vladimír Michl - 19.led.2013 v 10:56 |
||
![]() |
||
mimo0912 ![]() Zasloužilý člen ![]() Přihlášen: 24.říj.2008 Lokalita: Slovensko Používám: AutoCAD2011, Inventor2017, SolidEdge Stav: Offline Bodů: 122 |
![]() |
|
Robím v strojárstve a tam je to takmer vždy v [mm], preto by som skôr používal:
Dim oPartDoc As Inventor.PartDocument Set oPartDoc = ThisApplication.ActiveDocument Dim oParams As Parameters Set oParams = moPartDoc.ComponentDefinition.Parameters oParams("Dlzka").Expression = 800 Samozrejme, že parameter už existuje a sú zname dlžkové jednotky. ------------- Ešte mám dve otázky: 1) Mám otvorenú zostavu (aktívna). Je možnosť cez VBA upraviť ľubovoľný parameter niektoreho z partov danej zostavy bez jeho aktivácie? 2) Mám otvorený part (aktívny), ktorý je vytvorený ako odvodená súčasť. Je možné zmeniť parameter v základnej komponente, zktorej je aktívny part vytvorený? Za odpoveď vopred ďakujem |
||
![]() |
||
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
|
Jenom pro upřesnění. Pozor na rozdíl mezi (String) Parameter.Expression a (Double) Parameter.Value
Co se týká úpravy parametru v dílu použitého v sestavě, tak tam záleží na tom, zda je načtený v paměti. To souvisí s úrovní detailu. Pokud je soubor načtený v paměti, je možné ho upravovat, ale je potřeba si ohlídat aktulizaci. U odvozených součástí je to podobně, ale tady si nejsem jistý, kdy základní komponentu načítá do paměti a s aktualizací to taky bude asi o něco pracnější. Al eobecně jsou oba požadavky proveditelné.
|
||
![]() |
||
mimo0912 ![]() Zasloužilý člen ![]() Přihlášen: 24.říj.2008 Lokalita: Slovensko Používám: AutoCAD2011, Inventor2017, SolidEdge Stav: Offline Bodů: 122 |
![]() |
|
Skúsil som meniť parameter v parte, ktorý je súčasťou otvorenej zostavy. Funguje to, pri aktualizácii a zmena sa prejavila aj v zostave. Funguje to aj pri odvodenej súčasti.
Teraz som narazil na ďalší nedostatok vedomosti. Potreboval by som cez VBA s otvorením dokumentu otvoriť dialóg hlásením o nemožnosti upravovať tento dokument. Kliknutím na OK zatvorí sa tento dokument. Niečo také ako "Spúšťač udalosti" v iLogic-u. Nerád by som išiel cez iLogic, ale nevylučujem tú možnosť. Ďakujem. |
||
![]() |
||
flesar ![]() TOP uživatel ![]() Přihlášen: 15.lis.2005 Lokalita: ČR (JČ) Používám: AIP 2009 Stav: Offline Bodů: 641 |
![]() |
|
Pro automatické spouštění maker jsou určené předdefinované názvy maker, např. AutoOpen, AutoNew, AutoClose ...
V makru už si vytvoříte vlastní dialog a ošetříte si uzavření dokumentu. |
||
![]() |
||
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
|
Potíž s těmito automatickými makry je v tom, že musí být obsaženy v dokumentu a ne v projektu aplikace splečné pro všechny dokumenty. Ve VBA je tato úloha velmi komplikovaně řešitelná. V tomto případě je mnohem jednodušší celé to napsatat jako AddIn, který se sám spouští při startu a dokáže pracovat s mnohem širší paletou takzvaných událostí (např. otevření a uložení dokumentu, atd.)
|
||
![]() |
||
mimo0912 ![]() Zasloužilý člen ![]() Přihlášen: 24.říj.2008 Lokalita: Slovensko Používám: AutoCAD2011, Inventor2017, SolidEdge Stav: Offline Bodů: 122 |
![]() |
|
To by mi nevadilo, skôr to vyhovuje. Ale problém je v tom, že potrebujem pri otváraní partu zakázať jeho otvorenie s upozornrním napr. cez MsgBox, ale pri otvorení zostavy to musí fungovať bez akýchkoľvek upozornrní. V prípade ak je otvorená zostava a edituje sa daný part, opäť by to malo byť uživateľsky znemožnené.
Pozn. Tak ako som pri otvorení tejto témy uviedol, že začínam šprtať do VBA, tak ako to písať cez AddIn ......?!?! ![]() |
||
![]() |
||
Navara ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
ARKANCE support ![]() ![]() Arkance Systems Přihlášen: 08.zář.2008 Lokalita: ČR (Pha) Používám: Inventor Stav: Offline Bodů: 1637 |
![]() |
|
Tohle opravdu není úloha pro začátečníka.
V podstatě se na to musí jít tak, že vytvoříte nějaký mechanizmus rozpoznávání, zda je otevíraný dokument možno editovat. Tento mechanizmus musí být nezávislý na tom, jak a kdo dokument otevírá. Například se to dá vyřešit uživatelskou iVlastností. Druhá část je samotné rozhodování o tom, zda se otevření nebo aktivace povolí či nikoli. K tomu slouží v Inventoru takzvané události. Pro náš případ přichází v úvahu dvě: ApplicationEvents.OnActivateDocument ApplicationEvents.OnOpenDocument Během těchto událostí se bude kontrolovat 1) v jakém kontextu dochází o otevření/aktivaci souboru. Zda se jedná o samostatné otevření, nebo o otevření v kontextu jiného souboru. 2) Zda se jedná o zakázaný dokument. Pokud ano, je potřeba danou akci přerušit, nebo vrátit zpět. Podrobnosti k popisovaným událostem najdete v dokumentaci k API Inventoru
|
||
![]() |
||
mimo0912 ![]() Zasloužilý člen ![]() Přihlášen: 24.říj.2008 Lokalita: Slovensko Používám: AutoCAD2011, Inventor2017, SolidEdge Stav: Offline Bodů: 122 |
![]() |
|
OK, skúsim sa posunúť o krok vpred.
|
||
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,224 sekund.