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: 16366 
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řenoNa tomto lispe pada acad

 Odpovědět Odpovědět archiv
Autor
predcis Zobrazit panel
Nováček
Nováček

Přihlášen: 18.srp.2005
Lokalita: Slovensko
Používám:
AutoCAD® Map 3D 2013
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Téma: Na tomto lispe pada acad
    Zasláno: 27.led.2009 v 11:44
Dobry den,

prosil by som o radu s nasledujucim lispom.
Chcel som rozsirit funkcionalitu jedneho stiahnuteho programiku jednoduchym pridanim cyklu while

Lisp je o tom, ze vyberiem entity a tie sa nakopiruju a zrovnaju podla zadania.

Tu je povodny, fungujuci:

(defun c:alc (/ ss1)

(setq ss1 (ssget))

(command "_copy" ss1 "" "0,0" "0,0" "")

(command "align" ss1 "")

(while (> (getvar 'CmdActive) 0) (command pause))

(princ)

)

Jednoduchym pridanim cyklu som chcel dosiahnut viacnasobneho kopirovania a zarovnania. Avsak po 3 kopii sa acad zruti. Neviem pochopit preco mi vypisuje chybu vnorovania, ked prikazy copy a align sa ukoncia a ziadnu rekurziu tam niez nemam. Dakujem za radu. Upraveny kod je:

(defun c:alc()

     (princ "\nVyber objekty: ")

     (setq ss1 (ssget))

     (while 1

          (command "_copy" ss1 "" "0,0" "0,0")

          (command "align" ss1 "")

          (while
               (> (getvar "CmdActive") 0)
               (command pause)
          )

     )

     (princ)

)
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 27.led.2009 v 13:08
Co je to za podminku
(while 1
?????

musi to byt:
(while podminka_dokud se bude cyklus provadet
prikazy
v
cyklu
);konec while

Trochu nechapu jak si predstavujete vysledek.
Zpět nahoru
predcis Zobrazit panel
Nováček
Nováček

Přihlášen: 18.srp.2005
Lokalita: Slovensko
Používám:
AutoCAD® Map 3D 2013
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 27.led.2009 v 13:16
Nekonecny cyklus, lebo neviem dopredu kolko krat budem chciet kopirovat ten vyber. Koniec funkcie je potom ESC. Viem, ze to nie je ciste programatorske riesenie, ale je to jednoduche a prakticke.
Zpět nahoru
michaelflyer Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 05.úno.2007
Lokalita: Slovensko
Používám:
AutoCAD
Stav: Offline
Bodů: 105
Přímý odkaz na tuto zprávu Zasláno: 27.led.2009 v 20:57
Dajte si podmienku aby ss1 nebola nil. Potom to rovnako aj zrušíte (tým ESC).
Michal MUCHA
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 27.led.2009 v 21:24
Jenze SS1 se vybira pred cyklem a v cyklu se vyber neopakuje.
Je to cele trochu divne. Trochu nechapu co to ma delat, ale jiste by to slo lepe. Pokud se nepletu, tak se to musi ukoncit stiskem ESC a pravdepodobne to puvodne vybrane entity zdvojene na sobe.
Zpět nahoru
predcis Zobrazit panel
Nováček
Nováček

Přihlášen: 18.srp.2005
Lokalita: Slovensko
Používám:
AutoCAD® Map 3D 2013
Stav: Offline
Bodů: 14
Přímý odkaz na tuto zprávu Zasláno: 05.úno.2009 v 09:31
Program ma fungovat takto:
povedzme mam nejaky objekt, napriklad sipku, a chcem ju kopirovat 6x a chcem ju umiestnit na 6-tich roznych miestach v 6-tich roznych natoceniach a napr. v 3 roznych mierkach.
Tak som chcel vytvorit program, ktory by 1x vybral to co chcem kopirovat a natacat a potom ho n-krat kopirovat a natacat.
Ale mate pravdu, ostane tam jedna kopia navyse.
Na moje prekvapenie mi vsak po 3tom cykle zobrazi autocad hlasku, ktoru som v zivote nevidel a spadne. Neviem este, ci je to mojou verziou autocadu, alebo robim nieco nepovolene. Nedava mi to proste logiku, preco tento lisp nemoze pokracovat "doblba" ale generuje chybu po ktorej padne autocad.
Zpět nahoru
alfred Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 14.říj.2004
Lokalita: ČR (JČ)
Používám:
AutoCad MAP 2011
Stav: Offline
Bodů: 1675
Přímý odkaz na tuto zprávu Zasláno: 06.úno.2009 v 07:26
Pokud je kopirovany objekt blok (jako je vhodne pro Vami zminenou sipku), tak by mozna bylo lepsi v programu zjistit nazev bloku a pak jen vkladat.

Pokud to nejsou jen bloky, tak me napada jestli by Vam nevyhovoval prikaz "MOCORO" z Express tools?
Zpět nahoru
Ferdinand Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 01.říj.2004
Lokalita: ČR (JM)
Používám:
AutoCAD2004 (EN) na Windows XP
Stav: Offline
Bodů: 1904
Přímý odkaz na tuto zprávu Zasláno: 06.úno.2009 v 08:12
Když tam je požadavek na různá měřítka, tak by to ale chtělo krapet upravit - příkaz MoCoRo to dělá trošku jinak.
-FerTh-
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 7162:VIPJaký AutoCAD se spustí při poklepání na vložený objekt typu výkres (OLE DWG)?
Tip 1217:Chyba "FATAL ERROR: INCORRECT ACAD.XMX FILE".
Tip 5846:Nedokumentovaný příkaz AutoCADu nastavuje afinitu k CPU.
Tip 4363:Chyba: Nested error trapping used incorrectly. Resetting nesting index to 1.
Tip 6849:Virus využívající soubor ACAD.VLX
Tip 5981:VIPChyba: Tato instalace je zakázána systémovými zásadami (MSXML6).


 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,004 sekund.