Solve equations
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=16108
Datum vytištění: 12.kvě.2026 v 22:47
Téma: Solve equations
Odeslal: JurajI
Předmět: Solve equations
Datum odeslání: 13.lis.2012 v 09:07
Dobrý deň, chcem sa opýtať, ako sa dá spraviť, alebo či sa dá spraviť lisp ktorý počíta jednoduché lineárne rovnice? Vie mi s tým prosím niekto pomôcť?
|
Odpovědi:
Odeslal: Seiner
Datum odeslání: 13.lis.2012 v 09:23
|
No, podle mého se sice dá, jako v podstatě v jakémkoliv jiném programovacím jazyku. Ale já bych se do toho nepouštěl. Když jsem dělal v lispu dříve trochu složitější matematické výrazy, nebyl jsem schopný je po sobě pomalu ani zkontrolovat. Ono se marně neříká Lost in Stupid Parentheses :-).
A jde vám čistě o programování, nebo chcete i analýzu? Jak velká je ta soustava?
------------- Vítězslav Seiner
Chrudim
|
Odeslal: JurajI
Datum odeslání: 13.lis.2012 v 09:39
:) Sú to jednoduché rovnice o jednej neznámej. Ide v podstate o to, že potrebujem zistiť priesečník dvoch úsečiek v priestore. A nakoľko ho viem zistiť v lispe iba v rovine, tak ma napadlo, že ho zistím matematickým výpočtom. Lenže k tomu potrebujem aby mi lisp vedel vyrátať jednoduchú rovnicu :)
|
Odeslal: Seiner
Datum odeslání: 13.lis.2012 v 09:56
|
no ale pak není problém v řešení nějaké soustavy - tu si vyřešíte na papíře. Jde jen o to, přepsat do lispu ten výsledný výraz. To samozžejmě jde, ale jak jsem psal, výsledné příkazy jsou dost nepřehledné.
Třeba takhle vypadá přepis poměrně jendoduchého vzorečku:
(setq B (LIST (- 0 (*(/(SIN(/ PI 6))(COS(/ PI 6))) (* (/ s 2.)(-(/ 1(COS (/ PI 6)))1))))(CADR LL)))
A teď si zkontrolujte, jestli je to dobře přepsané :-) Ale pokud máte dost trpělivost, proč ne. Kdyžtak sem zkuste dát ten matematický výraz a vypíšeme soutěž, kdo ho přepíše správně do lispu :-)
------------- Vítězslav Seiner
Chrudim
|
Odeslal: Seiner
Datum odeslání: 13.lis.2012 v 10:39
|
Jen tak mezi námi, proč se stím moříte:
Finds the intersection of two lines
(inters pt1 pt2 pt3 pt4 [onseg])
All points are expressed in terms of the current UCS. If all four point arguments are 3D, inters checks for 3D intersection. If any of the points are 2D, inters projects the lines onto the current construction plane and checks only for 2D intersection
------------- Vítězslav Seiner
Chrudim
|
Odeslal: Vladimír Michl
Datum odeslání: 13.lis.2012 v 11:22
|
Neházejte flintu do žita :-)
V AutoLISPu jde řešit leccos. Viz třeba nástroj na řešení soustavy rovnic zapsaných přímo v textu výkresu:
hezké, ne?
Autorem je ale "machr" na AutoLISP. V případě zájmu o prostudování tohoto programového kódu si napište na náš support nebo na Facebook.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: vbehun
Datum odeslání: 13.lis.2012 v 21:38
V lispu počítá http://maxima.sourceforge.net/" rel="nofollow - Maxima
------------- =^..^=
|
Odeslal: Petrynka
Datum odeslání: 13.lis.2012 v 22:08
|
Jaký je vlastně rozdíl mezi Lispem a AutoLispem? Jsou programy v Lispu použitelné v AutoCADu?
|
Odeslal: Seiner
Datum odeslání: 13.lis.2012 v 22:42
http://en.wikipedia.org/wiki/AutoLISP" rel="nofollow - http://en.wikipedia.org/wiki/AutoLISP
------------- Vítězslav Seiner
Chrudim
|
Odeslal: Vladimír Michl
Datum odeslání: 13.lis.2012 v 23:02
Jiné varianty LISPu se od AutoLISPu (resp. aktuálního VisualLISPu) v AutoCADu dost liší a není možné LISP kód přebírat do AutoCADu bez jeho podstatných úprav.
------------- Vladimír Michl (moderátor) ARKANCE CZ - https://arkance.world - arkance.world (podpora viz helpdesk.arkance-systems.cz)
|
Odeslal: alfred
Datum odeslání: 14.lis.2012 v 07:30
Petrynka napsal(a):
Jaký je vlastně rozdíl mezi Lispem a AutoLispem? Jsou programy v Lispu použitelné v AutoCADu? |
Taky jsem to kdysi hledal. Zkusím to stručně a jednoduše shrnout, možná nebudu přesný, ale snad to postačí. LISP je obecný programovací jazyk s dlouhou historiií, který je do dnes používaný v různých operačních systémech. Základ z LISPu si převzaly některé další "odnože" (například AutoLisp, Script-fu, které používá GIMP, Emacs, ...). Společné jsou zásady pro zápis, syntaxe (tedy závorky a výše uvedený vtip o "ztracení ve stupidních závorkách" ), typy proměnných (hodně pracují s proměnou typu "list") možná některé příkazy (výpočty a práce s proměnnými, ...).
Liší se hlavně tím, že v jednotlivých odnožích je hromada (resp. většina) speciálních příkazů, které jsou použitelné jen v této odnoži. To je naprosto pochopitelné. Důležité tedy je, že program z LISPu jen tak nespustíte v AutoLispu a naopak. Program ze SCRIP-FU nespustíte v AutoCadu a naopak, atd. Pokud chcete programovat pro AutoCad, nemá moc smysl se s obyčejným LISPem zabývat. Doporučuji se rovnou podívat na VisualLisp, zejména využívat v AutoCadu integrované IDE.
|
Odeslal: JurajI
Datum odeslání: 14.lis.2012 v 13:53
Ďakujem za pomoc, nakoniec to spravím pomocou "Finds the intersection of two lines (inters pt1 pt2 pt3 pt4 [onseg])" bude to jednoduchšie :)
|
|