Vytisknout stránku | Zavřít okno

Výber objektu - jak upravit efekty

Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: AutoCAD
Popis fóra: Otázky kolem aplikací AutoCAD a AutoCAD LT, AutoCAD 360, prohlížečů, DWG a DWF, Design Review, Navisworks, nadstavby, 123D, A360 a cloud Autodesk 360
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=34127
Datum vytištění: 30.kvě.2026 v 20:17


Téma: Výber objektu - jak upravit efekty
Odeslal: Lufttechnik
Předmět: Výber objektu - jak upravit efekty
Datum odeslání: 16.bře.2023 v 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.



Odpovědi:
Odeslal: splonk
Datum odeslání: 16.bře.2023 v 22:01
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.


-------------
JASponza

ACA (AutoCAD) 21, 24
RVT 21, 24

Win 10, 11 x64


Odeslal: Lufttechnik
Datum odeslání: 16.bře.2023 v 22:09
Ano , ďakujem. Našiel som to aj vpravo dole na lište - v System variable monitor.


Odeslal: Lufttechnik
Datum odeslání: 12.dub.2023 v 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 ?


Odeslal: Petr75
Datum odeslání: 14.dub.2023 v 08:49
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.


Odeslal: splonk
Datum odeslání: 14.dub.2023 v 10:28
Původně odeslal(a) Lufttechnik Lufttechnik napsal(a):

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.

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í... :-)


-------------
JASponza

ACA (AutoCAD) 21, 24
RVT 21, 24

Win 10, 11 x64


Odeslal: Lufttechnik
Datum odeslání: 14.dub.2023 v 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.


Odeslal: Petr75
Datum odeslání: 14.dub.2023 v 14:04
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)


Odeslal: Lufttechnik
Datum odeslání: 14.dub.2023 v 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.


Odeslal: johny
Datum odeslání: 14.dub.2023 v 20:45
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" rel="nofollow - https://forums.autodesk.com/t5/autocad-forum/--whats-your-autocad-background-color--/m-p/11724413


Odeslal: Vladimír Michl
Datum odeslání: 15.dub.2023 v 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á.

-------------
Vladimír Michl (moderátor)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz emea.support.arkance.world)


Odeslal: Petr75
Datum odeslání: 10.kvě.2023 v 16:01

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)



Odeslal: johny
Datum odeslání: 11.kvě.2023 v 12:29
Původně odeslal(a) Petr75 Petr75 napsal(a):

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) ...


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.


Odeslal: Petr75
Datum odeslání: 11.kvě.2023 v 12:59
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.


Odeslal: johny
Datum odeslání: 11.kvě.2023 v 13:42
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í. 


Odeslal: Petr75
Datum odeslání: 11.kvě.2023 v 14:38
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)



Vytisknout stránku | Zavřít okno