Zobrazit plnou verzi příspěvku: cstrip

Ferdinand
31.10.2007, 10:47
Kdysi jsem objevil lisp cstrip - pro odstranění duplicitních čar (tj. když čára je nakopírována "na sobě" vícekrát). Chtěl jsem tam doplnit sekci, kde by se "odstraňované" linky sečetly a ten počet by mi pak vypsal na přík. řádek. Ale nevím si s tím rady...
Tohle je celý lisp
Šlo by to rozšířit pro všechny entity, aby to nefungovalo pouze pro čáry? (Že by mi to hlásilo: "Bylo odstraněno nnn duplicitních entit"). Ve výkresové databázi se až tak moc nevyznám...Ferdinand2007-10-31 10:48:40

Vladimír Michl
31.10.2007, 10:54
To je nějaká podivná metoda/funkce vyžadující další aplikace. Nestačil by standardní příkaz OVERKILL (Express Tools)? Počet odstraněných entit vypisuje a funguje nejen na úsečky.

Ferdinand
31.10.2007, 16:19
Ano, to jsem k tomu nedodal - patří k tomu i aplikace strip.exe. Takže ď. za připomenutí ET - to mi vyhovuje.

Ferdinand
20.11.2007, 15:46
V dialogu příkazu overkill je defaultně přednastavená hodnota Numeric fuzz=0.000001 .  Která proměnná to řídí? Pokaždé přepisuji tuto hodnotu na např. 1 ale ta nezůstává zachována - při otevření dalšího výkresu je to opět 0.000001

Vladimír Michl
20.11.2007, 16:23
To řídí vnitřní proměnná Express Tools - můžete ji přednastavit (např. na 0.3456) pomocí:
 
(acet-setvar (list "ACET-OVERKILL-FUZZ" 0.3456 1))

Ferdinand
21.11.2007, 14:17
Děkuji Vám, Vladimíre. Ovšem to funguje jen v rámci aktuálního výkresu. Lze docílit, aby ta proměnná byla "natvrdo" nastavena pro AutoCAD (globálně)? Zkusil jsem to tak, že jsem to nastavil ve vzorovém výkresu acadiso.dwt a uložil - bohužel, při otevření nového výkresu hodnota je opět na defaultním 0.000001
Teď jsem se podíval do Registrů - tam je nějaký klíč v HKCU-Software-Autodesk-AutoCAD-R16.0-ACAD201:409-FixedProfile-General (ale také ještě jinde - celkem na třech místech):
ACET-OVERKILL-IGNORE   REG_SZ    STR__62
což nevím, co znamená. Nemělo tam (všude, kde je výše citovaný klíč) být ještě něco jako

ACET-OVERKILL-FUZZ 0.3456 1
ale nevím, jestli má být typu REG_SZ anebo REG_DWORD Ferdinand2007-11-21 14:30:02

Vladimír Michl
21.11.2007, 14:22
Problém je, že tyto ExpressTools proměnné se neukládají do výkresu (ani šablony). Navíc s nimi lze pracovat až když jsou v paměti načtené Express Tools.
Nezkoušel jsem to a nejsem si jist, jestli to bude správné pořadí a okamžik pro načítání, ale zkusil bych do ACADDOC.LSP popř. ACAD.LSP přidat řádky:
 
(arxload "ACETUTIL")
(acet-setvar (list "ACET-OVERKILL-FUZZ" 0.3456 1))
 

Ferdinand
22.11.2007, 10:12
To mne nenepadlo. Ano, takhle to funguje (tj. dopsat to do acad2004.lsp). Ď.

Ferdinand
06.12.2007, 08:41
...anebo také lze uložit nastavení do vzorového výkresu
Další dotaz: při průběhu fce overkill se na stavovém řádku dole zobrazuje proužek s "naplňovadlem" (počítá, kolik % je hotovo) - to je efektní a dává přehled, jak dlouho to potrvá. Poněvadž se v programování nejsem až tak zběhlý, zajímalo by mne, jestli to zobrazení by bylo možné použít všeobecně resp. u některých "pracnějších" aplikacích - aby tam nezůstala "trčet" příkazový řádek bez odezvy ev. s banálním oznámením "zpracovávám..." či podobně.  Tak by uživatel hned věděl, že se program nezasekl, ale že opravdu ještě probíhá... Sice jsem se díval na samotný lisp overkill.lsp, ale nic jsem z toho nevyčetl

Vladimír Michl
06.12.2007, 09:08
Asi nejefektnější a nejsnazší je acet funkce z Express Tools - viz:
http://www.cadforum.cz/cadforum/qaID.asp?tip=5890
ale Express Tools musí být načteny.
Jinak se to dá řešit přes DCL nebo jen odpočítáváním procent na příkazovém řádku.

Ferdinand
06.12.2007, 14:21
Ještě jednou se k tomu vracím... To uložení v template nefunguje tak jak jsem si myslel - po ukončení sezení CADu a znovaspuštění výkresu (dvojklikem na název v TC) je tam zpátky ta default 0.000001 . Vyřešil jsem to nakonec tak, že do menu acetmain.mns jsem doplnil "moje" volby na konec řádku
iD_AcetOverkill  [Remove Duplicate Entities]^C^Coverkill pause _I * _F 0.1 _P "_Y" _T "_Y" _E "_Y"
(i za posledním "_Y" je mezera pro potvrzení).
Dotaz: Dají se v souborech mns "vynechat" řádky/vkládat kommentáře stejně jako do lsp (tj. za ; ), nebo se to dělá jinak?

Vladimír Michl
06.12.2007, 14:29
ET proměnné nejsou ukládány ve výkresu (ani šabloně) - proto onen "nastavovací" LISP. Pokud jej máte v support cestě, načte se i při spuštění AutoCADu poklepáním na DWG. Ale ta cesta přes tlačítko menu je také dobrá.
 
Komentáře v MNS souboru jsou uvozeny lomítky "// komentář".

Ferdinand
06.12.2007, 17:58
Akorát že není funkční... Opravil jsem to do podoby
iD_AcetOverkill  [Remove Duplicate Entities]^C^C-overkill _Crossing \\ _Ignore * _Fuzz 0.1 _Plines _Y _parTial _Y _Endtoend
_Y;
a už to chodí