Zobrazit plnou verzi příspěvku: Problémy s lispy

PepaR
01.07.2005, 07:03
Dobrý den, používám často 2 lispy od pánů Garnet a pana Mantlíka a v poslední době mě trošku zlobí. Chybka bude jistě primitivní avšak přesto bych chtěl zkušenější programátory požádat o pomoc. Jedná se o následující problémy:
 
HEAL: Funkce funguje avšak často se u ní stává že dojde k vypnutí nastavení všech uchopovacích bodů.
 
ZKS: Funkce při spuštění po dokončení prováděné akce vypíše:

Zadejte volbu kótovacího stylu
[Ulož/Obnov/Stav/proMěnné/Použij/?] <Obnov>: _r
Zadejte název kótovacího stylu, <?> nebo <vyberte kótu>: GG_25_NIC
Aktuální kótovací styl:  GG_25_NIC
 
Příkaz: ZKS Neznámý příkaz "ZKS".  Stiskněte F1 pro nápovědu.
2005-07-01_070308_heal.lsp
2005-07-01_070326_zks.lsp
 
Předem děkuji za odpovědi
Pepa
 
 

Mantlík
01.07.2005, 07:37
Ano, chybka tam byla - upravoval jsem to narychlo a věnoval pozornost spíše funkčnosti, než co to hlásí
I s tou vadnou a zavádějící hláškou to ale fungovalo (jak jsem si teď ověřil na souboru se 4 kót. styly
Z původního lispu na téma změny hladin tam v řádku, kde je
(command "-dimstyle" "_r" ch "")
vymažte prosím ty uvozovky na konci
S pozdravem

PepaR
01.07.2005, 08:27
Děkuji, nechtěl jsem Vás obtěžovat tak jsem dotaz na Vaši utilitu sloučil s dotazem rpo HEAL a dal to diskuse, děkuji za pohotovou odpověď a poprosí ještě ostatní zda by mi nepomohli s tím druhým lispem?

Seiner
01.07.2005, 08:37
Myslím, že k vypnutí uchopovacích módů dojde, pokud z nějakých důvodů neproběhne lisp celý - chyba nebo zásah uživatele. Jako u většiny lispů je na začátku uložen obsah proměnné OSMODE, pak je nastavena na 0 a na konci je vrácena uložená hodnota. Trochu lepší je technika, kdy se nenastavuje 0, ale teď nevím, jaká hodnota, která znamená jen vypnutí uchopování, ale nemění nastavení. Pak stačí jen stisknout F3 a máte zase uchopování jako předtím. Z hlediska programátora je to ale malinko pracnější :-(

Seiner
01.07.2005, 08:46
doporučuji nahradit části kódu, kde se OSMODE nastavuje na 0 a zpátky kódem:
(IF (<=(GETVAR "OSMODE") 16384)(PROGN(SETQ OSN 1)(SETVAR "OSMODE" (+(GETVAR "OSMODE")16384))))
a
(IF (AND(>=(GETVAR "OSMODE")16384)(= OSN 1))(SETVAR "OSMODE" (-(GETVAR "OSMODE")16384))))
A ještě poznámečka. Při zběžném pohledu nevidím proměnné použité pro ukládání systémových proměnných uvedené jako vnitřní. To se může jednou šeredně vymstít - podobně jako vracení zápalek do krabičky :-)

Seiner
01.07.2005, 08:59
Takže pak by to vypadalo takhle: 2005-07-01_085840_h.lsp

PepaR
01.07.2005, 10:11
p. Seiner děkuji Vám mnohokrát.

Seiner
01.07.2005, 12:08
Není zač. Tady je ještě něco co jsem vařil asi před 10 lety. Obdobná funkce, ale i pro oblouky.2005-07-01_120814_Join.lsp

Vladimír Michl
01.07.2005, 13:03
to mimochodem řeší jeden z nových příkazů AutoCADu 2006 - SPOJ (_JOIN)

Seiner
01.07.2005, 13:09
Už se těším :-) (Upřímně - moc se netěším. Učit staré psy novým kouskům je dost vysilující.)