Diskuzní fórum, poradna
CAD diskuze, rady, výměna zkušeností |
Veřejné diskuzní fórum k CAD aplikacím - ptejte se na libovolné otázky týkající se oboru CAx, podělte se o vaše znalosti a zkušenosti s programy AutoCAD, Inventor, Revit, Fusion 360, 3ds Max a s dalšími CAD aplikacemi.
Zaregistrujte se nebo se přihlašte a zašlete váš příspěvek do odpovídajícího fóra. Viz další informace o CAD Fóru. Nechcete se registrovat? Zeptejte se v naší Facebook poradně.
Fórum nenahrazuje technický support firmy Arkance Systems (CAD Studio) - přímá podpora pro zákazníky funguje na helpdesk.cadstudio.cz
KOPIE hladiny v rámci několika výřezů |
Odpovědět | archiv |
Autor | |
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Téma: KOPIE hladiny v rámci několika výřezů Zasláno: 24.led.2019 v 06:41 |
Dobrý den,
prosím Vás, dá se nějak zkopírovat hladina? Mám hladinu a tu si chci zkopírovat a přejmenovat. Jde mi o to, aby měla stejné vlastnosti (viditelnost/neviditelnost) v daných výřezech. Při vytvoření nové hladiny jde buď všude zmrazit nebo všude vidět. Děkuji za radu. Lukáš Kolúch
Upravil Koluch - 24.led.2019 v 12:50 |
|
johny
TOP uživatel Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: AutoCAD 2018 Stav: Offline Bodů: 1671 |
Řešení Zasláno: 27.led.2019 v 20:25 |
Toto by mohlo pomoci.
(foreach l (layoutlist) (if (and (setq lst (vl-remove-if-not '(lambda (e) (vl-remove-if-not '(lambda (x) (= old (cdr (assoc 2 (entget (cdr x)))))) (vl-remove-if-not ; just vp-frozen entities '(lambda (x) (= 331 (car x))) (entget e)))) ; entity's def. list inc. vp-frozen (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_X" (list '(0 . "VIEWPORT") (cons 410 l)))))))) ; all entities (setvar 'CTAB l) (vl-cmdf "_.ZOOM" "_Extents" "_.MSPACE") (setq lst (vl-sort (mapcar '(lambda (e) (cdr (assoc 69 (entget e)))) lst) '<)) ) (progn (setq lst (if (setq 1st (= (car lst) 1)) (cdr lst) lst)) (foreach e lst (setvar 'CVPORT e) (vl-cmdf "_.VPLAYER" "_Freeze" new "_Current" "")) (vl-cmdf "_.PSPACE" "_ZOOM" "_Previous") (if 1st (vl-cmdf "_.VPLAYER" "_Freeze" new "_Current" ""))))) Upravil johny - 27.led.2019 v 23:05 |
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: AutoCAD 2018 Stav: Offline Bodů: 21470 |
Řešení Zasláno: 28.led.2019 v 08:27 |
Opět jsem si dovolil johnyho aktualizaci promítnout do LSP soubor viz výše - zkuste tuto aktualizovanou verzi.
|
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Zasláno: 24.led.2019 v 07:22 |
Většinu vlastností nová hladina zdědí od hladiny, která je ve Správci vybrána v okamžiku, kdy použijete funkci Nová.
Viz též úskalí https://www.cadforum.cz/cadforum/nelze-vytvorit-novou-hladinu-vyhovujici-aktivnimu-filtru-hladin-tip10675 Nebo jste měl na mysli obsah hladiny? |
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 24.led.2019 v 09:08 |
Nene obsah hladiny nechci kopírovat.
Mám 50 rozvržení, ve 30 mám hladinu X zmraženou a ve 20 rozvrženích hladinu X odmraženou. Nyní chci vytvořit hladinu Y a od té chci, aby to co do ní budu kreslit, tak šlo vidět v těch rozvrženích, jako hladina X. Pokud vytvořím novou hladinu, tak buď bude viditelná všude, nebo neviditelná všude V podstatě kopie hladiny (bez obsahu hladiny). Jde to? Děkuji. LK
|
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Zasláno: 24.led.2019 v 10:14 |
To asi jednoduše nepůjde. Přepsání hladin funguje na výřezy, ne na rozvržení. Vlastnosti hladin zkopírujete mezi výřezy přes
KOPIEVLAST, ale to asi nebude vyhovovat kvůli přenosu ostatních vlastností.
|
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 24.led.2019 v 10:16 |
Omlouvám se, jde o výřezy samozřejmě.
|
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 25.led.2019 v 06:28 |
Jde to teda nějak?
|
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Zasláno: 25.led.2019 v 07:47 |
Viz výše - částečně přes MATCHPROP, ale přes uživatelské prostředí to jinak zřejmě nepůjde. Jedině asi napsat nějaký programový nástroj.
|
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 25.led.2019 v 11:31 |
Přijde mi to jako základní funkce.
Dva měsíce člověk něco kreslí a chce pak něco doplnit, tak pak přece nebude klikat na všechny výřezy (jeden výřez na jednom rozvržení).
|
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 25.led.2019 v 13:41 |
OK zeptám se jinak.
Jak vytvořit novou hladinu, která bude zmražená pouze v některých rozvrženích (co rozvržení to výřez)? Pokud kreslím od nuly, tak mám například Hladinu1 zmraženou ve výřezu 1,3,5,100 (a použiji funkci zmrazit v nových výřezech). Teď chci však dokreslit něco v nové Hladině2, která se tematicky váže k Hladině1 a tudíž musí být opět zmražena ve výřezech 1,3,5,100. Jak toho docílit?
|
|
johny
TOP uživatel Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: C3D 2022 Stav: Offline Bodů: 1671 |
Zasláno: 25.led.2019 v 20:03 |
Kopírujete hladinu vybraného objektu nebo aktuální hladinu.
Hledejte jak použít LISP, pokud nevíte. (vl-load-com) (defun c:CopyLayer (/ *error* ctb cme doc vpfreeze new old ss ids) (defun *error* (errmsg) (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break,end")) (princ (strcat "\nError: " errmsg))) (if ctb (setvar 'CTAB ctb)) (if cme (setvar 'CMDECHO cme)) (if doc (vla-endundomark doc)) (princ)) ;---- (defun :CopyLayer (new old / ed ) (if (setq ed (entget (tblobjname "LAYER" old))) (entmake (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 new) (assoc 70 ed) (assoc 62 ed) (assoc 6 ed) (assoc 290 ed) (assoc 370 ed) (assoc 390 ed))))) ; ----------------------------------------------------------------------------------------------------------- ; ----------------------------------------------------------------------------------------------------------- (setq old (if (setq ssl (ssget)) (cdr (assoc 8 (entget (ssname ssl 0)))) (getvar 'CLAYER)) new "" ctb (getvar 'CTAB) cme (getvar 'CMDECHO)) (vla-startundomark (setq doc (vla-get-activedocument (vlax-get-acad-object)))) (setvar 'CMDECHO 0) (while (or (not (snvalid new 0)) (tblsearch "LAYER" new)) (setq new (lisped old))) (if (:CopyLayer new old) (foreach e (layoutlist) (if (setq ss (ssget "_X" (list '(0 . "VIEWPORT") (cons 410 e) (cons -4 "!=") (cons 69 1)))) (progn (setq ids nil) (repeat (setq i (sslength ss)) (if (and (setq ent (ssname ss (setq i (1- i)))) (setq lst (vl-remove-if-not '(lambda (x) (= 331 (car x))) (entget ent))) (setq lst (vl-remove-if-not '(lambda (x) (= old (cdr (assoc 2 (entget (cdr x)))))) lst)) ) (setq ids (cons (cdr (assoc 69 (entget ent))) ids)))) (if ids (progn (setvar 'CTAB e) (command "_.MSPACE") (foreach id ids (setvar 'CVPORT id) (command "_.VPLAYER" "_Freeze" new "_Current" "")) (command "_.PSPACE"))))))) (*error* "end") ) Upravil johny - 25.led.2019 v 20:06 |
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Zasláno: 25.led.2019 v 22:45 |
Taky jsem se do toho pustil - zkuste utilitu/příkaz CopyAllVP ze sekce Download (načíst přes APLČTI a napsat příkaz CopyAllVP). Zkopíruje stav hladin jednoho rozvržení do všech ostatních. Používá jiný postup než aplikace Johnyho, stavy hladin. Tak si můžete vybrat :-)
DOPLNĚNO: Pardon, ten CopyAllVP řeší trochu jiný problém - pro duplikaci hladiny použijte ten výše uvedený program, funguje dobře. Zde lehce upraven/doplněn: (doplněn 27.1. 16:14 a 28.1. 8:25) Upravil Vladimír Michl - 28.led.2019 v 08:25 |
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 26.led.2019 v 12:28 |
Lisp (copylayer) se mi načte, příkaz spustím, ale:
napíše mi to? úprava víceřádkového textu a po kliknutí na Plný editor to napíše Error: nesprávný typ argumentu: stringp -1. Navíc příkaz nelze ukončit ESC, ani OK ani storno. |
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Zasláno: 27.led.2019 v 16:13 |
Plný editor zde nemá žádný smysl. Johny jej zde použil zřejmě pro pohodlnou modifikaci názvu kopie hladiny. Když vypnete CMDDIA, můžete název zadávat klasicky v příkazovém řádku. A ukliknutí na Plný editor je nyní v upravené verzi také ošetřeno. Já myslím, že to dělá to chcete.
|
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 27.led.2019 v 17:30 |
OK, když použiji LISP copylayer, tak se mi vytvoří nová hladina ***_copy. Když v té hladině ***_copy něco nakreslím, tak se mi to objeví ve výřezech, ve kterých to nechci, Nevím co všechno COPYLAYER kopíruje za vlastnosti, ale zmraženost/rozmraženost asi ne. Nebo dělám něco špatně?
|
|
johny
TOP uživatel Přihlášen: 24.led.2006 Lokalita: ČR (JM) Používám: C3D 2022 Stav: Offline Bodů: 1671 |
Řešení Zasláno: 27.led.2019 v 20:25 |
Toto by mohlo pomoci.
(foreach l (layoutlist) (if (and (setq lst (vl-remove-if-not '(lambda (e) (vl-remove-if-not '(lambda (x) (= old (cdr (assoc 2 (entget (cdr x)))))) (vl-remove-if-not ; just vp-frozen entities '(lambda (x) (= 331 (car x))) (entget e)))) ; entity's def. list inc. vp-frozen (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget "_X" (list '(0 . "VIEWPORT") (cons 410 l)))))))) ; all entities (setvar 'CTAB l) (vl-cmdf "_.ZOOM" "_Extents" "_.MSPACE") (setq lst (vl-sort (mapcar '(lambda (e) (cdr (assoc 69 (entget e)))) lst) '<)) ) (progn (setq lst (if (setq 1st (= (car lst) 1)) (cdr lst) lst)) (foreach e lst (setvar 'CVPORT e) (vl-cmdf "_.VPLAYER" "_Freeze" new "_Current" "")) (vl-cmdf "_.PSPACE" "_ZOOM" "_Previous") (if 1st (vl-cmdf "_.VPLAYER" "_Freeze" new "_Current" ""))))) Upravil johny - 27.led.2019 v 23:05 |
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Řešení Zasláno: 28.led.2019 v 08:27 |
Opět jsem si dovolil johnyho aktualizaci promítnout do LSP soubor viz výše - zkuste tuto aktualizovanou verzi.
|
|
Koluch
Zasloužilý člen Přihlášen: 04.dub.2012 Lokalita: ČR (OS) Používám: AutoCAD 2018 Stav: Offline Bodů: 166 |
Zasláno: 28.led.2019 v 09:47 |
johny a Vladimír Michl jsou borci
Vůbec nerozumím zdrojovému kódu, ale funguje tak jak jsem potřeboval, děkuji. Regenerace přes výřezy a rozvržení probíhala cca 3 minuty, ale udělalo to to co mělo. Takže ještě jednou děkuji. Lukáš Kolúch
|
|
Vladimír Michl
Profil člena
Odeslat soukromou zprávu
Najít příspěvky člena
Navštívit stránky člena
Přidat do seznamu známých
Moderátor Arkance Systems Přihlášen: 09.zář.2004 Lokalita: ČR (JČ) Používám: Dodáváme produkty Autodesk Stav: Offline Bodů: 21470 |
Zasláno: 28.led.2019 v 10:06 |
Poděkování patří hlavně johnymu, v tomto případě jsem byl jen "údržbář" :-)
|
|
Pro technickou podporu CAD
kontaktujte Helpdesk
Odpovědět | |
Přejít na fórum | Oprávnění fóra Nemůžete vytvářet nová témata v tomto fóru Nemůžete odpovídat na témata v tomto fóru Nemůžete vymazávat vaše příspěvky v tomto fóru Nemůžete upravovat vaše příspěvky v tomto fóru Nemůžete vytvářet ankety v tomto fóru Nemůžete hlasovat v anketách v tomto fóru |
Stránka byla vygenerována za 1,391 sekund.