Zobrazit plnou verzi příspěvku: ACAD a VBA

de Forbes
13.07.2005, 08:13
Dobrý den. Mám dotaz a prosbu na někoho znalého, komu ACAD a VBA funguje.  Je tento jazyk použitelný pro automatizaci výpočtů a vkládání vypočítaných výsledků do výkresů dwg? Bohužel v Helpech není nic moc a nějaká ta literatura na internetu je moc obecná nebo moc akademická. Mám zvládnutý ACAD, VB i VBA, ale potřebuji začátek. Jak vlastně do ACADu makra VBA dostat, zda se dají přivěsit k souboru dwg stejně jako v Excelu nebo Wordu atd. Můžete mi někdo poradit? Děkuji předem
Jindřich Mollin

Seiner
13.07.2005, 08:25
IMHO, pokud již máte s programováním VBA zkušenosti, stačí Vám přočíst složku Sample\VBA a příslušnou část Helpu pro vývojáře (Objekty, metody).
VBA funguje stejně jako u jiných programů - makro "pověšené" na datový soubor.
Osobně používám spíš VB nebo VBA z jiných programů (Access) - techniky podobné, použití IMHO širší.

Vladimír Michl
13.07.2005, 08:32
Několik komentovaných ukázek VBA aplikací AutoCADu najdete v sekci Téma - programování na tomto serveru:http://www.cadforum.cz/cadforum/tema.asp
Vhodným úvodem do programování VBA je i rozsáhlá práce (online učebnice) Vývojové prostředky AutoCADu - tamtéž.

de Forbes
13.07.2005, 08:58
Problém je i to, že není ACAD jako ACAD. V mém domácím ACADu LT 2000, který jsem si kdysi koupil, VBA není. V práci mám nový ACAD LT 2005. V jeho Helpu bohužel není skoro nic. Možná, že se VBA musí nejdříve dokoupit a nainstalovat. Od dealerů skutečnou odpověď nedostanu a celkem nutně potřebuji vymyslet způsob, jak automatizovat konstrukční úlohy.

Seiner
13.07.2005, 09:11
LT podle mého dosud v žádné verzi VBA nemělo a o (legální) možnosti doplnění nevím. Že je LT záměrně omezený produkt by vám při jeho pořízení mělo být jasné už ze srovnání cen.
Jisté možnosti automatizace v LT jsou. Je tu určité riziko plýtvání prací - nikdo Vám nezaručí, že to bude fungovat i v nové verzi. Pro odborně fundovanější a s lepším přístupem k informacím jistě existuje víc možností, ale já používám:
1. menu s výrazy DIESELu
2. Programy ve VB, které vytvářejí (nebo modifikují) soubory DXF a jejich následné vkládání do výkresu. Dá se to spojit tak, že uživatel ani nepozná, že se drbe přes hlavu :-). Mám třeba tak udělanou nadstavbu pro válcované profily, spojovací materiál, nebo jednoúčelové kreslení schémat skladových regálů.
3. Extrakci atributů a následné zpracování programem, databází.

de Forbes
13.07.2005, 09:27
Ano, já vím. LT je záměrně omezený. O vedoucímu inženýrovi s americkým titulem, přesně o tom, který tu úsporu při nákupu prosadil, se to rozhodně nedá říct. Jinak velký dík za radu č. 2. To by mohlo fungovat.

Seiner
13.07.2005, 10:10
2005-07-13_100702_Module1.zip
Pokud uvažujete, že se vydáte cestou ad 2., mohu Vám pro inspiraci poskytnout kousek kódu pro vytváření DXF. Volá se vždy nejprve OpenDXF, pak libovolný počet DXFLine, DXFCircle (a dalších, které v zaslaném modulu nejsou) a nakonec DXFClose.
Pak je ještě jedna metoda, např. pro řádek nadstavby. Vytvořím blok a do hodnot atributů dám klíčová slova. Uložim jako DXF. V programu pak načtu do stringu, klíčová slova nahradím požadovanými texty a uložím.

Seiner
13.07.2005, 10:19
Pokud se na to budete dívat a budete se divit, proč jsem v tom nepoužil funkci replace, tak hlavně proto, že jsem to porvé dělal pro Access97 a tam replace nefungoval. A ta záměna čárka-tečka tam je kvůli načítání některých hodnot z textboxů. A jsou i jiné elegantnější možnostim, jak zpracovat číslo s destinnou čárkou.

de Forbes
13.07.2005, 11:14
Děkuji za ukázku. Ono mi asi nic jiného než DXF nezbude. U nás ve firmě se tento postup používá pro vytváření výkresů sestav. Jenomže si určitě dovedete představit, že ta aplikace, která umí vytvořit výkres sestavy v DWG importem DXF, je psaná na zakázku kdesi v Holandsku, je strašně velká, drahá, licencovaná, nepřenosná, nemá výstupy pro kreslení detailů a nefunguje pod Windows, ale pod Unixem. Vypracování výstupů k detailům se čeká ode mě. Tak mě napadá cesta nejmenšího odporu a tím je právě VB, když přes VBA cesta v Autocadech LT nevede. Prostě krása. Jste první, kdo mi dokázal aspoň trochu poradit.