Zobrazit plnou verzi příspěvku: Paramatrie součásti

Jirizhk
22.01.2014, 17:56
Dobrý den,prosím, kdyby mi někdo poradil zda jde v inventoru vytvořit půllitr (sklenka), ve které, když bych měnil rozměr horní a dolní části součásti ( tabulka), aby objem sklenky zůstával 1/2 litru (v závislosti na výšce součásti). Děkuji
Jirizhk2014-01-23 22:22:37

maiklss
22.01.2014, 18:52
Jestli  budete mít namysli  čistě komolí  kužel  tak to  problém  není  ale pokud bude nějaká  zvláštní  geometrie tak  to  se rad přiučím:)

Vladimír Michl
22.01.2014, 21:08

Pro zvláštní geometrii jde použít iterační postupy využívající iLogic.

Jirizhk
22.01.2014, 22:27
Vyzkouším si to nejdřív na válci. Nejdřív jsem si myslel,že bych dal dvě kružnice od sebe vzdáleně jako součást a do ni adaptivně vložil válek a pak postupně ty dvě kružnice různě měnil. Zkusím podle nápovědy Přes parametry Ilogic.


Jirizhk
22.01.2014, 22:34
Prosím pomohl by jste mi s příkazem do Ilogic? If zvětším sp a sp2 parametry tak se změní délka vysunutí?

Vladimír Michl
22.01.2014, 23:01

Záleží jak je model vytvořen, stačí jakékoliv modelovací operace závislé na jednom či více parametrech. Ověření objemu pak ověříte přes iLogic a podle výsledku pak můžete programově dále upravovat parametry. Koncept je v anglickém tipu:http://www.cadforum.cz/cadforum_en/ilogic-adjusting-model-parameters-to-match-model-volume-or-mass-tip9659

Jirizhk
23.01.2014, 00:12
Jestli tomu pravidlu rozumím, takže jestli tomu dobře rozumím tak d1 přečtě jaký má nynější parametr. MessageBox.Show před a po funkci ILogic a ta se pak vynásobí koeficientem 1.10 a vznikne nová hodnota změní se vysunutí.ThisApplication.CommandManager.ControlDefinitions.Item("AppUpdateMassPropertiesCmd").Execute
myVolume = iProperties.Volume ' or Mass
MessageBox.Show("Volume before = " & myVolume, "iLogic")
d1 = Parameter("d1")
MessageBox.Show("d1 before = " & d1, "iLogic")
Parameter("d1")=d1 * 1.10
ThisDoc.Document.Rebuild()
d1 = Parameter("d1")
MessageBox.Show("d1 after = " & d1, "iLogic")
ThisApplication.CommandManager.ControlDefinitions.Item("AppUpdateMassPropertiesCmd").Execute
myVolume = iProperties.Volume ' or Mass
MessageBox.Show("Volume after = " & myVolume, "iLogic")

Cheff
23.01.2014, 09:16
Já osobně se zatím snažím iLogicu vyhýbat (teda přesněji, nemám jej tolik zažitý jako práci bez něj). Zde se bez něj lze obejít, ale je nutné objem vyjádřit "matematicky". Ale na druhou stranu výsledný objem máme stejně zadaný - a pouhé podělení základnou stačí pro válec, u "soudků" nebo jiných "patvarů" se stejně musí objem vyjádřit nějak jinak. Např. Odečtením "válcové části" od výsledného objemu, a z tohoto teprv dopočítávat výšku (s nějakou chybou...) Případně mě "programátoři" opravte, ale bez znalosti matematického vyjádření se stejně asi v iLogiku neobejdete - nebo snad ano?V parametrech se dá postupovat jednoduše:Zavedu uživatelský parametr Objem (když jsem líný, tak mu dám rovnou jednotku "l" = litr). Následně si vytvořím parametr Vyska [mm] (není nutný - šlo by napsat přímo do kóty, ale lépe se to opravuje, pokud by se daná kóta mazala...) Následně již jen pomocí matematiky vyjádřím danou výšku pomocí vzorce. Např. pro válec je to takto: round(Objem / ( pow(Prumer / 1 mm;2 ul) * 1 mm^2 * PI ) / 0,01 mm) * 0,01 mmZ toho round(xxx/0,01mm)*0,01mm je zaokrouhlení výsledku na 2 desetinná místapow(xxx/1;2)*1mm - je druhá mocnina (ekvivalent sqrt() a "^") - za ";" je mocnitel (odmocnitel)- tyto funkce potřebují bezrozměrný argument proto /1mm a následně výsledek opět přenásobuji 1mmPI = 3.141593.... Cheff2014-01-23 09:22:12

Jirizhk
23.01.2014, 10:25
[QUOTE=Cheff]Já osobně se zatím snažím iLogicu vyhýbat (teda přesněji, nemám jej tolik zažitý jako práci bez něj). Zde se bez něj lze obejít, ale je nutné objem vyjádřit "matematicky". Ale na druhou stranu výsledný objem máme stejně zadaný - a pouhé podělení základnou stačí pro válec, u "soudků" nebo jiných "patvarů" se stejně musí objem vyjádřit nějak jinak. Např. Odečtením "válcové části" od výsledného objemu, a z tohoto teprv dopočítávat výšku (s nějakou chybou...) Případně mě "programátoři" opravte, ale bez znalosti matematického vyjádření se stejně asi v iLogiku neobejdete - nebo snad ano?V parametrech se dá postupovat jednoduše:Zavedu uživatelský parametr Objem (když jsem líný, tak mu dám rovnou jednotku "l" = litr). Následně si vytvořím parametr Vyska [mm] (není nutný - šlo by napsat přímo do kóty, ale lépe se to opravuje, pokud by se daná kóta mazala...) Následně již jen pomocí matematiky vyjádřím danou výšku pomocí vzorce. Např. pro válec je to takto: round(Objem / ( pow(Prumer / 1 mm;2 ul) * 1 mm^2 * PI ) / 0,01 mm) * 0,01 mmZ toho round(xxx/0,01mm)*0,01mm je zaokrouhlení výsledku na 2 desetinná místapow(xxx/1;2)*1mm - je druhá mocnina (ekvivalent sqrt() a "^") - za ";" je mocnitel (odmocnitel)- tyto funkce potřebují bezrozměrný argument proto /1mm a následně výsledek opět přenásobuji 1mmPI = 3.141593.... [/QUOTE]To matematicky někde stranou na papír nebo ten výpočet round jde v inventoru?

Cheff
23.01.2014, 11:26
Výpočet je kompletně v InventoruPS: Samozřejmě, že se mi do vzorce musela vloudit chyba... - Při psaní vzorce jsem si neuvědomil, že zadávám průměr, takže výpočet má být s průměrem nikoli si poloměrem... (závislost výšky na průmeru)Tak sem alespoň dodám opravenej model... Objem.iptJo a pokud jsem to náhodou pochopil špatně a má to být závislost průměru na výšce tak je poloměr takto: round(pow(Objem / ( PI * Vyska * 1 ul );0,5 ul) / 0,01 mm) * 0,01 mmCheff2014-01-23 11:56:48

Vladimír Michl
23.01.2014, 11:34

Právě že onen iLogic kód umožňuje obejít se bez matematického výpočtu objemu a nechat Inventor ať si objem (nebo třeba hmotnost) výsledného, jakkoliv složitého tělesa zjistí sám. Pro triviální tvary bude jednodušší si parametr z objemu odvodit vzorečkem. K dotazu ke kódu - ano, d1 je parametr ovlivňující tvar součásti (parametrů může být i více). Pomocí jeho iterace (zmenšování/zvětšování) se pak lze dopracovat k požadovanému objemu.

Jirizhk
23.01.2014, 23:37
Nevím jestli jsem to dostatečně pobral, vidím to dost nereálně. Jde mi o nádobu tvaru komolého kužele, kde bude konstatní objem, zatím funguje díky....Jen teď je potřeba měnit horní a dolní průměr podstavy..Je tam možné i reakce v rámci vliv i na zkosení?Pokud změním tvar spodního průměru po vysunutí tak se mi změnou průměru dole změní výška.



Jirizhk2014-01-23 23:47:45

Cheff
24.01.2014, 10:39
Ano - model bude vytvořen např pomocí šablonování, nebo rotace. V přiloženém modelu bylo "jen" zobrazeno, jak parametricky vypočítat výšku. Takže je jen potřeba upravit výpočet výšky. Jednoduše ji vyjádřit z výpočtu pro objem komolého kužele... Pokud se použije zkrácený způsob pro umocnění "^" , tak je nutné si uvědomit, že potřebuje pracovat s bezrozměrným číslem... Takže nezapomenout na "likvidaci" jednotek (např. pro výsledek 4 nelze zapsat jen jako 2^2 a mít vísledek v mm - správně pro Inv je (2mm/1mm)^2ul*1mm ) Zbytek už je obyčejná matematika