Vytisknout stránku | Zavřít okno

Sinusoida-zdroják

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=2382
Datum vytištění: 13.kvě.2026 v 16:51


Téma: Sinusoida-zdroják
Odeslal: Honzicek
Předmět: Sinusoida-zdroják
Datum odeslání: 02.dub.2006 v 22:53
já fakt nevim...jsem totální bukvice..kdyžtak pište co je špatně!
postup..(podle mě)
1.zadám počáteční bod: (defun c:sinusoida()
                                         (setq bod(getpoint"Zadejte počáteční bod:))
                                           )
2.načtu jeho souřadnice (setq x (car bod))
                                      (setq y (cadr bod))
3. souřadnice další bodů jsou x = x(počáteční) + interval(cca 2 * PI/100)
                                              y=sin(x)
4.pak vytvořím bod
5.fce repeat ve které je obsažen příkaz úsečka který pospojuje vzniklé body

nějak takhle by to mělo být ne?

< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">



Odpovědi:
Odeslal: vknop
Datum odeslání: 02.dub.2006 v 23:39

Původně odeslal(a) Honzicek Honzicek napsal(a):

4.pak vytvořím bod
5.fce repeat ve které je obsažen příkaz úsečka který pospojuje vzniklé body

Na co bod?

...
(command "_line") ;;příp. pline
(repeat Pocet
  (setq x... 
  (command (list x (sin x)))
)
(command "")
...

 



Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 06:54

Ten prikaz pro bod asi pochazi z me upravy lispu pro epicykloidu. Snazil jsem se jen rozchodit zaslany kod a ne to cele predelat. V nem se v cyklu vzdy vypocitaly souradnice a pak bylo neco jako (command "_Line" "@" (list x y)). To celkem chodilo, akorat na zacatku to mělo "vocasek", protoze chybel ten prvni bod.
  Vase reseni je nesporne cistci a elegantnejsi.



-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 08:11
já se z toho zbláznim těžší křivky  nějak sesmolim a tuhle ne...
moc to teda nechápu myslel jsem že by to mohlo bejt nějak takhle:
defun C:sin()
  (setq bod(getpoint"Zadejte pocatecni bod sinusoidy:"))
  (setq pocet (getreal"Zadejte pocet cyklu:"))
  (setq y (cadr bod))
  (setq x (car bod))
  (setq int (/(* pocet 2. PI) 100.))
  (setq y (sin(x))
  (setq x (+ x int))
  (setq a int)     
  (command "_line" list(x y))
    (repeat 100
      (setq a int)
      (setq y (sin(x))
          (setq x (+ x a))
          (command "_line" "@" (list x y)"")
        );of repeat
 (command "_REGEN")
    );of function

ale nefunguje to...
< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 08:15

Aniz bych to nejak hloubeji studoval list(x y) v lispu neni nic.

(list x y)



-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 08:21
na to už jsem taky přišel ale nic to neřeší mám chybu  < id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/"> na vstupu ...závorky jsou v pořádku..


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 08:27

Asi bude taky problém, že jste použil pro svoji funkci jméno sin. (A pak ji voléte jako standardní)



-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 08:32
tak bohužel ani tím to není...,
není možný že je to nějak celé blbě?U mě bych se tomu ani nedivil..,nevíte jak vypnout ty hlášky co sem hází Kerio? < id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 09:12

To máte těžký, pane kolego. Pomalu co řádek, to chyba. Kreslí tohle:

(defun C:s()
  (setq bod(getpoint"Zadejte pocatecni bod sinusoidy:"))
  (setq pocet (getreal"Zadejte pocet cyklu:"))
  (setq y1 (cadr bod))
  (setq x1 (car bod))
  (setq int (/(* pocet 2. PI) 100.))
  (setq x 0)
  (command "_line")
    (repeat 100
      (setq y (sin x))
          (command (list (+ x x1) (+ y y1)))
          (setq x (+ x int))
        );of repeat
     (command "")
 (command "_REGEN")
    )



-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 09:37
Děkuji mnohokrát opravdu moc jste mi pomohl!

< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 10:37
No, vzhledem k tomu, že se jedná o školní úlohu, tak si nejsem až tak jist, jestli jsem Vám pomohl. Snad si to aspoň prohlídnete a podíváte se, proč Vám to předtím nechodilo.

-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 10:56
opravdu mi top pomohlo  kapku jsem to pozměnil a jsem spokojenej..
(defun C:sinusoidaa()
  (setq bod(getpoint"Zadejte pocatecni bod sinusoidy:"))
  (setq pocet (getreal"Zadejte pocet cyklu:"))
  (setq a (getreal"Zadejte číslo A: A*sin(B)"))
  (setq b (getreal"Zadejte číslo B: A*sin(B)"))
  (setq y1 (cadr bod))
  (setq x1 (car bod))
  (setq int (/(* pocet 2. PI) 300.))
  (setq x 0)
  (command"_COLOR" "_BLUE")
  (command "_line")
    (repeat 300
      (setq y (* (sin (* x b))a))
          (command (list (+ x x1) (+ y y1)))
          (setq x (+ x int))
        );of repeat
     (command "")
 (command "_COLOR" "_RED")
 (command "_line" (list (car bod) (cadr bod)) (list (car bod)(+(cadr bod) 20.)) "")
 (command "_line" (list (+(car bod) 50.) (cadr bod)) (list (car bod)(cadr bod)) "")
 (command "_REGEN")
    )

< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 11:00
tak si tam ještě dejte na začátek výzev \n - ať se vám to necpe do jednoho řádku.

-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 11:03
OK,děkuji,nechtěl byste ten program vyzkoušet...jen tak jestli tam někde není nějaká blbost?Jen tak letem světem jestli Vás to nezdržuje

< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 11:58

Je to blbě :-(

Jestli si chcete zadat měřítka v ose x a y, pak PŘECE NEMŮŽETE NÁSOBIT MĚŘÍTKEM x, ale až souřadnici !!!

 



-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 12:08
eh tedka si nejsem jistej jestli Vás chápu...myslim to takhle  mám třeba funkci    3sin(2x) pro fci sin(x) jsou souřadnice  y=sin(x),x=x1+int
            takže pro fci 3sin(2x)   by to mělo bejt y=(*(sin(* 2 x))3)

                                                                     < id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/"> < id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Seiner
Datum odeslání: 03.dub.2006 v 12:14

Ty osy jsem Vám taky opravil - když si zadáváte měřítka a počty cyklů, je přece hloupost mít pevnou délku os.

(defun C:sinusoidaa()
  (setq bod(getpoint"\nZadejte pocatecni bod sinusoidy:"))
  (setq pocet (getreal"\nZadejte pocet cyklu:"))
  (setq a (getreal"\nZadejte číslo A: A*sin(B)"))
  (setq b (getreal"\nZadejte číslo B: A*sin(B)"))
  (setq y1 (cadr bod))
  (setq x1 (car bod))
  (setq int (/(* pocet 2. PI) 300.))
  (setq x 0)
  (command"_COLOR" "_BLUE")
  (command "_line")
    (repeat 300
      (setq y  (sin  x ))
          (command (list (+ x1 (* b x)) (+ (* a y) y1)))
          (setq x (+ x int))
        );of repeat
     (command "")
 (command "_COLOR" "_RED")
 (command "_line" (list (car bod) (cadr bod)) (list (car bod)  (+(cadr bod) (* 1.1 a))) "")
 (command "_line" (list (+(car bod) (* pocet 2. PI b)) (cadr bod)) (list (car bod)(cadr bod)) "")
 (command "_REGEN")
    )



-------------
Vítězslav Seiner

Chrudim


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 12:22
Mno to já jsem to chtěl  mít jen jako náznak...ale uznávám že takhle je to mnohem lepší < id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">


Odeslal: Honzicek
Datum odeslání: 03.dub.2006 v 12:49

< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/"> uploads/Honzicek/2006-04-03_124916_hotovo.LSP - 2006-04-03_124916_hotovo.LSP
podíval by jste se...doufám že to je bez chyb..


Odeslal: Neuthron
Datum odeslání: 20.kvě.2006 v 00:22
pánové asi sem debil ale jaksi bych to potřeboval vysvětlit jednodušším zpusoben kde co zadám a tak hrozně rad bych chtěl vědět jak podle nějakého mustru sestrojím jakoukoli fci podle Vás nevím ani jak začít .... šlo by to nějak napsat?

-------------
AutoCAD 2005



Vytisknout stránku | Zavřít okno