Vytisknout stránku | Zavřít okno

problém s násobením

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=5944
Datum vytištění: 14.srp.2026 v 12:31


Téma: problém s násobením
Odeslal: AlSt
Předmět: problém s násobením
Datum odeslání: 04.úno.2008 v 16:24
Zdravím,
narazil jsem na zajímavý problém kdy mi autocad "lže" Smile .
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ému

S pozdravem

Aleš Staněk



Odpovědi:
Odeslal: Vladimír Michl
Datum odeslání: 04.úno.2008 v 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:

(defun * (a b)(strcat "nenásobím, sčítám: " (rtos(+ a b))))
a pak (* 0.5 0.5)


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: AlSt
Datum odeslání: 05.úno.2008 v 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.0

vypadá 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 pozdravem

Staněk


Odeslal: Vladimír Michl
Datum odeslání: 05.úno.2008 v 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.


-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Ferdinand
Datum odeslání: 05.úno.2008 v 13:39
Na kolik desetinných míst máte nastaveny jednotky výkresu? LampZkuste 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.25


-------------
-FerTh-


Odeslal: AlSt
Datum odeslání: 06.úno.2008 v 13:03
na čtyři desetinná místa a problém ovlivňuje i chování příkazu calc.


Odeslal: AlSt
Datum odeslání: 06.úno.2008 v 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.


Odeslal: Vladimír Michl
Datum odeslání: 06.úno.2008 v 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 "*".

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: AlSt
Datum odeslání: 07.úno.2008 v 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.


Odeslal: michaelflyer
Datum odeslání: 13.úno.2008 v 12:00
Možno je to blbosť... nemáte tam niekde zadané „fix“?????
Doslova oddeľuje číslo za desatinnou čiarkou a vyhadzuje to preč!


Odeslal: AlSt
Datum odeslání: 17.dub.2008 v 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 pozdravem


Aleš Staněk


Odeslal: Vladimír Michl
Datum odeslání: 18.dub.2008 v 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.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)



Vytisknout stránku | Zavřít okno