Vytisknout stránku | Zavřít okno

LISP - ulohy

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=778
Datum vytištění: 12.čer.2026 v 01:29


Téma: LISP - ulohy
Odeslal: PepaR
Předmět: LISP - ulohy
Datum odeslání: 29.dub.2005 v 12:16
Dobrý den, nemohl by mi prosím někdo pomoci s následuícími LISPy? Předem děkuji.
 
1.
Do čtverce A je vepsán čtverec B, jehož vrcholy jsou body, které půlí strany čtverce A a do čtverce B je vepsán čtverec C, jehož vrcholy půlí strany čtverce B. Vytvořte v AutoLISPu program, který vyzve k zadání strany a čtverce A a všechny tři čtverce vykreslí. Program také zobrazí, čemu se rovná poměr obsahu čtverce A ku obsahu čtverce B ku obsahu čtverce C (A:B:C).


2.
Vytvořte v AutoLISPu program, který vyzve k zadání délky hrany a krychle ABCDA’B’C’D’ a krychli vykreslí. Program nakreslí rovinu KLMNOP, jejíž body leží ve středech hran krychle a vypočítá obvod řezné plochy pomocí a i číselně pro konkrétní krychli.



Odpovědi:
Odeslal: Seiner
Datum odeslání: 29.dub.2005 v 12:23
IMHO se jedná o domácí cvičení (seminární práci). Nechcete se o to aspoň pokusit a zeptat se, až nebudete vědět? :-)


Odeslal: PepaR
Datum odeslání: 29.dub.2005 v 12:26
Není to pro mne, mám na koleji známého který se v tom značně topí a bude rád když si dodělá projekt z C++. Já programátor LISPu nejsem, jsem jen stavař ale napadlo mě že někdo z fóra bude tak schopný a pomůže... údajně by to mělo být jednoduché avšak to já nedokážu posoudit.
 
S pozdravem
Pepa


Odeslal: orlik
Datum odeslání: 05.kvě.2005 v 13:30

Jen tak pro zajimavost jsem si vybral jednodussi z uloh:

(defun c:ctver ( / osmod a a1 a2 c1 c2 )

  (setq osmod (getvar "OSMODE"))
  (setvar "OSMODE" 0)  ;vynulovat uchopeni

  (setq a (getreal "\nZadej stranu ctverce A: "))

  (setq a1 (/ a 2.0) a2 (* a1 -1.0))
  (setq c1 (/ a1 2.0) c2 (* c1 -1.0))

  (setq pt1a (list a2 a2 0.0) pt2a (list a1 a2 0.0) pt3a (list a1 a1 0.0) pt4a (list a2 a1 0.0))
  (setq pt1b (list 0.0 a2 0.0) pt2b (list a1 0.0 0.0) pt3b (list 0.0 a1 0.0) pt4b (list a2 0.0 0.0))
  (setq pt1c (list c2 c2 0.0) pt2c (list c1 c2 0.0) pt3c (list c1 c1 0.0) pt4c (list c2 c1 0.0))

  (command "_line" pt1a pt2a pt3a pt4a pt1a "")
  (command "_line" pt1b pt2b pt3b pt4b pt1b "")
  (command "_line" pt1c pt2c pt3c pt4c pt1c "")

  (setq d1 (distance pt1a pt2a) S1 (* d1 d1))
  (setq d1 (distance pt1b pt2b) S2 (* d1 d1))
  (setq d1 (distance pt1c pt2c) S3 (* d1 d1))


  (princ)
  (princ (strcat (rtos (/ S1 S3) 2 2) " : " (rtos (/ S2 S3) 2 2) " : " (rtos (/ S3 S3) 2 2)))
  (princ)

  (setvar "OSMODE" osmod)

)

Zde je maly navod k 1. uloze. K druhe ne ze by se mi nechtelo, ale nerozumel jsem zadani.

 




Vytisknout stránku | Zavřít okno