yoin

HofCAD

#15
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 zijn
om 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
ACADcadabra

designer68

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

HofCAD

#17
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.
ACADcadabra

designer68

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