Zobrazit plnou verzi příspěvku: StrokeIT-fce kopie multipl+tlač. ořež-zruš krok...

jirka64
26.12.2009, 01:40
Dobrý denMám Autocad 2000. Používám už pár let aplikaci StrokeIT. V tomto cadu je příkaz copy standartně bez multiple. Tak mám nadefinovane tlačítko ^C^C_select \_copy _p; _m   a tlačítko mi funguje hned multiple. Ale když zadám příkaz copy gestem v Strokeit, tak mám jen obyčejný příkaz copy. Nevíte někdo jestli to jde nějak nastavit, aby ten příkaz fungoval multiple i ve strokeit.  Hlavně bych přivítal názor autora vánočního dárku - TOP uživatele PepaR(ten má se StrokeIt asi velké zkušenosti).A ještě jeden dotaz. Neví někdo jak udělat sekvenci na tlačítko tak, aby po zmáčknutí příkazu (třeba)ořež se zrušil krok - normálně pokračoval příkaz a nakonec by se krok zase zapnul?Všem děkuji za případné odpovědi.


PepaR
26.12.2009, 07:23
Úvodem děkuji za důvěru ;).
 
Nemám možnost to otestovat na AutoCADu 2000, ale zkuste následující nastavení:
 
Pokud by to nepomohlo, tak bych si tuto sekvenci dal třeba do lisp souboru, který by ji sjedntil pod jediny příkaz např. KOPIRUJNASOBNE a ten bych pak načetl do AutoCADu a volal ze StrokeIt. PepaR2009-12-26 07:23:55

jirka64
26.12.2009, 13:18
Tak to nastavení nefunguje, ale už jsem na to přišel-seděl jsem nad tím do 6 do rána. Na to tlačítko aby fungovalo tak, aby po zmáčknutí příkazu (třeba)ořež se zrušil krok - normálně pokračoval příkaz a nakonec by se krok zase zapnul jsem vymyslel toto ^C^C_trim ^B _select^B. Ale tento příkaz nerozlišuje jestli je krok už zaplej nebo ne, prostě ho jen na začátku příkazu zapne nebo vypne, ale při ukončení příkazu už s krokem nic nedělá.

PepaR
26.12.2009, 13:41
A jak jste tedy prosím nastavil to StrokeIt aby to fungovalo jak má?

jirka64
26.12.2009, 14:08


     Nevím jestli se mi to podaří vysvětlit, ale pokusím se. Tlačítko copy v panelech mám nadefinovaný na multiple ^C^C_select
\_copy _p; _m^M; Nastavil jsem si na toto tlačítko klávesovou zkratku, kterou spouštím ze strokeit.  Finta je ale v tom, že při nastavování klávesové zkratky mám 3 nabídky kde najít příkaz copy - NABÍDKA, PANELY NÁSTROJŮ a AUTOCAD LT PŘÍKAZY. No a ta klávesová zkratka se musí nastavit pouze z kategorie nabídek PANEL NÁSTROJŮ(což je vlastně logické, ale rok mě to nenapadlo, až včera) - jinak to nefunguje multiple ani v cadu. Já jsem tu zkratku pořád dělal z kategorie AUTOCAD LT PŘÍKAZY a to prostě nefungovalo ani v cadu-dělal copy bez multiple.

PepaR
27.12.2009, 10:23
Stejně mi ale přijde, že dát si to do lispu jako jeden příkaz by bylo praktičtější, už jenom kvůli opakování příkazu na pravé tlačítko myši.

jirka64
27.12.2009, 19:19
To je pravda-při opakování příkazu pravým tlačítkem myši mi to už copy multiple nedělá. Jenže nevím, jak takový lisp vytvořit. Nevím, jak dlouho vytvoření toho lispu trvá, ale jestli to není velký problém, mohl by jste ten lisp vytvořit a dát na forum? Případně nevíte o nějakém odkazu na naučení lispu?


PepaR
27.12.2009, 23:09
Tu samou sekvenci co máte v makru si přepíšete do lispu - příklad viz vlákno na anglickém fóru.

jirka64
28.12.2009, 15:04
Vymyslel jsem toto    ^C^Ckrok;n;_trim;;krok;a      funguje to tak, že při zmáčnutí tlačítka se mi vypne krok-zapne příkaz trim - dva ; a řežu hned(bez výběru odkud) - a potom vybírám co řezat a pak by se mi krok měl zase zapnout, ale nezapne. Poradte prosím někdo proč se nezapne nakonec krok?

Rostislav Říha
28.12.2009, 15:32
pokud se pamatuji dobře, tak v dieselu byl vždy problém s dvojím nastavováním jedné proměnné v rámci jednoho řetězce - a příkazek "krok" neděláte nic jiného ... krok by měl jít v dieselu vypnout pomocí kombinace "stříška+písmeno" - keré písmeno to j se dočtete někde v helpu...

jirka64
28.12.2009, 16:26
Problém bude asi jinde, protože když dám toto    ^C^C^B_trim;;_copy;   tak stejně ten příkaz copy se nezapne-podle mě tam musí být    ^C^B_trim;;(tady musí být nějaký znak,ale nevím jaký) _copy;


PepaR
28.12.2009, 16:45
Zkuste prosím otestovat tento lisp, zda náhodou není tím co hledáte:
uploads/20091228_164517_MCOPY.lsp
 

jirka64
28.12.2009, 17:17
   
 
jirka642009-12-28 17:18:41

jirka64
28.12.2009, 17:18
Zajímavý lisp, ale tohle nehledám. Mě stačí prostě jen aby příkaz copy fungoval násobně jako v autocadu 2010 - to by byl ten správný lisp. Ale tím tlačítkem   ^C^C_select
\_copy _p; _m^M;   je to aspoň částečně vyřešené(i když se příkaz po zmáčnutí pravého tlačítka myši jako multiple neopakuje). To je paráda umět takhle psát lispy, chtěl bych vidět váš autocad, to musí být nadupaný!!!  Děkuji za lisp


PepaR
28.12.2009, 19:59
Nejsem autor tohoto lispu, takže obdiv patří jinému. Dřív, když jsme měli ve firmě k dispozici plnohodnotné AutoCADy, jsem fungoval na ARmenu a pak na GGmenu, které si můžete stáhnout i zde, nyní po přechodu firmy na AutoCAD LT+CADKON si musím vystačit s holým LTčkem, takže o nějaké nadupanosti nemůže být řeč. Ještě že ve škole se člověk občas k AutoCADu dostane.
 
PS: Až se pan Michl vrátí z dovolné, on Vám to makro určitě/možná upraví a otestuje do správné podoby. Já bohužel tu možnost nemám.PepaR2009-12-28 20:02:10

PepaR
28.12.2009, 20:20
Nedalo mi to a trošku jsem hledal, upravoval, viz zkuste další lisp:uploads/20091228_201952_CC.lsp PepaR2009-12-28 21:38:57

jirka64
28.12.2009, 20:41
Můžete zde vyzdvihnout nějaké nejlepší funkce z těchto nástaveb? GGmenu jsem měl, ale nic mě tam nezaujalo a ARmenu ještě zkusím. Používám pouze 2D-základní práce.


PepaR
28.12.2009, 21:10
Záleží na oboru v jakém děláte, nečekejte od toho funkčnost jako od nadstavby ST nebo CADKON, jsou to jen podpůrné nadstavby/funkce pro kreslení ve 2D.
 
Já osobně nejvíc používal:

MtmdEdit
Výškové kóty
Číslování místností
Přerušení v jednom a ve dvou bodech
Změna orientace úsečky/křivky
Pljoin
DocBar
Výztuž
Schodiště
Čisti filtry hladin
taky funkce pro dopravní stavby
a funkci od alfreda na zjištění informací o pozemku z KN
 
ARmenu je již zastaralé, ale jsou v něm taky výškové kóty, dále kreslení dveří, oken atd.PepaR2009-12-28 21:39:40

jirka64
28.12.2009, 21:14
Anoooooooooo to je přesně ono! Už to funguje jak má, to je paráda. Moc dík


PepaR
28.12.2009, 21:17
Nemáte zač, jsem rád, že to funguje a rada pomohla aneb řeknu jedné z mých pěti sekretářek, aby vystavila fakturu (= pokus o vtip ;) PepaR2009-12-28 21:19:15

jirka64
28.12.2009, 21:45
Přerušení v jednom a ve dvou bodech - jsem nezjistil rozdíl.DocBar - fungoval vám dobře? Mě funguje, ale po automatickém uložení se ten soubor v docbaru přepíše třeba z "okno.dwg" na "okno-12--45-13.svs", takže se ten název pořád mění.A nic jiného já nevyužiju.Ta faktura by nebyla takový problém vystavit, ale zaplatit fakturu to už by bylo horší.Kdybych si vymyslel, pár sekvencí příkazů co potřebuju, neznáte někoho, kdo by mi to byl schopen přepsat do lispu? Klidně i zaplatím nějakou rozumnou cenu.


PepaR
28.12.2009, 22:05
To přeřušení je jen sekvence z AutoCADu zapsaná do lispu aby to šlo opakovat na rpavé tlačítko, podobně jako Váš případ s násobným kopírováním.
 
DocBar měl mouchy, ale furt jeho funkčnost převážila nad nimi. Nevím jak je tomu u nových placených verzí. Pokud Vám jde pouze o záložky, tak šáhněte po Drawingtabs od Autodesku.
 
Jak říkám využití funkcí je odvislé od způsobu jakým co v AutoCADu kreslíte a kterými profesemi se zabýváte.
 
S tou fakturou to byl jen vtip.
 
Co přesně za sekvence potřebujete? Možná to dáme dohromady i zde na fóru, ale lepší bude založit pro každou sekvenci vlastní téma.

jirka64
28.12.2009, 22:28
Teprve začínám přemýšlet nad tím co vlastně potřebuju, protože jsem nevěděl co je vlatně možný s cadem udělat a to už dělam s cadem tak 10let.
Zatím mě napadá jak už jsem tady psal příkaz: vypnout krok-ořež-zapnout krok.   ^C^C^B_trim;;krok a   - začátek mě takhle funguje, ale potom ten krok zapnout už ne.A ještě: editovat křivku-abych si mohl vybrat víc křivek-automaticky se linka převedla na křivku(bez potvrzování)-výběr toluštka-šířka pro segmenty 0,5.        Mám něco takového   ^C^C_peditaccept;1;_select;\_pedit;_m;_p;;_j;;;    ale musí potvrzovat převést linku na křivku(což nevadí), ale potom už musím zadávat T(jako tlouštka) a musím zadat nouvou tlouštku 0,5. Předělávám linky na křivky z 95% na tlouštku 0,5, takže by bylo lepší to vyřešit jedním zmáčknutím.  

PepaR
29.12.2009, 07:28
Mrknu na to při chvilce volného času, ale zajíámalo by mě, na co konkrétně potřebujte měnit globální šířky křivky?PepaR2009-12-29 09:10:39

johny
29.12.2009, 08:34
A vy máte Autocad 2000 nebo 2000 LT? V profilu totiž máte to LT, a v něm nejdou lispy. V lispu pak máte mnohem sirší možnosti, a nějaké základní sekvence jdou celkem snadno naprogrovat. Nějaký lisp na úpravu tloušťky křivky bych vám mohl poskytnout.

PepaR
29.12.2009, 09:15
Třebab tento lisp od BenyCZ, který najdete i v GGmenu, by šel upravit i na tu tloušťku:
uploads/20091229_091450_SpojitDoKrivky.lsp
 
Nicméně jak píše johny, v LT verzi Vám lisp stejně bude houby platný.PepaR2009-12-29 09:16:13

jirka64
29.12.2009, 11:58
Ted už mám Autocad 2000. To Lt tam zůstalo od mého přihlášení před pár lety.To jste ten příkaz špatně pochopil, já nepotřebuji měnit globální šířky křivky. Jednoduše řečeno, potřebuji na jedno kliknutí na úsečku z ní udělat křivku o tloušťce 0,5. Nebo raději udělat: když dám příkaz "kopírovat vlastnosti", potom vyberu křivku a chci měnit vlastnosti úsečky, tak aby se zkopírovaly vlastnosti křivky i s tloušťkou čáry a změnou úsečky na křivku.
Mě ty příkazy stačí i na tlačítko, kdyby to bylo jednodušší(jako příkazové makro).

PepaR
29.12.2009, 12:08
Aha chápu, na tlačítko to není zas takový problém, ale pokud máte AutoCAD, tak je vhodnější si to dát do lispu, je to přehlednější a lepší.
 
Na změnu z úsečky není jiná cesta naž přes PLJOIN nebo editaci křivky, případně varianta v lisp výše zveřejněná.
 
S tou tloušťkou jste měl na mysli tloušťku čáry, ale přijde mi praktičtější než měnit tloušťku čáry použít barevně závaislé styly vykreslování. To je ale už na Vás, ale udělat by to makro asi šlo.

johny
29.12.2009, 13:21

Slíbený lisp na tloustku krivky:(defun C:t() ;Tloustka krivky  (command "_select" pause)  (command "_pedit" "_m" "_p" "" "_w" pause "")  (princ))Nevím jestli s tím umíte zacházet. Kdyžtak to celé vemte, vložte do poznámkového bloku, uložte jako třeba Zkratky.lsp (přípona nutně lsp)... Pak to načtete v Nástrojích v Autocadu a uložte do schránky...Btw. Základní info: Příkazy se vždy dávají do (). Příkaz command prakticky simuluje příkazy zadávané v příkazovém řádku autocadu. "" je Enter, pause - čeká na vstup uživatele (jen jeden!). Jo a spouští se to tím, co je za C: (čili to T) Jo a místo toho druhého pause si můžete dát to vaše 0.5...(princ) na konci je trochu pro parádu, ale nechávejte to tam.Tímle stylem si můžete dělat sekvence jaké chcete... Pro základní info je dobrá nápověda v VisualListu, jsou tam i jednoduche priklady. Nemá cenu, aby jsme vám tady sestavovali každou vaši libůstku, když je to velmi snadné a přehledné... Já podobných "zkratek" používám desítky, takže rozhodně doporučuji se to trochu naučit :).
johny2009-12-29 13:24:33

PepaR
29.12.2009, 13:47
Díky johny, jsi rychlejší, já na to taková bedna holt nejsu ;).

johny
29.12.2009, 14:25


(smazáno pro redundanci)johny2009-12-29 14:27:27

johny
29.12.2009, 14:26
:) díky a sorry, ale nenechte se zmýlit - toto jsem jen zkopiroval ze svých "zkratek".

vbehun
29.12.2009, 17:42
Zrovna u té tloušťky křivky by snad bylo rychlejší použít rychlý výběr + filtr na křivky + nastavit všem globální šířku = 0.5

PepaR
30.12.2009, 07:20
Právěže tazatel neřešil globální šířku/tloušťku, ale tloušťku čáry jako takovou. Taky jsem předpokládal, že má na mysli totéž co Vy.

jirka64
02.01.2010, 23:04
Ten lisp od jonyho funguje, ale je na křivku, já jsem to potřeboval na úsečku. To takhle stačí.Ted ale nejvíc potřebuju to ořež-vypnout krok-ořežu-zapnout krok   C^C^B_trim;;krok a - začátek mě takhle funguje, ale potom ten krok zapnout už ne.  

johny
12.01.2010, 13:39

Zdravim, jestli to pořád užijete, tak jednoduše třeba takhle.(defun C:qt ()    (setq OldSnap (getvar "SNAPMODE"))  (setvar "SNAPMODE" 0)  (command "_trim" "")  (while (> (getvar 'cmdactive) 0) (command pause))    ;Násobné pause  (setvar "SNAPMODE" OldSnap)  (princ))(defun *error* (msg)    (setvar "SNAPMODE" OldSnap)  (print))Obě uložte do stejného texťáku s příponou *.lsp. Ta errorova funkce vám nahodí SNAPMODE pokud _trim ukončíte přes ESC.Pokud to chcete spouštět jinak než QT, pak si to za tím C: nějak přepište.
johny2010-01-12 13:41:59

jirka64
13.01.2010, 14:02
Vám to funguje? Mě to dělá jenom klasický příkaz ořež bez výběru ořezávajících hran-což je správně, ale to přepínání kroku mě nefunguje. Samozřejmě to ještě moooc potřebuju-nikde jsem to zatím nesehnal a vyrobit se mi to nepodařilo.


johny
13.01.2010, 14:46
Funguje, ale samo jsem to netestoval v Autocadu 2000. Zkoukl jsem ty proměnné a měli by vám pod A2000 fungovat. Takže fakt nevím, proč vám to nejede.Ale trochu jsem to teda přepsal... třeba toto bude fungovat i vám. Ten program je teď tvrdší... prostě vypne krok, řeže, zapne krok. Když ořezávání ukončíte ESC, pak vám krok už nezapne.(defun C:qtt ()   (command "_snap" "_off")  (command "_trim" "")  (while (> (getvar 'cmdactive) 0) (command pause))  (command "_snap" "_on")  (princ))PS. Pokud vám to pořád nebude fungovat, tak to přesuňte do diskuse o programování a třeba se na to někdo podívá a příjde na problém, proč vám to nešlo.

jirka64
13.01.2010, 21:20
Tak ted to zruší krok-řežu, ale potom se krok už nezapne.Ted je to vlastně to, co už jsem měl na tlačítku  ^C^Ckrok;n;_trim;;krok;a;  ale ten krok nakonec po ořezání se prostě nechce zapnout zpátky. Zkusím to tedy přesunout, jestli zjistím jak. Omlouvám se za barvu, ale nějak nejde změnit. Zatím děkuji


jirka64
13.01.2010, 21:48
  Tak jsem nepřišel na to, jak se to přesouvá, ale jak jsem se tak díval na forum o programování, tak tam je úúúplně mrtvo, takže je to asi jedno, tady si myslím, je šance na vyřešení větší. 

 
jirka642010-01-13 21:50:03

johny
14.01.2010, 13:09
Tak evidentně problém je v tom nejdůležitějším řádku - ten cyklus (while... opakující pause - btw tenhle řádek vám chybí v tom vašem tlačítku, ale myslím, že cyklus na tlačítko nejde... idkyž Dieselu nerozumím. Čili ještě jsem naposledy upravil ten lisp, tak třeba už...

(defun C:qtt ()
  (command "_snap" "_off")
  (command "_trim" "")
  (while (eq 1 (logand (getvar "CMDACTIVE") 1)) (command PAUSE))
  (command "_snap" "_on")
  (princ)
)

jirka64
14.01.2010, 14:15
No paráda! Už to funguje. Moc děkuji. Řekl jsem ženě, ať udělá zítra na oběd NA VAŠI POČEST kachničku se zelím a pořádně to oslavíme. Už mi to funguje i na příkaz prodluž, ale na příkaz break to nefunuje. Nemohl by jste mi to ještě prosím udělat na příkaz break? Myslím že změna je jenom v tom, že za příkazem trim nedám 2x enter(neřežu hned, ale napřed vyberu odkud).

johny
14.01.2010, 15:45

Tak si nechte chutnat :-)Break je jednodušší, páč tam nepotřebujete násobný vstup uživatele (čili násobné pause). A jde to snadno udělat i na ty vaše tlačítka.(defun C:qb () ;dvěmi body  (command "_snap" "_off")  (command "_break" PAUSE "_f" PAUSE PAUSE)  (command "_snap" "_on")  (princ))(defun C:qb1 () ;jedním bodem  (command "_snap" "_off")  (command "_break" PAUSE "_f" PAUSE "@")  (command "_snap" "_on")  (princ))To první také v DIESELU:^C^C_snap _off _break \_f \\_snap _onAle doporučuji používat ten lisp, to se chová jako jeden příkaz, takže to můžete opakovat pravím tlačítem.Tak hodně zdaru při dalších pokusech.
johny2010-01-14 15:47:21

jirka64
14.01.2010, 16:29
Prosím ještě o drobnou úpravu. U toho break 2 body jsem si přidal mezeru před _f. Ted to funguje tak, že určím hned první a potom druhý bod přerušení, ale zase se nezapne krok. Šlo by to nějak jednoduše spravit, aby se krok zapl?  Ten původní lisp fungoval tak, že jsem musel vybrat objekt, který chci přerušit a potom až vybírat body přerušení.

johny
14.01.2010, 16:48
(defun C:qb () ;dvěmi body  (command "_snap" "_off")  (command "_break" PAUSE PAUSE)  (command "_snap" "_on")  (princ))

jirka64
14.01.2010, 17:09
To je ono! Děkuji. Dokonce už mi to funguje i na výmaz. Ted už mi zbývají jen posun a kopie a mám všechno. Kdyby jste měl někdy ještě chvilku času šlo by ještě udělat příkaz posun-zruš krok-vybrat co budu posouvat-zapnout krok-posunout. S příkazem kopie to samé ale tam je problém s multiple, ted tam mám tento lisp:
defun c:cc ( / ss1 bpt) (while (not ss1) (princ "\nKopíruj násobně: ") (setq ss1 (ssget)) );while (while (not (setq bpt (getpoint "\nZadejte referenční bod: ")))) (command "._copy" ss1 "" "_m" bpt));defunTo znamená, že by se to muselo zakomponovat do tohoto lispu.Ale už ted jsem spokojenej jak želva a nechci Vás pořád otravovat. Ale kdyby jste měl někdy trošku času(kdykoli) a zkusil ty lispy udělat, tak už bych se blahem asi počůral.Moc děkuji Jirka

johny
14.01.2010, 18:45
Zkousel jsem _move, ten mi jede. _copy dnes funguje jinak, tak test je na vás.(defun c:cc ( / ss1 bpt)  (command "_snap" "_off")  (while (not ss1)    (princ "\nKopíruj násobně: ")    (setq ss1 (ssget))  );while  (while (not (setq bpt (getpoint "\nZadejte referenční bod: "))))  (command "_snap" "_on")    (command "._copy" ss1 "" "_m" bpt)  (princ));defun(defun c:qm ( / ss1 bpt)  (command "_snap" "_off")  (while (not ss1)    (setq ss1 (ssget))  );while  (while (not (setq bpt (getpoint "\nZadejte referenční bod: "))))  (command "_snap" "_on")    (command "._move" ss1 "" bpt)  (princ));defun

jirka64
14.01.2010, 19:38
Tak to je paráda, už to funguje.To move funguje, ale ten krok zapnout je nutné před výběrem "zadejte referenční bod", ale to už jsem vyřešil jen přehozením řádků. U kopie(která také funguje) to samé.
S takovým cadem se hned líp dělá. Moc děkuji jsem velkej dlužník.