Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Nalezení nejbližší hodnoty z několika parametrů

UživatelPříspěvek
danikv

Poslat zprávu | Profil
Datum: 26.10. 2010 | Zobrazeno: 10966x
Konfigurace CATIA:

Text dotazu:
Dobrý den,
potřeboval bych napsat kód, tak aby našel nebližší hodnutu k danému číslu.

Např. mám parametr délky s hodnotou 6mm a a další parametry s hodnotami 0, 1, 3, 5, 8 mm - výsledek by měl být parametr s délkou 5mm.

Jak se bude chovat program pokud by se měl rozhodnout, kdyby hlavní číslo bylo 4mm a on měl určit, které z 3mm a 5mm je blíž.

Díky za pomoc

Ing Jan Cinert

Poslat zprávu | Profil
[#1237] | Publikováno: 26.10. 2010 - 11:48
Kde budou uložené ty další hodnoty délek? V dalších parametrech a vy z nich budete vybírat ten co je nejblíže dané hodnotě?

Možná by se dalo napsat jednoduché pravidlo (Rule), jinak bych to řešil makrem. Postupně projít jednotlivé hodnoty, pokaždé spočítat rozdíl od dané hodnoty a ukládat index prvku s nejmenším rozdílem a na konci vybrat hodnotu s tímto indexem.
Při shodném rozdílu (3 - 4 - 5) stanovit např. podmínku, že se bude brát hodnota blíže k nule.

Umíte s makry?
Jan Svoboda

Poslat zprávu | Profil
[#1238] | Publikováno: 26.10. 2010 - 11:50
Ahoj, potřebuješ napsat podmínku (Law) nebo máš nějaké makro do kterého to chceš dolnit? Na co přesně těmi vybranými parametry řídíš?
Jan Svoboda

Poslat zprávu | Profil
[#1239] | Publikováno: 26.10. 2010 - 11:56
... používám něco podobného (Law), hodnota x je vstupní parametr.

If (x<=8.5) { y = 3 }

Else If (x>8.5 and x<=10.5) { y = 4 }
Else If (x>10.5 and x<=11.5) { y = 5 }
Else If (x>11.5 and x<=15.5) { y = 6 }
Else If (x>15.5 and x<=18.5) { y = 8 }
Else If (x>18.5 and x<=20.5) { y = 10 }
Else If (x>20.5 and x<=26.5) { y = 12 }
Else If (x>26.5 and x<=34.5) { y = 16 }
Else If (x>34.5) { y = 20 }

Josef Landa

Poslat zprávu | Profil
[#3464] | Publikováno: 18.11. 2012 - 16:59
Dobrý den,
můžete sem prosím napsat přesný krátký příklad postupu jak udělat dva parametry s tím že např. parametr x je vstupní a y je výsledek podmínky jako výše v příspěvku?
If (x<=8.5) { y = 3 }
Stačí jen ty dva parametry a podmínka v Law bez geometrie.
Děkuji.
Ing Jan Cinert

Poslat zprávu | Profil
[#3466] | Publikováno: 18.11. 2012 - 18:44
  • 1. Vytvořte si dva parametry x a y, oba typu real.
  • 2. Spusťte Law editor
  • 3. V Law editoru si vytvořte dva parametry typu real pojmenované x_pro_law a y_pro_law. Tyto parametry platí jen uvnitř vlastního Law.
  • 4. Do Law editoru napište tento kód:
    If (x_pro_law <= 0)
    
  • {y_pro_law = 100}
  • Else
  • {y_pro_law = 200}
  • 5. Ukončete editor. Tím je Law (závislost) hotová. Ještě ji přejmenujte např. na Zavislost
  • 6. Spusťte formula editor, vyberte parametr y a přiřaďte mu formuli (nebo jen parvým tlačítkem nad oknem s editovaným parametrem
  • 7. Do řádku s definicí vztahu (formula) napište Relations\Zavislost->Evaluate(x)(

Tím jsme určili, že hodnota parametru y se bude řídit hodnotou parametru x podle závislosti definované v law Zavislost.

To je celé.
Josef Landa

Poslat zprávu | Profil
[#3467] | Publikováno: 18.11. 2012 - 20:39
Paráda, děkuji, už mi to pracuje.
Potřeboval sem základní příklad, abych pochopil princip.
Děkuji. Pěkný večer.


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.