Diskuzní fórum, poradna
?CAD diskuze, rady, výměna zkušeností

|
Odpovědět ![]() |
Stránka <12 archiv |
Autor | ||
Seiner ![]() 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 |
![]() |
|
BTW pro 2006 Cz by to vypadalo:
(setq P1 (getpoint "Vyber nový počátek"))
(command "_UCS" "V" "*")
(command "_UCS" "U" "AA") (command "_UCS" "N" P1) (Getstring "Vratit.") (command "_UCS" "B" "AA")
|
||
Vítězslav Seiner
Chrudim |
||
![]() |
||
Vladimír Michl ![]() 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
Moderátor ![]() ![]() Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Implementujeme řešení Autodesk Stav: Offline Bodů: 21898 |
![]() |
|
Nové verze mají v příkazech nové volby, ale kompatibilita starých skriptů a maker je zachovávána. Platí to i v tomto případě. Musíte však používat správný zápis - např. _UCS U AA je chybně - není žádná volba "U", je jen volba Ulož (správněji _Save), která měla shodou okolností v verzi 2006 zkratku "U". Pokud použijete standardní zápis _UCS _Save AA, bude makro chodit verzi 2006, 2007 i 2008 správně. |
||
![]() |
||
Seiner ![]() 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 |
![]() |
|
Samozřejmě máte pravdu - z lenosti a ve spěchu jsem použil české zkratky.
Problém ale je v tom, že jsem to tvořil v 2007 a tudíž i při korektním použití "mezinározních" voleb to IMHO v 2006 chodit nebude, protože tyto volby 2006 nezná. Takže by to chtělo přepsat do korektních voleb tu verzi pro 2006 a ta by snad měla fungovat i v budoucnu. Ruku do vohně bych ale za to nedal ;-)
|
||
Vítězslav Seiner
Chrudim |
||
![]() |
||
Seiner ![]() 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 |
![]() |
|
Pak by to tedy vypadalo:
(setq P1 (getpoint "Vyber nový počátek"))
(command "_UCS" "_DELETE" "*")
(command "_UCS" "_SAVE" "AA") (command "_UCS" "_New" P1) (Getstring "Vratit.") (command "_UCS" "_restore" "AA")
a vskutku to chodí na 2006 i 2007.
|
||
Vítězslav Seiner
Chrudim |
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
Děkují pánové mnohokráte, zítra vyzkouším.
|
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
Takže právě jsme to odzkoušel, ale je tu malý zádrhel, při pokud o navrácení 0 na původní hodnotu se mě to v příkazovém řádku zeptá Vratit. a musím to potvrdit Enterem. Jak by vypadala prosím varianta, kdy by to jen vypsalo text Počátek byl vrácen.
A nyní snad již poslední problém, jak ve funkci zprovoznit při opravě kóty VKO, aby se nevybírali výškové kóty jednotlivě, ale aby šlo vybrat vybíracím rámečkem? Je to moc složité pro zakomponování do LISPu?
|
||
![]() |
||
Seiner ![]() 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 |
![]() |
|
Ale to si nějak nerozumíme. Já jsem nedodal hotový produkt, ale jen ukázku, jak si myslím, že by to mohlo fungovat. Takže lispík se optá na nové umístění počátku a přesune tam počátek USS. Druhá půlka ho zase vrátí zpátky. A aby bylo vůbec vidět, co se děje, vložil jsem tam ten getstring, na kterém se to zarazí a čeká na jakýkoliv vstup.
JINAK TEN ŘÁDEK NEMÁ ŽÁDNÝ VÝZNAM a předpokládám, že v definitivním kódu nebude.
|
||
Vítězslav Seiner
Chrudim |
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
OK, to jsme chtěl vědět. Děkuju mockrát.
|
||
![]() |
||
Pajda ![]() Diskutér ![]() Přihlášen: 21.pro.2005 Lokalita: Czech Republic Stav: Offline Bodů: 13 |
![]() |
|
sledoval jsem toto téma a upravil jsem lisp takto kod\
(setq x 0)
(setq ko 0) (srovrovina) (setq d (entget ko)) \kod
pridal jsem funkci srovrovina
kod\
(defun srovrovina (/ usecka ucs1 ucs2 ucs11 ucs22 ucs111 ucs222)
(while (/= usecka "LINE") (setq srov (entsel "\nUkaž srovnavací rovinu")) (setq line (car srov)) (setq usecka (cdr (assoc 0 (entget line)))) ) (setq vys vyska)
(if (= vys nil) (setq vys 0) ) (setq vysk (rtos vys 2 3)) (setq text (strcat vysk ">: ")) (setq text (strcat "\nZadej výšku srovnavací roviny <" text)) (setq vyska (getreal text))
(if (= vyska nil) (setq vyska vys) ) (setq line (car srov)) (setq ucs1 (cdr (assoc 10 (entget line)))) (setq ucs2 (cdr (assoc 11 (entget line)))) (setq znam1 (getreal "\nZadejnatočení srovnavací roviny vůči globálnímu sopuřadnýmuz systému (1) natočeni 270-90, (2) naočení 90,1-269,9 <1> : " ) ) (if (= znam1 2.0) (progn (if (< (car ucs2) (car ucs1)) (progn (setq ucs11 ucs1) (setq ucs22 ucs2) ) (progn
(setq ucs22 ucs1) (setq ucs11 ucs2) ) ) ) (progn (if (>= (car ucs2) (car ucs1)) (progn (setq ucs11 ucs1) (setq ucs22 ucs2) ) (progn
(setq ucs22 ucs1) (setq ucs11 ucs2) ) ) ) ) (command "_ucs" "W")
(command "_ucs" "n" "3" ucs11 ucs22 "") ) \kod
a ješte upravil funkci "zjisti vysku"
kod\
(setq y (cdr (assoc 10 (entget ko)))) ;nacte do y hodnotu bodu
(setq y (trans y 0 1)) ; prevede z globalniho do aktualniho USS (setq y (/ (cadr y) 1000)) ;(setq y (/ (cadr (cdr (assoc 10 (entget ko)))) 1000)) ; puvodni prikaz (setq y (+ y vyska)) (cond .....
\kod
|
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
Ještě bych se chtěl zeptat pravděpodobně na základní věc, u řešení dle pana Seinera mi při anstavování funkce vše proběhne v pořádku, ale při volbě počátku mi to za textovou hláškou vypíše text nil.
Příklad: Zvolte nový počátek (0,000)nil
Jak to prosím vyrušit?
|
||
![]() |
||
Seiner ![]() 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 |
![]() |
|
Ke druhé části otázky:
- místo entsel je nutno použít výběrovou množinu a úpravu dělat v cyklu.
Třeba takhle to vypadá pro vymazání téměř nulových úseček:
(setq V (ssget "X"(list(cons 0 "line"))))
(setq n (sslength v) i 0 j 0) (while (< i n) (setq u (entget (ssname V i)) l (distance (cdr(assoc 10 u)) (cdr(assoc 11 u)))) (if (< l 1)(progn (setq j(+ 1 j)) (entdel (ssname V i)) )) (setq i(+ 1 i)) ) (write-line (strcat "Vynazano " (itoa j) " prvku delky 0")) (write-line (strcat "Celkem " (itoa i) " prvku")) (princ) Pokud chcete vybírat opravdu oknem, použijete ..(setq V(ssget)).
|
||
Vítězslav Seiner
Chrudim |
||
![]() |
||
Seiner ![]() 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 |
![]() |
|
k té návratové hodnotě:
lisp vrací vždy odezvu poslední funkce. Takže tam dejte na konec nějakou, která vrací prázdný řádek. Třeba (PRINC)
|
||
Vítězslav Seiner
Chrudim |
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
Díky za tim, nakone jsem to vyřešil pomocí (PRINT)
|
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
Tak tady už musím sklopit hlavu a smeknout před těmi co jim jdou programovací jazyky, ja su na to prostě levý. Viz třeba toto naťuknutí od pana Seinera
Děkuju za další variantu, bohužel se mi to nepodařilo rozjet. Hlásí to chybu závorky, popř. další chyby.
|
||
![]() |
||
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 |
![]() |
|
Myslím, že ta forma zápisu defaultní hodnoty
(setq P1 (getpoint "Zvolte nový počátek (0,000) :")) by něla být spíše (setq P1 (getpoint "Zvolte nový počátek <0,000> :")) |
||
-FerTh-
|
||
![]() |
||
PepaR ![]() 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
CAD/BIM manager ![]() ![]() Přihlášen: 29.lis.2004 Lokalita: ČR (ZL) Používám: ruky a hlavu (občas ;) Stav: Offline Bodů: 6201 |
![]() |
|
Díky za připomínku, ale myslel jsem to tak, že 0,000 je myšleno jako plusminus nula v projektu. Nicméně, lze to interpretovat i tak, že potvrzení nastaví jako hodnotu 0,0,0 jak píšete Vy: <0,000>.
|
||
![]() |
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět ![]() |
Stránka <12 archiv |
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,305 sekund.