yoin

designer68

mensen,

Ik heb in mijn tekening een aantal blocks staan (drukunits).
Nu wil ik graag dat er in dit blok de attributen maaiveld en nummer aan komen.
Als ik 1 block maak en voorzie van de attributen, wilde ik de drukunits in de tekening vervangen door dit block.
Helaas raak ik dan de attributen kwijt.

Wie kan me vertellen hoe dit kan?

HofCAD

#1
Beste Designer68,

Als je een block herdefinieerd (waarbij je iets toevoegd , verwijderd of veranderd aan de attributen),
dan moet je daarna met het commando ATTSYNC de attributen synchroniseren.
Dit kan je trouwens ook doen in de dialoogbox van het command BATMAN en de knop Sync.

Met vriendelijke groet, HofCAD CSI.

PS Zie bijv. http://www.cadsite.be/smf/index.php?topic=1691.msg8875#msg8875
http://www.cadsite.be/smf/index.php?topic=4158.msg21526#msg21526
http://www.cadsite.be/smf/index.php?topic=3876.msg19844#msg19844
http://www.cadsite.be/smf/index.php?topic=2780.msg14268#msg14268
http://www.cadsite.be/smf/index.php?topic=1253.msg7170#msg7170
ACADcadabra

designer68

Dank jullie, tot zover is het klaar.
Bij een ander blok die ik heb, (moederkasten) moeten dezelfde attributen komen.
Kan ik die met blockeditor gewoon van het ene blok naar het andere kopieren?

Verder wil ik graag het invoerveld op de command bar hebben en had ik gedaan met attdia op 1 te zetten, maar dan veranderd er niks en geeft hij nog steeds het dialoogscherm.

Enig idee hoe dit kan?

HofCAD

#3
Beste Designer68,

Zet de AutoCAD variabele Attdia op 0.
je kan 1 en 0 vertalen naar Ja en Nee.
Dus Attdia 0 vertaalt geeft: "Geef bij Attributen een dialoogbox Nee".

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

designer68

Hofcad,


Als ik Attdia op 0 zet en daarna op het block met attribuut dubbelklik krijg ik als nog het dialoogscherm.

Heel apart.

HofCAD

#5
Beste Designer68,

De AutoCAD variabele Attdia geeft een setting voor het invoegen van blocks
met attributen. (Dus niet voor bewerken!)
Gebruik ipv de commando's EATTEDIT en ATTEDIT eventueel het commando -ATTEDIT.
http://www.cadsite.be/smf/index.php?topic=2845.msg14581#msg14581

Met vriendelijke groet HofCAD CSI.
ACADcadabra

designer68

Beste mensen

Ik ben bezig met een heleboel block die ik heb voorzien van attributen.
Het gros van de attributen heb ik al ingevuld, maar diverse moeten nog.
Is er een mogelijkheid om de blocks met niet ingevulde attributen te selecteren of een cirkel erom te laten zetten of iets dergelijks?
Mijn werkgebied waar ze in zitten beslaat een behoorlijk groot gebied en het zijn 900 blocks voorzien van attribuut die erin zitten.

Dus kort gezegd mijn vraag: Hoe vindt ik de niet ingevulde blocks in mijn werkgebied?


groet jan-pieter

HofCAD

#7
Citaat van: designer68 op vr 22 07 2011, 08:15:12

Dus kort gezegd mijn vraag: Hoe vindt ik de niet ingevulde blocks in mijn werkgebied?

groet jan-pieter
Beste Designer68,

Probeer SRXTEXT.
http://www.cadesigner68dforum.cz/cadforum_en/how-to-find-blocks-with-an-empty-not-filled-in-attribute-tip7892
http://www.cadstudio.cz/en/download.asp?file=srxTEXT
Indien je reeds ingevulde attributen een gelijke waarde hebben, dan kun je ook
het AutoCAD commando FIND gebruiken.
http://www.cadforum.cz/cadforum_en/find-and-select-blocks-with-a-given-attribute-tip7669

Met vriendelijke groet, HofCAD CSI.

PS Reeds ingevulde block references zou ik op een aparte laag zetten, die OFF
of FROZEN staat.
ACADcadabra

designer68

Hofcad


ik ga het proberen en laat het weten.

bedankt in elk geval.

groeten jan-pieter

designer68

helaas werkt het niet voor wat ik zoek.
het zijn blocks met attributen zoals maaiveld hoogte en nummer.
bijv. D 196-1, D172-3 (verschillende series dus) en M 122, M133 etc.
dochter en moederkasten. van drukunits.

misschien kan ik met attout een lijst maken en daar de lege values een bepaalde waarde invullen (een woord of zo) en ga ik ze importeren en dan filteren op attribuut value en dan in een andere layer zetten.

groet jan-pieter

designer68

Hofcad,


Ik heb even een txt bestand bijgevoegd die ik heb gemaakt met attout.
In de eerste kolom staat de HAndle, die refereert naar een block.
Kan ik deze handle als label bij het block zetten, want ik weet niet welke Handle welk block is anders.
Op die manier kan ik met Find namelijk naar de niet ingevulde values zoomen via de lijst.

Heb je hier een idee over?

Jan-Pieter

HofCAD

#11
Beste Designer68,

Is het zo, dat in je JP.txt er maar 1 block reference is met niet ingevulde waarden?

Met vriendelijke groet, HofCAD CSI.

PS Stel dat in c:\Temp\JP.txt alleen maar die block references staan, waarop je wil inzoomen.
Je kan in Notepad de overbodige regels verwijderen.
Je kan dan via noatt zoomen:

(defun c:noatt (/ @STR2LST File i FileDes S ent)
 (defun @STR2LST (delim str / hlst n)
   (setq delim (ascii delim))
   (while (setq n (vl-string-position delim str))
     (setq hlst (cons (substr str 1 n) hlst)
   str (substr str (+ 2 n))
     )
   )
   (reverse (cons str hlst))
 )
 (setq File "c:\\Temp\\JP.txt"
 )
 (setq i (getint "Geef een volgnummer: "))
 (if (findfile File)
   (progn
     (setq fileDes (open File "r"))
     (repeat (+ i 1)
(setq s (read-line FileDes))
     )
     (if s
(progn
 (setq s (substr (car (@STR2LST "\t" s)) 2))
 (setq ent (handent s))
 (command "_.ZOOM" "_O" ent "")
)
     )
   )
   (princ (strcat "\nFile " File " not exist."))
 )
 (if FileDes
   (close FileDes)
 )
)

of je kan via NoAttL de block references op een andere laag zetten
(defun c:NoAttL (/ @STR2LST File FileDes S ent Lay ColLay LtLay LwLay)
 (defun @STR2LST (delim str / hlst n)
   (setq delim (ascii delim))
   (while (setq n (vl-string-position delim str))
     (setq hlst (cons (substr str 1 n) hlst)
   str (substr str (+ 2 n))
     )
   )
   (reverse (cons str hlst))
 )
 (setq File "c:\\Temp\\JP.txt"
 )
 (setq Lay    "NietKlaar"
ColLay "1"
LtLay  "Continuous"
LwLay  0.25
 )
 (if (not (tblsearch "LAYER" Lay))
   (command "_.LAYER" "_M" Lay "_C" ColLay "" "_L" LtLay "" "_LW" LwLay
    "" "")
   (command "_.LAYER" "_T" Lay "_ON" Lay "_S" Lay "")
 )
 (if (findfile File)
   (progn
     (setq fileDes (open File "r"))
     (while (setq s (read-line FileDes))
(if s
 (progn
   (setq s (substr (car (@STR2LST "\t" s)) 2))
   (setq ent (handent s))
   (command "_.CHPROP" ent "" "_LA" Lay "")
 )
)
     )
   )
   (princ (strcat "\nFile " File " not exist."))
 )
 (if FileDes
   (close FileDes)
 )
)
ACADcadabra

HofCAD

Beste Designer68,

Je kan natuurlijk ook je JP.txt veranderen en daar waar nog geen attribuutwaarden
bijv. het volgende invullen:
'30141   testaangepast   0,0   Nietklaar
Daarna het commando ATTIN gebuiken en daarna het commando FIND
gebruiken en zoeken naar de tekst Nietklaar.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

designer68

Hofcad,


De lisp Noattl.lsp werkt wel, die gooit alle blocks in de layer Niet Klaar.
Hij kijkt niet naar ingevulde of niet ingevulde velden van de attributen.
Wat deze routine doet is dus alle blocks in de layer niet klaar zetten.

De lisp Noatt wil hier niet laden.

Hoe kom ik erachter welke HAndle uit de txt hoort bij welk block?
als ik in de attout bestand wat in wil vullen is dat moeilijk omdat ik niet weet welke handle refereert naar wel block.


groet, jan-pieter.

designer68

Ja dit is denk ik de beste methode.
dank je.

De handle in het textbestand kan ik niet in mijn tekening laten zien bij het block zeker?


FastFiber