Zobrazit plnou verzi příspěvku: problém s násobením

AlSt
04.02.2008, 16:24
Zdravím,narazil jsem na zajímavý problém kdy mi autocad "lže"  .Když na command line v autocadu napíšu (* 0.5 0.5) dostanu jako výstup 0.0.všimnul jsem si že to má nějakou souvislost se systémovým oddělovačem [. ,] pokud nastavím jako oddělovač "," tak je to OK pokud tečku tak to blbne.dále jsem si všimnul že pokud ve VLIDE načtu projekt pomocí nabídky v "padacím menu" tak je to OK, a pokud otevřu projekt do dialogu tak to začne blbnout.Díval jsem se do konference a nic podobného jsem tam neviděl. Možná že to je pouze důsledek nějakého jiného problému.prosím o nasměrování k řešení problémuS pozdravemAleš Staněk

Vladimír Michl
04.02.2008, 18:26
To máte asi opravdu spíš jako důsledek jiného problému. Funguje to yd8 se normálně.
 
Zřejmě máte předefinovanou funkci "*". Zkuste si třeba:
[CODE]
(defun * (a b)(strcat "nenásobím, sčítám: " (rtos(+ a b))))
[/CODE]
a pak (* 0.5 0.5)

AlSt
05.02.2008, 08:34
Zdravím pane Michl,myslím si že funkci nemám předefinovanou. Zkusím to říct jinak. Já jsem tu funkci určitě nepředefinoval pokud je nějak poškozená troufám si říct že k tomu muselo dojít nějakou chybou nebo zpracováním chybového stavu v IDE.(* 3.0 3.0) -> 9.0(* 3.5 3.5) -> 9.0vypadá to jako by lisp nepracoval s desetinou části čísla.Problém nastane když v prostředí visuallispu otevřu jakýkoliv projekt "do dialogu".A dále pořád platí že pokud změním systémový oddělovač z čárky na tečku tak to funguje korektně.S pozdravemStaněk

Vladimír Michl
05.02.2008, 09:38
Nevím, mám systémový oddělovač "čárka" (asi jako většina českých uživatelů) a násobení funguje - jeho případná nefunkčnost by ovlivnila většinu LISP aplikací.
Zkuste restartovat AutoCAD a všechny operace provádět v IDE - to ochraňuje předdefinované symboly.

Ferdinand
05.02.2008, 13:39
Na kolik desetinných míst máte nastaveny jednotky výkresu? Zkuste použít interní funkci AutoCADu _cal - to pak píšete jako na "normální" kalkulačce (a ani nemusíte psát "0.5" , stačí ".5" ):
Command: _cal
>> Expression: .5*.5 <enter>0.25Ferdinand2008-02-05 13:41:52

AlSt
06.02.2008, 13:03
na čtyři desetinná místa a problém ovlivňuje i chování příkazu calc.

AlSt
06.02.2008, 13:14
Problém přetrvává i po restartu počítače tak i po restartu atutocadu. V momentě kdy v IDE lisp otevřu projekt tak se chyba objeví. Asi zkusím ještě přeinstalovat AutoCAD. Pracuji pouze v IDE lispu.

Vladimír Michl
06.02.2008, 13:25
Přeinstalovat to můžete, ale spíš bych zkusil vyhodit všechny případné načítávané .LSP, .VLX a .FAS programy (při spuštění). Podle mně si prostě někde předefinováváte symbol "*".

AlSt
07.02.2008, 09:22
Nenačítám vědomě žádné soubory. Předpokládám že chyba by se projevila okamžitě po otevření souboru kdy se provádí autoload. Ale u mně vše funguje korektně až do doby kdy v IDE LISPu otevřu libovolný projekt.

michaelflyer
13.02.2008, 12:00
Možno je to blbosť... nemáte tam niekde zadané „fix“?????
Doslova oddeľuje číslo za desatinnou čiarkou a vyhadzuje to preč!

AlSt
17.04.2008, 11:02
Dobrý den,problém se mi nepodařilo odstranit ani přeinstalovaním autocadu, ale objevil jsem další spojitosti. Problém není v násobení jak jsem si zprvu mysle.Pokud otevřu ve VLIDE libovolný projekt a načtu jej. Následně v konzoli napíšu libovolné reálné číslo a dám entr. Tak mi autocad vrací reálné číslo, ale s odříznutou desetinou částí. Jako bych použil na hodnotu příkaz fix. Problém se mi začal objevovat až na verzích autocadu 2007 a 2008. Setkal se už někdo s podobnou chybou? Může na to mít vliv DLL s dialogy vytvořené ve VB6, které používám řadu let bez problémů.S pozdravemAleš Staněk

Vladimír Michl
18.04.2008, 08:42
Ne, ale je možné, že ve VLIDE nastal nějaký problém ve formátování výsledků. Na samotný běh programu (v AutoCADu) by to ale nemělo mít žádný vliv.