Diskuzní fórum a databáze tipů a utilit pro AutoCAD, Inventor, Revit a další produkty Autodesk - od firmy Arkance Systems [www.cadforum.cz]
CZ | SK | EN | DE
Přihlášení
či registrace
   právě nás čte: 9103 
RSS kanál - CAD tipy RSS tipy
RSS diskuze

Diskuze Diskuzní fórum, poradna

 

NápovědaCAD diskuze, rady, výměna zkušeností

 
CAD Fórum - Homepage 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
  FAQ FAQ  Prohledat fórum   Události   Registrovat Registrovat  Přihlásit Přihlásit

Téma uzavřenoKOPIE hladiny v rámci několika výřezů

 Odpovědět Odpovědět archiv
Autor
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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
Zpět nahoru
johny Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 24.led.2006
Lokalita: ČR (JM)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 1671
Řešení Řešení
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 21434
Řešení Řešení
Přímý odkaz na tuto zprávu 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 (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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?
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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í.
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu Zasláno: 24.led.2019 v 10:16
Omlouvám se, jde o výřezy samozřejmě.
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu Zasláno: 25.led.2019 v 06:28
Jde to teda nějak?
 
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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.
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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í).
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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?
Zpět nahoru
johny Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 24.led.2006
Lokalita: ČR (JM)
Používám:
C3D 2022
Stav: Offline
Bodů: 1671
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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:


Připojené souborylspCopyLayer.lsp
(doplněn 27.1. 16:14 a 28.1. 8:25)

Upravil Vladimír Michl - 28.led.2019 v 08:25
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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.
 
 
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu 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.
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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ě?
Zpět nahoru
johny Zobrazit panel
TOP uživatel
TOP uživatel

Přihlášen: 24.led.2006
Lokalita: ČR (JM)
Používám:
C3D 2022
Stav: Offline
Bodů: 1671
Řešení Řešení
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Řešení Řešení
Přímý odkaz na tuto zprávu 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 (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru
Koluch Zobrazit panel
Zasloužilý člen
Zasloužilý člen

Přihlášen: 04.dub.2012
Lokalita: ČR (OS)
Používám:
AutoCAD 2018
Stav: Offline
Bodů: 166
Přímý odkaz na tuto zprávu 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
Zpět nahoru
Vladimír Michl Zobrazit panel
Moderátor
Moderátor
Avatar
Arkance Systems

Přihlášen: 09.zář.2004
Lokalita: ČR (JČ)
Používám:
Dodáváme produkty Autodesk
Stav: Offline
Bodů: 21434
Přímý odkaz na tuto zprávu Zasláno: 28.led.2019 v 10:06
Poděkování patří hlavně johnymu, v tomto případě jsem byl jen "údržbář" :-)
Vladimír Michl (moderátor)
Arkance Systems s.r.o. - www.arkance-systems.cz
(podpora viz hd.cads.cz)
Zpět nahoru

Pro technickou podporu CAD
kontaktujte Helpdesk

Příbuzné CAD tipy:
Tip 5869:Lze přiřadit výřezům samostatné výkresové styly?
Tip 1494:VIPJak okótovat ve výřezech výkresového prostoru v různých měřítcích?
Tip 4592:Vypnutí hladiny ve výřezu.
Tip 12764:Ve výkresovém prostoru rozvržení mi najednou nefunguje uchopení k objektu výřezu.
Tip 12538:Jak vykreslit část výřezů barevně a část černobíle?
Tip 7126:Nedokumentovaná volba příkazu VHLADINA.


 Odpovědět Odpovědět

Přejít na fórum Oprávnění fóra Zobrazit panel



Stránka byla vygenerována za 1,495 sekund.