Zobrazit plnou verzi příspěvku: Výber objektu - jak upravit efekty
Lufttechnik
16.03.2023, 21:18
V autocade 21 akonáhle nabehnem myšou na objekt , tak sa zvýrazí , ešte pred tým než ho vyberem. Je to možné vypnút ? ( mám anglický autocad ) Skúšam premennú Highlight , selectionefect a .t.d. , ale neni to ono.+ pri príkaze Erase sa pri výbere mení barva objektu. Je to možné zmenit vypnút a nastavit na zmenu na čárkovanú čiaru ? Hladam to v Options – colors , ale neúspešne.
zkuste SELECTIONPREVIEW (osobně mám nastaveno na 2)Efekt zvýraznění si nastavíte v Options / Selection / Selection Preview Effect button... nebo tak něco... a pozor, efekt zvýraznění záleží i na nastavení grafické karty... např., ono modré zabarvení je pro lepčí GPU a jen čárkované zvýraznění je pro slabší GPU.
Lufttechnik
16.03.2023, 22:09
Ano , ďakujem. Našiel som to aj vpravo dole na lište - v System variable monitor.
Lufttechnik
12.04.2023, 18:54
Ešte tu pátram po nastavení toho výberu.Prikladám tu dva obrázky.Jeden je z Autocad 12 a druhý z Autocad 21.Dva objekty- kružnicu a 4-hran presúvam (stretch ).V acad12 je stará poloha viditelná ako čiarkovaná čiara.V acad 21 je to takmer neviditelné šedé. Však to je problém sa trafit.Neni možno to prestavit na iný efekt ?
Po nastavení, jak to vrátit zpět jsem již pátral před několika lety. Bohužel bez výsledně.Pokud můžete, tak používejte posouvání entit pomocí uzlů. Vybrat entity, vybrat jeden uzel, zmáčknout mezerník a posouvat. Barvy původních objektů se nezmění. Pro otáčení zmáčknout mezerník 2x.Pokud tato možnost není možná, tak buď si před posunem udělat pomocnou čáru nebo si dočasně změnit barvu papíru na bílou, tam je ta šedá ještě slušně vidět.
[QUOTE=Lufttechnik]Ešte tu pátram po nastavení toho výberu.Prikladám tu dva obrázky.Jeden je z Autocad 12 a druhý z Autocad 21.Dva objekty- kružnicu a 4-hran presúvam (stretch ).V acad12 je stará poloha viditelná ako čiarkovaná čiara.V acad 21 je to takmer neviditelné šedé. Však to je problém sa trafit.[/QUOTE]
Možná v nastavení grafické karty... vypnout vyhlazování.. apod. ... asi nějaká změna bude ale zbytek kresby/zobrazení se Vám zhorší... hodně to záleží na typu GPU tudíž těžko říct přesně... (horší PC by to co chcete, řekl bych, uměl líp než nabušená mašina... )... a nebo... :-) ... zkuste... při kopírování je ten odstín světlejší než při posouvání... :-)
Lufttechnik
14.04.2023, 12:39
No , je to hrozné. Momentálne sa rozhodujeme , či nepresedláme na autocad LT , pretože v autocade aj tak používame len 2-d a plný autocad sme držali len kvoli Autolispu. Na a ak v LT už funguje lisp , tak finančne to vypadá , že Autocad nepotrebujeme ak je LT za tretinu. Ale ak to bude i tam takto zprasené , tak to už snad zkusím i nejaký Bricscad či co je to. Uf .Skúšal som nastavenie monitora. Pri zmene parametra Gama je to trocha vditelnejšie , ale neni to ok.
Tak jsem si našel jednoduchý Lisp program, který jedním příkazem změní pozadí na bílé a druhým spuštěním na černé. Takže toto může v některých případech docela pomoci.(defun c:tbg ( / col )
(if tbg:flg
(setq col 16777215 tbg:flg nil)
(setq col 0 tbg:flg t )
)
(foreach prp '(graphicswinmodelbackgrndcolor modelcrosshaircolor)
(vlax-put-property (acdisp) prp (setq col (- 16777215 col)))
)
(princ)
)
(defun acdisp nil
(eval
(list 'defun 'acdisp 'nil
(vla-get-display (vla-get-preferences (vlax-get-acad-object)))
)
)
(acdisp)
)
(vl-load-com) (princ)
Lufttechnik
14.04.2023, 15:35
Takže budeme zachranovat nedokonalost vývojarov v Autodesk-u : - )Skusim to , už ked to máme , ale vopred vidím jeden háček – že ten kdo používa tmavú obrazovku , používa barvy , ktoré na bilem podklade nebudú konfortné - žltá 3 , svetlomodra 4 , svetlozelena 5.A pri každém príkaze Stretch prepinat barvu ! No ,ale aspoň sa cosi deje. Dik.
Tady jedna poměrně nedávná diskuse, třeba pro inspiraci.https://forums.autodesk.com/t5/autocad-forum/--whats-your-autocad-background-color--/m-p/11724413
Vladimír Michl
15.04.2023, 12:37
Jemné doladění barvy pozadí (tmavší nebo barevné) je asi jediná rozumná cesta. Nemožnost nastavení barvy pro skryté objekty v náhledu je určitě chyba a opomenutí, protože jinak jde nastavovat uživatelské barvy pro každou blbůstku, které je podstatně méně důležitá.
Vzpomněl jsem si na toto téma a vytvořil modifikovaný příkaz v AutoLispu na posun.V podstatě to funguje tak, že napřed zkopíruji vybrané entity na stejné místo, pak původní entity přesunu a nakonec zkopírované entity smažu. Není to sice dokonalé, ale v některých případech to může být lepší jak původní příkaz pro posun.(defun C:posx (/ cmdsave ss1 ss2 i p1)
(setq cmdsave (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq ss1 (ssget "_I"))
(command-s "_.undo" "_m")
(command-s "_.undo" "_be")
(setq temperr *error*)
(setq *error* ErrorTrap)
(if (null ss1)
(progn
(Command "_.SELECT")
(while (= (getvar "CMDNAMES") "SELECT")
(command pause)
)
)
)
(setq ss1 (ssget "_P"))
(setq ss2 (ssadd))
(setq i 0)
(repeat (ssLength ss1)
(command "_.copy" (ssadd (ssname ss1 i)) "" "_non" '(0 0) "")
(ssadd (ssname (ssget "_L") 0) ss2)
(setq i (1+ i))
)
(princ "\n")
(setq p1 (getpoint "\nUrčete výchozí bod: "))
(command "_.move" ss1 "" "_non" p1 "_non" pause)
(command "_.erase" ss2 "")
(Command "._regen")
(command-s "_.undo" "_e")
(setvar "cmdecho" cmdsave)
(setq *error* temperr)
(princ)
)
(defun ErrorTrap (errmsg)
(if (not (member errmsg '("console break" "Function Cancelled")))
(princ (strcat "\nError: " errmsg))
)
(command-s "_.undo" "_b")
(Command-s"._regen")
(setvar "cmdecho" cmdsave)
(setq *error* temperr)
(princ)
)
(princ)
[QUOTE=Petr75]Vzpomněl jsem si na toto téma a vytvořil modifikovaný příkaz v AutoLispu na posun.V podstatě to funguje tak, že napřed zkopíruji vybrané entity na stejné místo, pak původní entity přesunu a nakonec zkopírované entity smažu. Není to sice dokonalé, ale v některých případech to může být lepší jak původní příkaz pro posun.(defun C:posx (/ cmdsave ss1 ss2 i p1)
...
[/QUOTE]
Byl bych s něčím takovým HODNĚ opatrný. Já sice používám lispy na kde co, ale na toto teda bacha. Pokud upravujete takto základní příkaz a předpokládáte jeho každodenní používání namísto jeho základní verze, tak ten LISP opravdu MUSÍ být dokonalý. Používá se to furt, používá se to na všechny typy entit, a někdy třeba i na celý výkres o 100000 entit. A pokud ten příkaz namísto prostého posunu udělá i kopii každého objektu (a pěkně jednoho po druhém a nikoliv "najednou")... naprosto si odrovnáte celý autocad.Abych jen neblábolil... zkusil jsem to na výkresu s 27000 entit. Klasický posun je prakticky mžikem. POSX jsem po pár minutách killnul.
Původně jsem myslel, že zkopíruji celou skupinu najednou, ale problém je ten, že zatím nevím, jak vybrat celou skupinu zkopírovaných objektů. Parametr "Poslední" (_Last) vybere jen poslední nakreslený objekt a paramter "Předchozí" (_Previous) vyber původní skupinu.Moc neplánuji toto používat. AutoLisp se po zhruba 20 letech znovu učím, co do AutoCADu LT přidali AutoLisp.Teď mně napadlo, že bych mol udělat dočasný blok, ten už bych mohl vložit jako celek.
Asi nejjednodušší je uložit si (entlast), udělat kopii a do nové ss dát všechny (entnext) od uloženého entlast. Příklad třeba toto:(defun c:Coalign ( / s e) (if (and (setq s (ssget "_:L")) (setq e (entlast)) (setq e (progn (while (entnext e) (setq e (entnext e))) e)) (vl-cmdf "_.copy" s "" "_non" '(0 0 0) "_non" '(0 0 0)) (setq s (ssadd)) ) (progn (while (setq e (entnext e)) (ssadd e s)) (command-s "_.align" s ""))) (princ) )Je dobré si taky uvědomit, že (entlast) nemusí být nutně poslední entita ve výkresu. Pokud máte blk s att, tak entlast je blk, entity att pak následují.
johny2023-05-11 13:46:00
Děkuji za nakopnutí. Teď už je to rychlejší.(defun C:posx (/ cmdsave ss1 ss2 p1 enN) (setq cmdsave (getvar "cmdecho")) (setvar "cmdecho" 0) (setq ss1 (ssget "_I")) (command-s "_.undo" "_m") (command-s "_.undo" "_be") (setq temperr *error*) (setq *error* ErrorTrap) (if (null ss1) (progn (princ "\nVyberte objekty: ") (Command "_.SELECT") (while (= (getvar "CMDNAMES") "SELECT") (command pause) ) ) ) (setq ss1 (ssget "_P")) (setq ss2 (ssadd)); (setq enN (entlast)) (setq enN (lastent)) (command-s "_.copy" ss1 "" "_non" '(0 0) "") (while (entnext enN) (setq enN (entnext enN)) (ssadd enN ss2) ) (princ "\n") (setq p1 (getpoint "\nUrčete výchozí bod: ")) (command "_.move" ss1 "" "_non" p1 "_non" pause) (command-s "_.erase" ss2 "") (Command-s "._regen") (command-s "_.undo" "_e") (setvar "cmdecho" cmdsave) (setq *error* temperr) (princ))(defun lastent (/ a b) (if (setq a (entlast)) (while (setq b (entnext a)) (setq a b) ) ) a)(defun ErrorTrap (errmsg) (if (not (member errmsg '("console break" "Function Cancelled"))) (princ (strcat "\nError: " errmsg)) ) (command-s "_.undo" "_b") (Command-s"._regen") (setvar "cmdecho" cmdsave) (setq *error* temperr) (princ))(princ)
Petr752023-05-11 15:18:46