yoin

Paul

Ik heb een tekening ontvangen van een studiebureau.
Maar de blocks zijn gekleurd, niet bylayer.  Ik kan deze niet in 1 keer veranderen van kleur.
Als ik deze bv kleur 8 wil geven, zou ik deze eerst moeten exploderen, maar dan zijn de attributen weg.
Weet er iemand een oplossing?

Danny

Beste Paul,

U kan de kleur veranderen in de block editor. Klik het blok aan, daarna met u rechtermuisknop
en u kiest block editor of edit block in place. Vervolgens selecteerd u de lijnen en kiest u bylayer
of de gewenste kleur. Hoop u genoeg geïnformeerd te hebben.

Mvg,
Danny

Paul

Dank je wel, dit werkt, ik kan zo zelfs andere dingen aanpassen.
Maar er wordt een talud symbool weergegeven en dat zijn er enkele honderden in 1 tekening.  Ik heb geprobeerd met de filter om ze allemaal aan te duiden en dan in 1 keer bylayer te plaatsen maar dat is niet gelukt.
Ik kan ze natuurlijk moeilijk allemaal een voor een veranderen.

BTW ik vind het verder een prachtig forum.  Al spreek ik een beetje engels, het is toch stukken makkelijker in het nederlands.

bart

een truckje om alles bij layer te krijgen werkt vanaf 2000 als je de express tools hebt geinstalleerd

open de tekening
start layer translator van de expresstools
selecteer alle lagen in het linkervenster
set bij settings in de translator voor alles bij layer aan
en selecteer oop de opties lagen in blocks

selecteer bij translate toe nu de tekening waarmee je aan het werk bent met load
in het rechter venster verschijnen dan de zelfde lagen als in het linkervenster
en druk dan op de optie same as
en vervolgens op translate
(het opslaan van de veranderingen kan je met nee beantwoorden)
nu is alles bij layer ook in de blocken

het aanpassen van de kleuren gaat nu zoals je gewend bent.
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

Reimer

Beste Paul,

wanneer je de inhoud van een block veranderd dan worden toch alle exemplaren van dat block in je tekening automatisch bijgewerkt. Wanneer je met de block editor de inhoud van het block talud veranderd, dan worden alle blocken met de naam talud bijgewerkt.

Manu

Reimer,

volgende lisp zet alle blokken in je tekening automatisch 'bylayer' ...

groeten,

Manu

;;;   File Name: Layerfix.LSP
;;;   Description:  Changes the block definitions to BYLAYER .  Will skip all
;;;                 XREF & XREF dependent blocks.
;;;
;;;   Global Variables:  None
;;;
;;;   Local Variables:  Self-explanatory
;;;
;;;   Program Arguments:  None
;;;   Subroutines/Functions Defined or Called:  None
;;;
;;;***************************************************************************


(defun LAYERFIX (/ BLKDATA NEWCOLOR NEWCOLOR NEWLAYER LAYER XREFFLAG XDEPFLAG BLKENTNAME
                     COUNT ENTDATA ENTNAME ENTTYPE OLDCOLOR OLDLAYER SSCOUNT SS)
   
   (command ".undo" "group")
   (setq BLKDATA (tblnext "BLOCK" t))
   (setq NEWCOLOR (cons 62 256))  ;this will set 62 (color) to bylayer
;   (setq NEWLAYER (cons 8 "0"))  ;this will set 8 (layer) to 0
   ; While there is an entry in the block table to process, continue
   (while BLKDATA
      (prompt "\nRedefining colors for block: ")
      (princ (cdr (assoc 2 BLKDATA)))
      ; Check to see if block is an XREF or is XREF dependent
      (setq XREFFLAG (assoc 1 BLKDATA))
      (setq XDEPFLAG (cdr (assoc 70 BLKDATA)))
      ; If block is not XREF or XREF dependent, i.e., regular block, then proceed.
      (if (and (not XREFFLAG) (/= (logand XDEPFLAG 32) 32))
         (progn
            (setq BLKENTNAME (cdr (assoc -2 BLKDATA)))
            (setq COUNT 1)
            (terpri)
            ; As long as we haven't reached the end of the block's defintion, get the data
            ; for each entity and change its color assignment to BYLAYER.
            (while BLKENTNAME
               (princ COUNT)
               (princ "\r")
               (setq ENTDATA (entget BLKENTNAME)); get entities data
               (setq OLDCOLOR (assoc 62 ENTDATA))  ;get entities old color value
               (if OLDCOLOR                         ; if value exist (null = bylayer)
                  (entmod (subst newcolor oldcolor ENTDATA)) ; substitute old color to byblock
                  (entmod (cons newcolor ENTDATA))      ; modify ent data w/ byblock values
               )
               (setq BLKENTNAME (entnext BLKENTNAME)) ;if attributes exist, then edit next one
               (setq COUNT (+ COUNT 1));
            ) ;end while for attribute trap
         ) ;progn
         (progn
            (princ "    XREF...skipping!")
         ) ;progn
      );end if not an Xref
      (setq BLKDATA (tblnext "BLOCK")) ;next block please
   ) ;end while loop of blk data available to edit
   (command ".undo" "end")
   (command ".regen")
   (PROMPT "\nDone... ")
   (princ)
)
(LAYERFIX)
AutoCad 2000 - 2007 - 2008
Sketchup 4-5-6

Paul

Heel erg bedankt allemaal voor de reactie.
Ik heb nu niet veel tijd om het uit te proberen.  En ik zal ook eerst eens iets over lisp lezen op de site, ziet er erg interessant uit allemaal.

Paul

FastFiber