Zobrazit plnou verzi příspěvku: Vyplnění formuláře

dusek
10.06.2012, 15:02
Dobrý den,mám vytvořen globální formulář na vyplnění iVlastností tělesa a modelu. Modely mám řízené parametry. Když jsem chtěl vyplnit vlastnosti, tak jsem si otevřel iVlastnosti a tam vyplnil vlastnost ve formátu "=<delka>x<sirka>x<vyska>". Pokud jsem chtěl vlastnost přepsat, udělal jsem stejný postup a vše běželo jak má. Pokud mám ale nastavené vyplňování pomocí formuláře, když vyplním vlastnost formátem "=<delka>x<sirka>x<vyska>", tak se mi ji už příště nepodaří přepsat, stále mi to vrací původní hodnotu. Marně se snažím najít něco v nastavení, takže se chci zeptat jestli to jde nějak řešit?DíkyV.D.


Navara
11.06.2012, 10:29
Tak tohle už je trochu oříšek. Problém je v tom, jak Inventor sám vnitřně pracuje s iVlastnostmi.
Na úrovni API má každá iVlastnost dvě tzv. vlastnosti Value a Expression
Ve vlastnosti Value je uložena výsledná hodnota zobrazovaná v dialogu, na výkrese atd.
Ve vlastnosti Expression je uložen buď výraz ve formátu např.: "=<Part Number>",
nebo statická hodnota shodná s vlastností Value např.: 20120611-01
iLogic standardně upravuje pouze vlastnost Value. Pokud je ale ve vlastnosti Expression cokoli začínající "=", má to přednost před ručním přepsáním hodnoty.
Abyste mohli použít dialog iLogicu, musíte si vytvořit pomocnou vlastnost zda se má přepsat hodnota výrazu a potom postupovat následujícím způsobem.
- uložit stávající hodnotu Expression
- uložit stávající hodnotu Value
- odstranit hodnotu z vlastnosti Expression
- zobrazit dialog
- na základě vlastnosti zda se má přepsat výraz buď nechat výsledek formuláře, nebo zapsat zpátky původní hodnotu výrazu
 
Podrobnosti najdete v komentovaném kódu v příloze
uploads/20120611_102757_iPropertyExpres.iptNavara2012-06-11 10:30:15

hoboj
11.10.2012, 20:17
Možná dostanu stejnou odpověď.Dělám iSoučást, která má v iVlastnostech zapsaný pomocí funkce rozměr v uživatelských vlastnostech a pokud vytvořím iSoučást, musel bych přepsat ve všech kolonkách rozměry a už funkce v dané součást nechová jako řízená funkce. Takže když bych si tuto součást nahrál do OC a poté si ji vytáhnul a změnil parametr, např. průměr, tak by mi zůstala hodnota v iVlastnostech stará a musel bych pokaždé kontrolovat. Lze to nějak provézt? 

hoboj
07.11.2012, 13:24
Nebo, jak zabránit přepsání uživatelských iVlastností?