Zobrazit plnou verzi příspěvku: Kopie náčrtu

issin
17.02.2020, 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.

krupicka
18.02.2020, 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.

issin
21.02.2020, 07:12
Vše máte v soukromé zprávě.

krupicka
21.02.2020, 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

issin
21.02.2020, 21:05
Děkuji za pomoc.Trochu si pohraji s tím co jste mi sem dal a uvidím co dál.

issin
22.02.2020, 20:56
… a s tím kopírováním mi můžete pomoci.

issin
23.02.2020, 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.issin2020-02-23 12:02:37