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?
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
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?
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.
Hofcad,
Als ik Attdia op 0 zet en daarna op het block met attribuut dubbelklik krijg ik als nog het dialoogscherm.
Heel apart.
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.
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
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.
Hofcad
ik ga het proberen en laat het weten.
bedankt in elk geval.
groeten jan-pieter
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
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
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)
)
)
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.
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.
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?
Citaat van: designer68 op ma 25 07 2011, 12:09:14
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.
ik heb er bij vermeldt:
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.
De lisp Noatt wil hier niet laden. (Dit snap ik niet. Probeer NaAttZ uit attachment in Antwoord #17)
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.
Citaat van: designer68 op ma 25 07 2011, 12:11:04
Ja dit is denk ik de beste methode.
dank je. (wat is de beste methode)
De handle in het textbestand kan ik niet in mijn tekening laten zien bij het block zeker? (waarvoor)
Beste Designer68,
Je moet in JP.txt de regels verwijderen van de block references die ingevuld zijnom NoAtt.lsp met de commando's NoAttZ en NoAttL te gebruiken.(zie attachment)
Stel je hebt:
'30141 testaangepast 0,0 Nietklaar
Dan is 30141 de handle
en je krijgt de entiteit via
(setq ent (handent "30141"))
of via
(setq s "30141" ent (handent s))
In zoomen gaat dan via:
ZOOM
Specify corner of window, enter a scale factor (nX or nXP), or
[All/Center/Dynamic/Extents/Previous/Scale/Window/Object] <real time>: O
Select objects: !ent
<Entity name: ??????????>
1 found
Select objects:
of via:
(command "_.ZOOM" "_O" ent "")
Met vriendelijke groet, HofCAD CSI.
PS Voor NoAtt.lsp zie attachment in Antwoord #17
Hofcad,
bedankt zover, maar jij vraagt waarvoor ik het label van de handle wil tonen.
De reden is dat ik een referentiebestand heb waar bij de drukunits nummers staan (dezelfde die ik via attribuut aan het block toevoeg).
Als hij mij het label laat zien van de handle kan ik de attout lijst op die manier aanvullen omdat ik kan zien dat de handle op dezelfde plaatst staat als bijv nummer 3 in de referentie.
Op die manier kan ik de lijst gewoon intypen dan omdat ik weet welke handle welk unitnummer is.
Daarna kan ik hem dan met attin inlezen en zijn de values ook ingevuld.
Jan-Pieter
Beste Designer68,
Heb je al NoAttZ geprobeerd uit NoAtt.lsp?
Als je NoAttL van NoAtt.lsp gebruikt bevries je daarna de laag
waarop deblock references oorspronkelijk stonden, en diegene
die dan nog zichtbaar zijn moet je bewerken.
Met vriendelijke groet, HofCAD CSI.
PS1 In mijn programma zou je ook een regel kunnen plaatsen.
(command "_.TEXT" pause "100" "0" S)
De teksthoogte 100 is door mij willekeurig gekozen, omdat bijna niemand
een echte tekening durft te plaatsen.
De aanname is hierbij dat de actieve tekststijl een variabele hoogte heeft.
Zie NoAttT in NoAtt.lsp.(zie attachment)
Je moet in JP.txt de regels verwijderen van de block references die ingevuld zijn
om NoAtt.lsp met de commando's NoAttZ, NoAttL en NoAttT te gebruiken.
PS2 Het commando HAND van Hand.lsp vraagt om een handle
en zoomt dan in op de entiteit en highlight het.
PS3 Het commando WRBLKHAN van WrBlkHan.lsp plaatst bij alle
block references van block "testaangepast" de handle met een
teksthoogte van 100.
De aanname is hierbij dat de actieve tekststijl een variabele hoogte heeft.
Heel erg bedankt voor je hulp HofCAD.
Hier kan ik mee uit de voeten.
Ik zal zelf ook eens een cursus lisp/vba gaan volgen, want is onmisbaar.
Groet Jan-Pieter