Zobrazit plnou verzi příspěvku: extrim v lispe

Augur
22.04.2008, 09:04
Pokusam sa napisat lisp v ktorom vyuzivam (alebo by som aspon chcel vyuzivat) command "extrim".. Moja predstava je asi taka, ze v prvom kroku vyberiem obdlznik, (ktory bude tvorit hranicu orezavania)a v dalsom kroku sa vypocita bod vovnutry tohoto objektu, ktory sluzi na urcenie ci sa ma orezavat vsetko okolo objektu alebo vovnutry.
Problem je v tom, ze command ako taky neprebehne.. tvari sa to dost divne.. Vie mi prosim niekto poradit, kde by mohol byt problem??
Prikladam vyber z lispu:

(setq mnozina (ssget "_X" '((0 . "LWPOLYLINE"))))
(setq ent1 (ssname mnozina 0))
(setq zoznam (entget ent1))
(setq bod0 (nth 14 zoznam))
(setq bod1 (nth 1 bod0))
(setq bod2 (nth 2 bod0))
(setq bod3 0)
(setq bodx1 (+ bod1 "1"))
(setq bodx2 (- bod2 "1"))
(setq bodxy (list bodx1 bodx2 bod3))
(command "_extrim" ent1 bodxy)

svarc.vl
22.04.2008, 09:44
v radku (setq bodx1 a následujícím by neměli byt uvozovky. příkaz _extrim mi autocad nebere. Bohuzel nemam moc času tak připojuji lisp co jsem si dělal a jako obvykle nedodělal (ošetření úchopů, vymazání vnitřních entit atd).
(setq bod (getpoint "\npocatek")) (setq bod1 (getcorner bod))(command "křivka" bod  (list (car bod) (cadr bod1)) bod1 (list (car bod1)                (cadr bod) ) "U")(setq ent (entlast))(setq bod (polar bod 0.785 1.41)  bod1 (polar bod1 3.927 1.41) )(command "ořež" ent  "" "N" bod bod1 "" "")(command "_erase" ent "")

Vladimír Michl
22.04.2008, 09:48
EXTRIM není vnitřní příkaz AutoCADu, ale Express Tool. Takto ho volat nemůžete. Viz:
http://www.cadforum.cz/cadforum/command.asp?cmd=EXTRIM
 
Jedině si zkuste upravit jeho původní LISP kód v extrim.lsp.

Ferdinand
22.04.2008, 11:01
Ano, tento příkaz chce konkrétní "ruční" výběr objektů.
To svarc.vl: Co to má dělat? Neznám české volby (to "U" je Undo?, "N" je co?)

svarc.vl
22.04.2008, 11:12
"U" bude uzavři  anglicky "_C" close, N je napříč  anglicky " _F"  asi Fence , jinak jsem to programoval  v r 1998  to teda koukam

Ferdinand
22.04.2008, 12:36
To svarc.vl: Co to má dělat? Mně to nic nedělá, přesto že jsem to upravil na tvar
(....původní /opravený/ kód Augura...)
(setq bod (getpoint "\npocatek")) (setq bod1 (getcorner bod))(command "_pline" bod  (list (car bod) (cadr bod1)) bod1 (list (car bod1) (cadr bod)) "_C")(setq ent (entlast))(setq bod (polar bod 0.785 1.41)  bod1 (polar bod1 3.927 1.41))(command "_trim" ent  "" "_F" bod bod1 "" "")(command "_erase" ent "")Ferdinand2008-04-22 12:41:10

Mrázek
22.04.2008, 12:37
V helpu k příkazu "vyber" jsou všechny možné volby zmíněny, vždy to písmeno, které je velké, znamená zkrácenou volbu.

Mrázek
22.04.2008, 12:40
Pokud nemáte k dispozici český ACAD - vyjímám z Helpu:
"Očekává se bod nebo
Okno/Poslední/Křížení/Box/všE/Napříč/OPolygon/KPolygon/Skupina/Přidat/Odstranit/Nkrát/Předchozí/Zpět/Auto/Jeden
Vyberte objekty: Zadejte bod nebo vyberte volbu"

svarc.vl
22.04.2008, 12:53
Noo.. nejde o to co to má dělat mně , jde o to jestli Augrum to využije. V zásadě to nakreslí jenom obdélník a podle něj to ořízne (pokud se mu povede trefit entitu). Jinak si musí tazatel upravit Extrim

Augur
22.04.2008, 14:19
Plan bol taky ze Autocad si sam najde objekt podla ktoreho sa bude trimovat.. V tom problem nieje.. Ja som si len neuvedomil, ze prikaz "extrim" je vlastne samostatny lisp..

Dodatocne by som sa chcel vsetkym podakovat, hlavne panovi Ferdinand-ovi.. Velkou obklukou a v podstate nezavisle som sa dostal k rieseniu, ktore tu bolo spomenute.. (na orezavanie nepouzivat lispovsky prikaz extrim, ale ovela jednoduchsi prikaz trim spolu s "fence". Teraz to robi presne to, co som chcel Augur2008-04-24 10:08:44