Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 2686 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD diskuze, rady, výměna zkušeností

 
CAD Fórum - Homepage Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion 360, 3ds Max a s dalšími CAD aplikacemi. Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy Arkance Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoautolisp

 Odpovědět Odpovědět archiv
Autor
Honzicek Zobrazit panel
Diskutér
Diskutér

Přihlášen: 27.úno.2006
Stav: Offline
Bodů: 32
Přímý odkaz na tuto zprávu Téma: autolisp
    Zasláno: 29.bře.2006 v 14:27
Zdrawím,chtěl bych se zeptat jestli je nějaký speciální příkaz pro opakování již provedeného úkonu.
PŘ:
spustím soubor.lsp
provedu zadání parametrů
provede se třeba nakreslení nějakého obrazce
a program se zavře.

nevím zda by to šlo řešit třeba jako v Pascalu funkcí repeat until

a ještě bych se chtěl zeptat jestli je v lispu nějaký příkaz který smaže celý výkres?

Kdyžtak děkuji za odpověď.
Zpět nahoru
Ondrejd Zobrazit panel
Diskutér
Diskutér

Přihlášen: 08.říj.2004
Lokalita: ČR (PA)
Používám:
AutoCAD2012,Invertor10
Stav: Offline
Bodů: 34
Přímý odkaz na tuto zprávu Zasláno: 29.bře.2006 v 14:57

To záleží, jak to máte napsané.

Pokud u jména funkce použijete c:jmeno_funkce, tak se to může opakovat jako příkaz AutoCADu, tj Enter nebo pravé tlačítko myši.

A nebo tam musíte dát cyklus (while (= nil (getstring))..

 

S pozdravem

Ondřej Doležal

Ing. Ondřej Doležal
Zpět nahoru
Ondrejd Zobrazit panel
Diskutér
Diskutér

Přihlášen: 08.říj.2004
Lokalita: ČR (PA)
Používám:
AutoCAD2012,Invertor10
Stav: Offline
Bodů: 34
Přímý odkaz na tuto zprávu Zasláno: 29.bře.2006 v 15:02

Mazání všech entit:

(command "_erase" "_all" "")

nebo

(setq SsSet (ssget "_X"))

(while (/= nil (setq EntityName (ssname SsSet 0)))(entdel EntityName)(setq SsSet (ssdel EntityName SsSet)))

S pozdravem

Ondřej Doležal

Ing. Ondřej Doležal
Zpět nahoru
Honzicek Zobrazit panel
Diskutér
Diskutér

Přihlášen: 27.úno.2006
Stav: Offline
Bodů: 32
Přímý odkaz na tuto zprávu Zasláno: 29.bře.2006 v 15:27
mám to napsáno takto....
(defun c:tk ()
  (initget "CY EP HYP EV ARCH  ")
  (setq word (getkword "Zadejte druh krivky:(CYkloida EPicykloida HYPocykloida EVolventa ARCHimedova-spirála)"))
  (cond ((= word "CY")   (setq r(getreal"poloměr tvořící kružnice:"))
         &nbs p;         &nbs p;     (setq d(getreal"vzdálenost bodu:"))
         &nbs p;         &nbs p;     (setq pocet (getreal"Zadejte pocet cyklu:"))
          &n bsp;          (setq bod(getpoint"Zadejte počáteční bod odvalovací úsečky:"))
          &n bsp;          (command "úsečka" (list (car bod) (cadr bod)) (list (* (car bod) 1.2) (cadr bod)) "")                                
         &nbs p;         &nbs p;     (setq t1 0)
         &nbs p;         &nbs p;     (setq t2 (* pocet Pi))
         &nbs p;         &nbs p;     (setq int (/ (- t2 t1) 100.0))
         &nbs p;         &nbs p;     (setq a t1)
         &nbs p;         &nbs p;     (setq x (-(* r a)(* d (sin a))))
         &nbs p;         &nbs p;     (setq y (- r (* d (cos a))))        & nbsp;       
         &nbs p;         &nbs p;     (setq x (+ x (car bod)))
         &nbs p;         &nbs p;     (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;     (command "bod" (list x y))
         &nbs p;         &nbs p;         (repeat 100
         &nbs p;         &nbs p;         &nbs p;   (setq a (+ int a))
         &nbs p;         &nbs p;         &nbs p;   (setq x (-(* r a)(* d (sin a))))
         &nbs p;         &nbs p;         &nbs p;   (setq y (- r(* d(cos a))))
         &nbs p;         &nbs p;         &nbs p;   (setq x (+ x (car bod)))
         &nbs p;         &nbs p;         &nbs p;   (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;         &nbs p;   (command "úsečka" "@" (list x y) "")
         &nbs p;         &nbs p;         &nbs p;         &nbs p;  )
         &nbs p;         &nbs p;     (command "regen")
          &n bsp;          (setq part 1))

         ((= word "EP")  (setq a(getreal"Zadejte poloměr pevné kružnice:"))
         &nbs p;         &nbs p;     (setq b(getreal"Zadejte poloměr kutálející se kružnice:"))
         &nbs p;         &nbs p;     (setq pocet (getreal"Zadejte pocet cyklu:"))
         &nbs p;         &nbs p;     (setq bod (getpoint"Zadejte bod"))
         &nbs p;         &nbs p;     (setq t1 0)      
         &nbs p;         &nbs p;     (setq t2 (* pocet Pi))
         &nbs p;         &nbs p;     (setq int (/ (- t2 t1) 100.0))
         &nbs p;         &nbs p;     (setq c t1)
         &nbs p;         &nbs p;     (setq x (-(* (+ a b) (cos c))(* b( cos (* (/ (+ a b) b) c)))))
         &nbs p;         &nbs p;     (setq y (-(* (+ a b) (sin c))(* b( sin (* (/ (+ a b) b) c)))))
         &nbs p;         &nbs p;     (setq x (+ x (car bod)))
         &nbs p;         &nbs p;     (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;     (command "_POINT" (list x y))
         &nbs p;         &nbs p;       (repeat 100 
         &nbs p;         &nbs p;         (setq c (+ int c))
         &nbs p;         &nbs p;         (setq x (-(* (+ a b) (cos c))(* b( cos (* (/ (+ a b) b) c)))))
         &nbs p;         &nbs p;         (setq y (-(* (+ a b) (sin c))(* b( sin (* (/ (+ a b) b) c)))))
         &nbs p;         &nbs p;         (setq x (+ x (car bod)))
         &nbs p;         &nbs p;          (s etq y (+ y (cadr bod)))
         &nbs p;         &nbs p;         (command "úsečka" "@" (list x y) "")
         &nbs p;         &nbs p;         &nbs p;        )
         &nbs p;         &nbs p;      (command "_CIRCLE" (list (car bod) (cadr bod)) a)
         &nbs p;         &nbs p;      (command "regen")
          &n bsp;         &n bsp; (setq part 2))

    ((= word "HYP")  (setq a(getreal"Zadejte poloměr pevné kružnice:"))
         &nbs p;         &nbs p;     (setq b(getreal"Zadejte poloměr kutálející se kružnice:"))
         &nbs p;         &nbs p;     (setq pocet (getreal"Zadejte pocet cyklu:"))
         &nbs p;         &nbs p;     (setq bod (getpoint"Zadejte bod:"))
         &nbs p;         &nbs p;     (setq t1 0)      
         &nbs p;         &nbs p;     (setq t2 (* pocet PI))
         &nbs p;         &nbs p;     (setq int (/ (- t2 t1) 100.0))
         &nbs p;         &nbs p;     (setq c t1)
         &nbs p;         &nbs p;     (setq x (+(* (- a b) (cos c))(* b( cos (* (/ (- a b) b) c)))))
         &nbs p;         &nbs p;     (setq y (-(* (- a b) (sin c))(* b( sin (* (/ (- a b) b) c)))))
         &nbs p;         &nbs p;     (setq x (+ x (car bod)))
         &nbs p;         &nbs p;     (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;     (command "_POINT" (list x y))
         &nbs p;         &nbs p;       (repeat 100 
         &nbs p;         &nbs p;         (setq c (+ int c))
         &nbs p;         &nbs p;         (setq x (+(* (- a b) (cos c))(* b( cos (* (/ (- a b) b) c)))))
         &nbs p;         &nbs p;         (setq y (-(* (- a b) (sin c))(* b( sin (* (/ (- a b) b) c)))))
         &nbs p;         &nbs p;         (setq x (+ x (car bod)))
         &nbs p;         &nbs p;         (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;      (command "úsečka" "@" (list x y) "")
         &nbs p;         &nbs p;         &nbs p;      )
         &nbs p;         &nbs p;      (command "_CIRCLE" (list (car bod) (cadr bod)) a)
         &nbs p;         &nbs p;      (command "regen")
          &n bsp;         &n bsp; (setq part 3))

       ((= word "EV")     (setq r (getreal"Zadejte poloměr:"))
         &nbs p;         &nbs p;      (setq d (getreal"Zadejte průměr:"))
         &nbs p;         &nbs p;      (setq pocet (getreal"Zadejte pocet cyklu:"))
         &nbs p;         &nbs p;      (setq bod (getpoint"Zadejte bod:"))
         &nbs p;         &nbs p;      (setq t1 0)
         &nbs p;         &nbs p;      (setq t2 (* pocet PI))
         &nbs p;         &nbs p;      (setq int (/(- t2 t1) 100.0))
         &nbs p;         &nbs p;      (setq c t1)
         &nbs p;         &nbs p;      (setq x  (+(*(+ r d) (cos c)) (* (* r c) (sin c))))
         &nbs p;         &nbs p;      (setq y  (-(*(+ r d) (sin c)) (* (* r c) (cos c))))
         &nbs p;         &nbs p;      (setq x (+ x (car bod)))
         &nbs p;         &nbs p;      (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;      (command "_POINT" (list x y))
         &nbs p;         &nbs p;        (repeat 100
         &nbs p;         &nbs p;          (s etq c (+ int c))
         &nbs p;         &nbs p;          (s etq x  (+(*(+ r d) (cos c)) (* (* r c) (sin c))))
         &nbs p;         &nbs p;          (s etq y  (-(*(+ r d) (sin c)) (* (* r c) (cos c))))
         &nbs p;         &nbs p;          (s etq x (+ x (car bod)))
         &nbs p;         &nbs p;          (s etq y (+ y (cadr bod)))
         &nbs p;         &nbs p;          (c ommand "úsečka" "@" (list x y) "")
         &nbs p;         &nbs p;         &nbs p;          )
         &nbs p;         &nbs p;      (command "regen")
          &n bsp;         &n bsp; (setq part 4))
   
    ((= word "ARCH")   (setq r(getreal"Zadejte poloměr Archimedovy spirály:"))
         &nbs p;         &nbs p;       (setq pocet (getreal"Zadejte pocet cyklu:"))
         &nbs p;         &nbs p;       (setq bod (getpoint"Zadejte bod:"))
         &nbs p;         &nbs p;       (setq t1 0)
         &nbs p;         &nbs p;       (setq t2 (* pocet PI))
         &nbs p;         &nbs p;       (setq int (/(- t2 t1) 100.0))
         &nbs p;         &nbs p;       (setq c t1)
         &nbs p;         &nbs p;       (setq x (* (* r c) (sin c)))
         &nbs p;         &nbs p;       (setq y (* (* r c) (cos c)))
         &nbs p;         &nbs p;       (setq x (+ x (car bod)))
         &nbs p;         &nbs p;       (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;       (command "_POINT" (list x y) )
         &nbs p;         &nbs p;         (repeat 100
         &nbs p;         &nbs p;         &nbs p; (setq c (+ int c))
         &nbs p;         &nbs p;         &nbs p; (setq x (* (* r c) (sin c)))
         &nbs p;         &nbs p;         &nbs p; (setq y (* (* r c) (cos c)))
         &nbs p;         &nbs p;         &nbs p; (setq x (+ x (car bod)))
         &nbs p;         &nbs p;         &nbs p; (setq y (+ y (cadr bod)))
         &nbs p;         &nbs p;         &nbs p; (command "úsečka" "@" (list x y) "")
         &nbs p;         &nbs p;         &nbs p;         &nbs p; )
         &nbs p;         &nbs p;       (command "regen")
          &n bsp;         &n bsp;  (setq part 5))


   
    (T (prompt "Chyba:nevybral jste žádnou křivku!!!"))
    )
)

a potřebuji aby mi to po provedění  kreslení nějaké křivky dalo nabídku:upravit křivku/konec->a to jsem myslel udělat,tak aby ji to smazalo a nabídlo mi to parametry na novou(tu samou)...


Upravil Honzicek - 29.bře.2006 v 15:30
Zpět nahoru
Honzicek Zobrazit panel
Diskutér
Diskutér

Přihlášen: 27.úno.2006
Stav: Offline
Bodů: 32
Přímý odkaz na tuto zprávu Zasláno: 29.bře.2006 v 15:32
vložil bych to jako soubor ale ve škole máme blbý prohlížeče takže tady na to nemám ikonu...soory
kdyžtak díky za radu  zítra se sem podívám--
Zpět nahoru
vknop Zobrazit panel
Zasloužilý člen
Zasloužilý člen

.

Přihlášen: 04.říj.2004
Lokalita: Czech Republic
Stav: Offline
Bodů: 181
Přímý odkaz na tuto zprávu Zasláno: 29.bře.2006 v 22:42

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

potųebuji aby mi to po provedģnķ  kreslenķ nģjaké kųivky dalo nabķdku:upravit kųivku/konec->a to jsem myslel udģlat,tak aby ji to smazalo a nabķdlo mi to parametry na novou(tu samou)...

Viděl bych to třeba tak nějak.  (netestováno, píšu z hlavy)

(defun c:tk ()
  (initget "CY EP HYP EV ARCH  ")
  (setq word (getkword "Zadejte druh krivky:(CYkloida EPicykloida HYPocykloida EVolventa ARCHimedova-spirála)")
        KrivkaOK nil
  )
  (while (not KrivkaOK)
    (command "_undo" "_mark")
    (cond ((= word ...
    );of cond
    (initget "Ano Ne")
    (if (= (getkword "\nSpokojen? (Ano/Ne)") "Ne")
      (command "_undo" "_back")
      (setq KrivkaOK T)
    );of if
  );of while
  (princ)
)
                                                                                   

Zpět nahoru
Honzicek Zobrazit panel
Diskutér
Diskutér

Přihlášen: 27.úno.2006
Stav: Offline
Bodů: 32
Přímý odkaz na tuto zprávu Zasláno: 01.dub.2006 v 19:15
< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/"> Děkuji za pomoc hnedka to vyzkouušim... ještě bych se chtěl zeptat jestli byste mi neporadil s sinusoidou....u ostatních křivek mám parametrické rovnice takže jen počítám souřadnice ale u sinusoidy nevim jak mám napsat souřadnice (x;y)bodu ?
 
Zpět nahoru
Seiner Zobrazit panel
CAD/BIM manager
CAD/BIM manager

Přihlášen: 01.říj.2004
Lokalita: ČR (PA)
Používám:
Mechanical 2017, Inventor 2017 a starší
Stav: Offline
Bodů: 1662
Přímý odkaz na tuto zprávu Zasláno: 01.dub.2006 v 20:43

Teda, to nerikejte pred svym matikarem !!!

x bude prostě rust o prirustek (x=x+int) a y je ...zkuste si typnout .... BINGO sin(x)

Vítězslav Seiner

Chrudim
Zpět nahoru
Honzicek Zobrazit panel
Diskutér
Diskutér

Přihlášen: 27.úno.2006
Stav: Offline
Bodů: 32
Přímý odkaz na tuto zprávu Zasláno: 01.dub.2006 v 20:45
super funguje to až na jednu mouchu  neproběhne  volba jestli jsem spokojenej  a hned mě to vrátí  na zadávání další křivky....nebude potřeba funkce progn?

< id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">
Zpět nahoru
Honzicek Zobrazit panel
Diskutér
Diskutér

Přihlášen: 27.úno.2006
Stav: Offline
Bodů: 32
Přímý odkaz na tuto zprávu Zasláno: 01.dub.2006 v 20:59
Děkuji za pomoc  mě matika vůbec nejde... < id="kpfLog" src="http://127.0.0.1:44501/pl.?START_LOG" onload="destroy(this)" style="display: none;"> < ="text/">
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7307:Jak vložit obrázek AutoLISP makrem?
Tip 10455:Jak v AutoCADu nakreslit obdélník zadaný středem?
Tip 9995:AutoCAD 2015 vypisuje chybu "VVC: internal error"
Tip 2523:Jak vyvolat dialogovou verzi příkazu z makra?
Tip 1671:Nevýznamné desetinné nuly se nezobrazí funkcí (rtos).
Tip 1364:Jak zakódovat LSP program aby jej nebylo možné editovat?


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,102 sekund.