FastFiber

Stempel mbv LISP uitlezen en voorzien van nieuwe informatie (opgelost)

Gestart door WdeCroon, ma 25 04 2011, 18:00:20

Vorige topic - Volgende topic

WdeCroon

[De LISP routine van Rudy helpt me goed op weg. De LISP-routines van HofCAD werken perfect.]

Hoi, ik ben nieuw hier op het forum en relatief nieuw wat betreft LISP. Ik ben nu een aantal jaar tekenaar en maak wel eens gebruik van LISP. Tot op heden alleen maar commando's aan elkaar rijgen en misschien een controle door middel van een condition.

Nu heb ik echter een probleempje. Ik wil graag een block met daarin attributen uitlezen en voorzien van nieuwe informatie. De informatie die ik op internet vind is zo overweldigend dat ik geeneens meer weet waar ik nou moet beginnen. Ik had in gedachten om dit block in een selection set te zetten. Vervolgens te zoeken naar de juiste attribuut naam en dan een nieuwe waarde in vullen. Lijkt simpel, maar helaas weet ik niet genoeg van LISP af om met een oplossing te komen.

Ik hoop dat iemand me hiermee kan helpen.

Wouter

Edit: Zie bijlage

Het gaat hierbij om de volgende: WZ_CODEA("A"), WZ_DATUMA("16-04-2011"), WZ_OMSCHRA("Revisie"), WZ_INITSA("WDC") en WZ_GOEDA("PRU"). Deze waarden moeten worden ingevuld zonder dat andere waarden worden gewijzigd. De nieuwe waarden staan tussen haakjes achter de genoemde tag.

Daarbij komt dat ik niet per definitie zomaar het blok XTRAST2001 kan aanpassen. Het blok komt in meerdere tabbladen voor die per tekening weer andere namen hebben. Wat me een goede oplossing leek was om het block gewoon te selecteren, laten controleren of het xtrast2001 is en de gegevens invullen.

Ik werk met ACAD 2008. Ik gebruik Windows XP 32bit. Ik hoop dat dit genoeg informatie is.

EddyBeerke

Je kunt met de expresstools attributen uitlezen naar een txt: ATTOUT
Deze kun je dan bv in excel laden, dan het je alle waardes en je kunt deze veranderen.
Met ATTIN kun je dan de block's opwaarderen met de nieuwe informatie.

PS.
Let wel op dat als je het bestand met excel bewerkt dat je goed oplet met bv 1:500,
Excel maakt daar 0,388888888888889 van.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

WdeCroon

Citaat van: EddyBeerke op di 26 04 2011, 06:57:46
Je kunt met de expresstools attributen uitlezen naar een txt: ATTOUT
Deze kun je dan bv in excel laden, dan het je alle waardes en je kunt deze veranderen.
Met ATTIN kun je dan de block's opwaarderen met de nieuwe informatie.

PS.
Let wel op dat als je het bestand met excel bewerkt dat je goed oplet met bv 1:500,
Excel maakt daar 0,388888888888889 van.


Wat ik als doel voor ogen had was om het automatisch te doen. Met attout en attin moet ik alsnog zelf text gaan invullen. Ook kan ik geen gebruik maken van een template-textfile omdat veel gegevens verschillen per tekening. De enige waarden die verandert moeten worden zijn een wijzigingsletter en datum met omschrijving, die overal gelijk zijn (Revisie).

HofCAD

Citaat van: EddyBeerke op di 26 04 2011, 06:57:46
PS.
Let wel op dat als je het bestand met excel bewerkt dat je goed oplet met bv 1:500,
Excel maakt daar 0,388888888888889 van.
Beste Eddy,

Dat ligt aan je zelf, want jij vertikt het om in de 'Wizard Tekst importeren'
om op het derde blad de kolom van de schaal het 'Tekst' Gevenstype mee te geven.
(zie bijlage)

Beste WdeCroon,

Waarom vertikt het toch iedereen om bij een vraag duidelijk te specificeren
zoals de blocknaam, attribuut tags enz. en er voor het gemak  een tekening
bij te voegen.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

WdeCroon

Citaat van: HofCAD op di 26 04 2011, 15:56:06
Waarom vertikt het toch iedereen om bij een vraag duidelijk te specificeren
zoals de blocknaam, attribuut tags enz. en er voor het gemak  een tekening
bij te voegen.

Mijn excuses hiervoor. Hierbij alsnog een screenshot van de eigenschappen van het block dat ik wil manipuleren.

Het gaat hierbij om de volgende: WZ_CODEA("A"), WZ_DATUMA("16-04-2011"), WZ_OMSCHRA("Revisie"), WZ_INITSA("WDC") en WZ_GOEDA("PRU"). Deze waarden moeten worden ingevuld zonder dat andere waarden worden gewijzigd. De nieuwe waarden staan tussen haakjes achter de genoemde tag.

Daarbij komt dat ik niet per definitie zomaar het blok XTRAST2001 kan aanpassen. Het blok komt in meerdere tabbladen voor die per tekening weer andere namen hebben. Wat me een goede oplossing leek was om het block gewoon te selecteren, laten controleren of het xtrast2001 is en de gegevens invullen.

Ik werk met ACAD 2008. Ik gebruik Windows XP 32bit. Ik hoop dat dit genoeg informatie is.

Bij voorbaat dank,

Wouter

p.s. De screenshot is van een ACAD 2011 versie

EddyBeerke

Citaat van: HofCAD op di 26 04 2011, 15:56:06
Beste Eddy,

Dat ligt aan je zelf, want jij vertikt het om in de 'Wizard Tekst importeren'
om op het derde blad de kolom van de schaal het 'Tekst' Gevenstype mee te geven.
(zie bijlage)

Beste WdeCroon,

Waarom vertikt het toch iedereen om bij een vraag duidelijk te specificeren
zoals de blocknaam, attribuut tags enz. en er voor het gemak  een tekening
bij te voegen.

Met vriendelijke groet, HofCAD CSI.
Ben het met je eens dat dit de juiste manier is, maar...
Wat als je iets overslaat? Omdat jij veel weet van Excel de vraag: kun je dan ook alles als tekst importeren zonder allse apart aan te wijzen?
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

#6
Citaat van: EddyBeerke op wo 27 04 2011, 07:16:51
Ben het met je eens dat dit de juiste manier is, maar...
Wat als je iets overslaat? :lachen: :lachen: Omdat jij veel weet van Excel :roll: de vraag: kun je dan ook alles als tekst importeren zonder allse apart aan te wijzen?
Beste Eddy,

Je opmerking t.a.v. mijn  Excel kennis is erg overdreven.
Om een tekstbestand (*.txt) volledig als tekst te importeren,
kun je de extensie van .txt naar .cvs veranderen.
Een groot nadeel is daarbij, dat je geen kolommenscheiding krijgt.

Beter is het om op derde blad in de 'Wizard Tekst importeren' met ingedrukte Shift toets
de laatste kolom aan te wijzen, want dan worden alle kolommen geselecteerd.
Want dan kun je alle kolommen tegelijk het 'Tekst' Gevenstype mee geven.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

WdeCroon

Citaat van: HofCAD op wo 27 04 2011, 09:06:30
Beste Eddy,

Je opmerking t.a.v. mijn  Excel kennis is erg overdreven.
Om een tekstbestand (*.txt) volledig als tekst te importeren,
kun je de extensie van .txt naar .cvs veranderen.
Een groot nadeel is daarbij, dat je geen kolommenscheiding krijgt.

Beter is het om op derde blad in de 'Wizard Tekst importeren' met ingedrukte Shift toets
de laatste kolom aan te wijzen, want dan worden alle kolommen geselecteerd.
Want dan kun je alle kolommen tegelijk het 'Tekst' Gevenstype mee geven.

Met vriendelijke groet, HofCAD CSI.

Kunnen we het hier on-topic houden?

Rudy

#8
Misschien kun je met bijgevoegde lisp al iets aanvangen.
Chat.lsp in autocad laden.
commando starten met chat.
Block selecteren.
Nu krijg je een lijst met alle attributes in het block.
Het nummer van het te wijzigen attribute ingeven en het attribute wijzigen.
Deze wijziging wordt weggeschreven in een textbestand en hergebruikt bij
een volgende wijziging.
Ik hoop dat je hiermee al een beetje bent geholpen.

Rudy
Autocad 2013 / 2016

WdeCroon

Citaat van: Rudy op wo 27 04 2011, 10:29:35
Misschien kun je met bijgevoegde lisp al iets aanvangen.
Chat.lsp in autocad laden.
commando starten met chat.
Block selecteren.
Nu krijg je een lijst met alle attributes in het block.
Het nummer van het te wijzigen attribute ingeven en het attribute wijzigen.
Deze wijziging wordt weggeschreven in een textbestand en hergebruikt bij
een volgende wijziging.
Ik hoop dat je hiermee al een beetje bent geholpen.

Rudy

Dank je wel Rudy. Ik denk dat ik dit heel goed kan gaan gebruiken.

HofCAD

#10
Citaat van: WdeCroon op wo 27 04 2011, 09:44:26
Kunnen we het hier on-topic houden? :twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:
Beste Kroon,

Het gebruik van ATTOUT, ATTIN en Excel behoren o.a. door EddyBeerke en mij
tot het topic.
Als je in alle blockreferenties van Xtrast2001(dus ook in alle Layouts) de 5 attributen
wil veranderen: Gebruik dan eventueel Kroon.lsp of KroonDia.lsp met dialoogbox.

ACADcadabra

WdeCroon

Citaat van: HofCAD op wo 27 04 2011, 15:57:29
Beste Kroon,

Het gebruik van ATTOUT, ATTIN en Excel behoren o.a. door EddyBeerke en mij
tot het topic.
Als je in alle blockreferenties van Xtrast2001 de 5 attributen wil veranderen:
Gebruik dan eventueel Kroon.lsp of KroonDia.lsp met dialoogbox.



Ik was even bang dat dit topic overgenomen zou worden door een discussie over het gebruik van een wizard in excell.... het leek even persoonlijk te worden tussen Eddy en u. Mijn excuses voor mijn wat overhaaste conclusie (:oops:).

Kroondia werkt perfect, maar kroon krijg ik helaas zo snel nog niet werkend, ben net terug van overwerk. Moet er morgen nog even naar kijken hoe alles werkt. Hoop dat ik het een beetje kan doorgronden. Bedankt voor de moeite, ik hoop dat het je niet te veel tijd heeft gekost.

EddyBeerke

Citaat van: HofCAD op wo 27 04 2011, 09:06:30
Beste Eddy,

Beter is het om op derde blad in de 'Wizard Tekst importeren' met ingedrukte Shift toets
de laatste kolom aan te wijzen, want dan worden alle kolommen geselecteerd.
Want dan kun je alle kolommen tegelijk het 'Tekst' Gevenstype mee geven.

Met vriendelijke groet, HofCAD CSI.

Dit is volgens mij de tip van de dag!!!
Ik wist niet dat dit kon. Bedankt en neem er eentje van mij:  :pintje:
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

Beste Croon,

Download kroon.lsp opnieuw, want er zat een foutje in.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

WdeCroon

Citaat van: HofCAD op do 28 04 2011, 08:56:00
Beste Croon,

Download kroon.lsp opnieuw, want er zat een foutje in.

Met vriendelijke groet, HofCAD CSI.

Vriendelijk bedankt voor de wijziging. Ik ga de nieuwe versie, enigszins aangepast, gebruiken. Het valt me echter wel op dat er veel visual basic commando's instaan. En in grove lijnen kan ik het wel volgen, maar de commando's zelf zijn mij onbekend. Het is natuurlijk vragen naar het geheim van de smid, maar hoe zijn jullie aan de kennis gekomen om zulke programma's te schrijven?