Vytisknout stránku | Zavřít okno

Kopie náčrtu

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=30048
Datum vytištění: 13.kvě.2026 v 08:54


Téma: Kopie náčrtu
Odeslal: issin
Předmět: Kopie náčrtu
Datum odeslání: 17.úno.2020 v 08:59
S VBA jsem začátečník a většinou pracuji stylem pokus – omyl. Nyní potřebuji poradit, protože už „znám“ asi 50 způsobů, jak to nejde a velmi rád bych byl poslán na správnou cestu, která mne dovede k požadovanému cíli.
Za patřičné nakopnutí předem děkuji.
Řeším problém automatizace návrhu, při kterém potřebuji vytvořit několik kopií náčrtu do několika odsazených rovin, přičemž v každé další kopii potřebuji změnit parametr „modul“ o +1.
Už jsem dokázal vytvořit jednotlivé odsazené roviny a v nich prázdné náčrty.
Odděleně se mi podařilo vytvořit i kopii náčrtu do jiné roviny, ale v tomto náčrtu mi to parametr „modul“ vždy přejmenovalo na „dxx“ (xx = pořadové číslo). Jelikož předem nevím, jaké bude mít parametr „modul“ v novém náčrtu pojmenování nemohu jeho hodnotu přepisovat.
Snad jsem problém popsal dost srozumitelně.
Příklad, jak by mohl vypadat základní náčrt viz. obrázek.



Odpovědi:
Odeslal: krupicka
Datum odeslání: 18.úno.2020 v 07:50
Zdravím, je možné přiložit vaše makro nebo pravidlo abychom mohli kód projít, podívat se jestli je v něm vše jak má být a trochu jej vylepšit oč žádáte?
Makro na tvorbu toho, co popisujete, by mělo být celkem jednoduché.

Díky.


Odeslal: issin
Datum odeslání: 21.úno.2020 v 07:12
Vše máte v soukromé zprávě.


Odeslal: krupicka
Datum odeslání: 21.úno.2020 v 07:38
Dobrý den, 
   děkuji za upozornění, pročetl jsem si pozorně Vaši zprávu.
Požadujete poměrně sofistikované řešení, makro, které popisujete, by mělo cca tak alespoň 300 řádků kódu a to rozhodně není na vysvětlování si prostřednictvím fóra.
Doporučil bych Vám zamyslet se nad využitím konzultačních nebo programátorských služeb CAD Studia.

Výchozí stav - Víceobjemové plechové těleso, kvalitně řízené parametry, a to včetně parametru počítající počet těles v závislosti na celkové délce teleskopu, například.

Postup makra by měl být cca následující: 
Vytvoření kopie víceobjemového dílu.
Otevření kopie, změna parametrů, vlastností, aktualizace.
Generování odvozených plechových dílů z víceobjemových těles pro možnost rozvinutí a exportu DXF.
Vložení vygenerovaných dílů do nové sestavy, včetně původního řídícího víceobjemového modelu, který bude referenční.

S čím Vám zde mohu rychle pomoci je funkce, kterou poptáváte v soukromé zprávě, a to je jak vybrat náčrt z grafického okna Inventoru... Myslím si ovšem, že tuto funkci nebudete potřebovat.

Dim oApp As Application
oApp = ThisApplication

Dim oDoc As Document
oDoc = oApp.ActiveDocument

'oDoc.SelectionPriority = 67585 'Priorita vyberu prvku - nacrt je prvek 

Dim oSelectedSketch As Sketch
'Výběr objektu náčrtu vybrat ze stromu součásti.

oSelectedSketch = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kSketchObjectFilter, "Vyberte objekt náčrt")

MsgBox("Nazev nacrtu    " & oSelectedSketch.Name)
MsgBox("Počet entit     " & oSelectedSketch.SketchEntities.Count())
MsgBox("Počet parametrů " & oSelectedSketch.DimensionConstraints.Count())


'oDoc.SelectionPriority = 67587 'Hrany a plochy



Odeslal: issin
Datum odeslání: 21.úno.2020 v 21:05
Děkuji za pomoc.
Trochu si pohraji s tím co jste mi sem dal a uvidím co dál.


Odeslal: issin
Datum odeslání: 22.úno.2020 v 20:56
… a s tím kopírováním mi můžete pomoci.


Odeslal: issin
Datum odeslání: 23.úno.2020 v 09:40
podle toho Vašeho popisu, jak by makro mělo fungovat, mě napadlo zda by tedy nebylo jednodušší pracovat rovnou v sestavě do které bych vložil součást (pouze náčrt profilu a potřebné parametry), makro (na úrovni sestavy) by si vyžádalo vstupní parametry pro výpočet počtu dílů a provedlo by vytvoření příslušného počtu kopií součásti s modifikací parametrů (předpokládám, že při kopírování součásti by nedošlo k přejmenování uživatelských parametrů). Teď už jen domyslet způsob pojmenování součástí. Ideálně podle sestavy, něco jako "Jméno_Sestavy" + "Přípona".
A taky by mělo jít definovat vazby.



Vytisknout stránku | Zavřít okno