Již 10.000+ CAD tipů.
Přes 118.000 registrovaných u nás, celkem 1.091.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 | ||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() Zasláno: 29.led.2019 v 12:46 |
|
Zdravím mám vzorec viz.: níže který funguje dobře v .ipt ale v .iam mi to hlásí chybu. Vzorec hromadně přidává parmetry a uživatelské ivlastnosti které následně využívá jiný vzorec.
Nevím proč mi to funguje v dílu ale ne v sestavě. Napadá někoho jak to upravit tak aby to fungovalo i v sestavě? Předem děkuji Dim part As PartDocument = ThisDoc.Document Dim userParams = part.ComponentDefinition.Parameters.UserParameters Dim p As Inventor.Parameter Try p = userParams("R1") Catch p = userParams.AddByValue("R1", 0, "mm") End Try p.Comment = "NADPIS - ROZMĚR" Try p = userParams("R2") Catch p = userParams.AddByValue("R2", 0, "mm") End Try p.Comment = "NADPIS - ROZMĚR" Try p = userParams("R3") Catch p = userParams.AddByValue("R3", 0, "mm") End Try p.Comment = "NADPIS - ROZMĚR" Try p = userParams("R4") Catch p = userParams.AddByValue("R4", 0, "mm") End Try p.Comment = "NADPIS - ROZMĚR" Try p = userParams("PR1") Catch p = userParams.AddByValue("PR1", 0, "mm") End Try p.Comment = "POPIS - ROZMĚR" Try p = userParams("PR2") Catch p = userParams.AddByValue("PR2", 0, "mm") End Try p.Comment = "POPIS - ROZMĚR" Try p = userParams("PR3") Catch p = userParams.AddByValue("PR3", 0, "mm") End Try p.Comment = "POPIS - ROZMĚR" Try p = userParams("PR4") Catch p = userParams.AddByValue("PR4", 0, "mm") End Try p.Comment = "POPIS - ROZMĚR" Dim propertyName As String = "N1" Dim propertyValue As String = "" customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties") Try prop = customPropertySet.Item(propertyName) Catch customPropertySet.Add("", propertyName) End Try Try prop = customPropertySet.Item("N1-M") Catch customPropertySet.Add("","N1-M") End Try Try prop = customPropertySet.Item("N2") Catch customPropertySet.Add("","N2") End Try Try prop = customPropertySet.Item("N2-M") Catch customPropertySet.Add("","N2-M") End Try Try prop = customPropertySet.Item("N3") Catch customPropertySet.Add("","N3") End Try Try prop = customPropertySet.Item("N3-M") Catch customPropertySet.Add("","N3-M") End Try Try prop = customPropertySet.Item("P1") Catch customPropertySet.Add("","P1") End Try Try prop = customPropertySet.Item("P1-M") Catch customPropertySet.Add("","P1-M") End Try Try prop = customPropertySet.Item("P2") Catch customPropertySet.Add("","P2") End Try Try prop = customPropertySet.Item("P2-M") Catch customPropertySet.Add("","P2-M") End Try Try prop = customPropertySet.Item("P3") Catch customPropertySet.Add("","P3") End Try Try prop = customPropertySet.Item("P3-M") Catch customPropertySet.Add("","P3-M") End Try Try prop = customPropertySet.Item("PR1") Catch customPropertySet.Add("","PR1") End Try Try prop = customPropertySet.Item("PR1-M") Catch customPropertySet.Add("","PR1-M") End Try Try prop = customPropertySet.Item("PR2") Catch customPropertySet.Add("","PR2") End Try Try prop = customPropertySet.Item("PR2-M") Catch customPropertySet.Add("","PR2-M") End Try Try prop = customPropertySet.Item("PR3") Catch customPropertySet.Add("","PR3") End Try Try prop = customPropertySet.Item("PR3-M") Catch customPropertySet.Add("","PR3-M") End Try Try prop = customPropertySet.Item("PR4") Catch customPropertySet.Add("","PR4") End Try Try prop = customPropertySet.Item("PR4-M") Catch customPropertySet.Add("","PR4-M") End Try Try prop = customPropertySet.Item("R1") Catch customPropertySet.Add("","R1") End Try Try prop = customPropertySet.Item("R1-M") Catch customPropertySet.Add("","R1-M") End Try Try prop = customPropertySet.Item("R2") Catch customPropertySet.Add("","R2") End Try Try prop = customPropertySet.Item("R2-M") Catch customPropertySet.Add("","R2-M") End Try Try prop = customPropertySet.Item("R3") Catch customPropertySet.Add("","R3") End Try Try prop = customPropertySet.Item("R3-M") Catch customPropertySet.Add("","R3-M") End Try Try prop = customPropertySet.Item("R4") Catch customPropertySet.Add("","R4") End Try Try prop = customPropertySet.Item("R4-M") Catch customPropertySet.Add("","R4-M") End Try |
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
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 je dost děsivé :) Pravilo selže, protože hned na prvním řádku je
a to v sestavě prostě neprojde. Níže je ten kód přepsaný do trochu lepšího tvaru včetně úpravy pro sestavu
|
||
![]() |
||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() |
|
díky, už mi to funguje.
![]() |
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() |
|
Je možné do tohoto ilogicu dopsat i část která by stejně vkládala textové parametry jako teď číselné parametry ?
|
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
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 |
![]() |
|
třeba takhle
|
||
![]() |
||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() |
|
OK, díky to je ono. Již to funguje a vypadá to takto:
Sub Main() Dim userParams As UserParameters = GetUserParams(ThisDoc.Document) EnsureParameter(userParams, "R1", comment:="NADPIS - ROZM�R") EnsureParameter(userParams, "R2", comment:="NADPIS - ROZM�R") EnsureParameter(userParams, "R3", comment:="NADPIS - ROZM�R") EnsureParameter(userParams, "R4", comment:="NADPIS - ROZM�R") EnsureParameter(userParams, "R5", comment:="NADPIS - ROZM�R") EnsureParameter(userParams, "PR1", comment:="POPIS - ROZM�R") EnsureParameter(userParams, "PR2", comment:="POPIS - ROZM�R") EnsureParameter(userParams, "PR3", comment:="POPIS - ROZM�R") EnsureParameter(userParams, "PR4", comment:="POPIS - ROZM�R") EnsureParameter(userParams, "PR5", comment:="POPIS - ROZM�R") EnsureParameterTEXT(userParams, "TEST", comment:="TESTOVAC� PARAMETR") Dim customPropertySet = ThisDoc.Document.PropertySets.Item("Inventor User Defined Properties") EnsureProperty(customPropertySet, "N1") EnsureProperty(customPropertySet, "N1-M") EnsureProperty(customPropertySet, "N2") EnsureProperty(customPropertySet, "N2-M") EnsureProperty(customPropertySet, "N3") EnsureProperty(customPropertySet, "N3-M") EnsureProperty(customPropertySet, "N4") EnsureProperty(customPropertySet, "N4-M") EnsureProperty(customPropertySet, "N5") EnsureProperty(customPropertySet, "N5-M") EnsureProperty(customPropertySet, "P1") EnsureProperty(customPropertySet, "P1-M") EnsureProperty(customPropertySet, "P2") EnsureProperty(customPropertySet, "P2-M") EnsureProperty(customPropertySet, "P3") EnsureProperty(customPropertySet, "P3-M") EnsureProperty(customPropertySet, "P4") EnsureProperty(customPropertySet, "P4-M") EnsureProperty(customPropertySet, "P5") EnsureProperty(customPropertySet, "P5-M") EnsureProperty(customPropertySet, "PR1") EnsureProperty(customPropertySet, "PR1-M") EnsureProperty(customPropertySet, "PR2") EnsureProperty(customPropertySet, "PR2-M") EnsureProperty(customPropertySet, "PR3") EnsureProperty(customPropertySet, "PR3-M") EnsureProperty(customPropertySet, "PR4") EnsureProperty(customPropertySet, "PR4-M") EnsureProperty(customPropertySet, "PR5") EnsureProperty(customPropertySet, "PR5-M") EnsureProperty(customPropertySet, "R1") EnsureProperty(customPropertySet, "R1-M") EnsureProperty(customPropertySet, "R2") EnsureProperty(customPropertySet, "R2-M") EnsureProperty(customPropertySet, "R3") EnsureProperty(customPropertySet, "R3-M") EnsureProperty(customPropertySet, "R4") EnsureProperty(customPropertySet, "R4-M") EnsureProperty(customPropertySet, "R5") EnsureProperty(customPropertySet, "R5-M") EnsureProperty(customPropertySet, "MAT") EnsureProperty(customPropertySet, "MAT-M") EnsureProperty(customPropertySet, "MAT2") EnsureProperty(customPropertySet, "MAT2-M") EnsureProperty(customPropertySet, "TYP1") EnsureProperty(customPropertySet, "TYP1-M") EnsureProperty(customPropertySet, "TYP2") EnsureProperty(customPropertySet, "TYP2-M") End Sub Function GetUserParams(doc As Document) As UserParameters If (doc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject) Then Dim asm As AssemblyDocument = doc Return asm.ComponentDefinition.Parameters.UserParameters ElseIf (doc.DocumentType = DocumentTypeEnum.kPartDocumentObject) Then Dim prt As PartDocument = doc Return prt.ComponentDefinition.Parameters.UserParameters Else Throw New ArgumentOutOfRangeException("Document can be AssemblyDocument or PartDocument") End If End Function Function EnsureParameter( userParams As UserParameters, paramName As String, Optional defaultValue As Double = 0, Optional units As String = "mm", Optional comment As String = "") As Parameter Dim p As Parameter Try p = userParams(paramName) Catch ex As Exception p = userParams.AddByValue(paramName, defaultValue, units) p.Comment = comment End Try Return p End Function Function EnsureParameterTEXT( userParams As UserParameters, paramName As String, Optional defaultValue As String= "", Optional comment As String = "") As Parameter Dim p As Parameter Try p = userParams(paramName) Catch ex As Exception p = userParams.AddByValue(paramName, defaultValue, "TEXT") p.Comment = comment End Try Return p End Function Function EnsureProperty(propertySet As PropertySet, propName As String, Optional defaultValue As String = "") As [Property] Dim p As [Property] Try p = propertySet(propName) Catch ex As Exception p = propertySet.Add(defaultValue,propName) End Try Return p End Function |
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() |
|
Napadá mě, že když už mám pravidlo které mi vytvoří všechny potřebné parametry a vlastnosti aby z nich jiné pravidlo mohlo poskládat texty. Nedalo by se na konec tohoto pravidla napsat příkaz?
Něco takového - Vlož do tohoto dokumentu externí pravidlo : 1) NADPIS 2) POPIS 3) MAT
|
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
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 |
![]() |
|
Zkuste se podívat na RunExternalRule
|
||
![]() |
||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() |
|
Ano to funguje když ho potřebuji spustit ale já bych ho chtěl uložit přímo do itp a iam. Pravidlo výše popsané mi připraví parametry a vlastnosti pro itp a iam, které jsou přeukládané ze starších projektů a ty je nemají. Nové již mají vše připravené v šablonách. Proto se snažím vytvořit si pravidlo které by mi po přeuložení starého modelu na nové pomohlo co nejvíce nastavit díl tak aby bez větších zásahů byl jako nová šablona.
|
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
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 |
![]() |
|
Používání interních pravidel v dokumentu není vhodná cesta.
Nejvíc se mi v praxi osvědčilo hlídání určité události nad dokumentem (nejčastěji před uložením) a na tuto událost spouštět externí pravidla. K tomu je v XTools přímo možnost nastavit pravidlo, které se má spouštět. Toto pravidlo pak může volat další pravidla atd... Důvody jsem tu už rozebíral mnohokrát, ale nejdůležitější je: Až (ne jestli!) bude potřeba v budoucnu změnit tato pravidla, budete mít opravdu velký problém. U externích to změníte na jednom místě a máte klid.
|
||
![]() |
||
Lukáš Záruba ![]() TOP uživatel ![]() Přihlášen: 02.lis.2007 Lokalita: ČR (SČ) Používám: inventor 2015 Stav: Offline Bodů: 429 |
![]() |
|
Ok, děkuji za doporučení.
Je tedy možné na konec tohoto pravidla napsat příkaz, která mi přiřadí jednotlivá externí pravidla k událostem při který se mají spouštět? viz výstřižek níže? |
||
Budu rád za radu i případně všelijaké postřehy.
|
||
![]() |
||
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 |
![]() |
|
Nevím, jestli je tohle někde zdokumentované.
Referenční příručka k iLogicu je dostupná tady: http://help.autodesk.com/view/INVNTOR/2019/ENU/?guid=GUID-AB9EE660-299E-408F-BBE1-AFE44C723F59 Možná to nějak půjde, ale nevím jak. Navíc tyhle spouštěče jsou opět uložené v dokumentu a pokud v budoucnu pravidlo nebude dostupné, nastane chyba. Pokud budete chtít další přidat, máte stejný problém, jako kdyby bylo pravidlo lokální. Já jsem pro tenhle účel napsal do XTools právě ty vlastní spouštěče, protože nejsou závislé na tom, aby byly uvedené v dokumentu, pokud v budoucnu zmizí, tak se nic nestane (takový stav je ošetřen), pokud přibydou, tak se jednoduše doplní. |
||
![]() |
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,539 sekund.