Již 10.000+ CAD tipů.
Přes 118.000 registrovaných u nás, celkem 1.092.000 registrovaných (CZ+EN), přes 53.000 CAD/BIM bloků.
Vyzkoušejte nový přesný Inženýrský kalkulátor.
Kompletní příkazy AutoCADu a proměnné AutoCADu 2026.
Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

Fórum nenahrazuje technický support firmy ARKANCE (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.arkance-systems.cz
|
Odpovědět ![]() |
archiv |
Autor | |
predcis ![]() Nováček ![]() Přihlášen: 18.srp.2005 Lokalita: Slovensko Používám: AutoCAD® Map 3D 2013 Stav: Offline Bodů: 14 |
![]() 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) ) |
|
![]() |
|
alfred ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
TOP uživatel ![]() Přihlášen: 14.říj.2004 Lokalita: ČR (JČ) Používám: AutoCad MAP 2011 Stav: Offline Bodů: 1675 |
![]() |
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. |
|
![]() |
|
predcis ![]() Nováček ![]() Přihlášen: 18.srp.2005 Lokalita: Slovensko Používám: AutoCAD® Map 3D 2013 Stav: Offline Bodů: 14 |
![]() |
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.
|
|
![]() |
|
michaelflyer ![]() Zasloužilý člen ![]() Přihlášen: 05.úno.2007 Lokalita: Slovensko Používám: AutoCAD Stav: Offline Bodů: 105 |
![]() |
Dajte si podmienku aby ss1 nebola nil. Potom to rovnako aj zrušíte (tým ESC).
|
|
Michal MUCHA
|
|
![]() |
|
alfred ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
TOP uživatel ![]() Přihlášen: 14.říj.2004 Lokalita: ČR (JČ) Používám: AutoCad MAP 2011 Stav: Offline Bodů: 1675 |
![]() |
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. |
|
![]() |
|
predcis ![]() Nováček ![]() Přihlášen: 18.srp.2005 Lokalita: Slovensko Používám: AutoCAD® Map 3D 2013 Stav: Offline Bodů: 14 |
![]() |
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. |
|
![]() |
|
alfred ![]() Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
TOP uživatel ![]() Přihlášen: 14.říj.2004 Lokalita: ČR (JČ) Používám: AutoCad MAP 2011 Stav: Offline Bodů: 1675 |
![]() |
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? |
|
![]() |
|
Ferdinand ![]() TOP uživatel ![]() Přihlášen: 01.říj.2004 Lokalita: ČR (JM) Používám: AutoCAD2004 (EN) na Windows XP Stav: Offline Bodů: 1906 |
![]() |
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-
|
|
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
|
Přejít na fórum | Oprávnění fóra ![]() Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 0,355 sekund.