FastFiber

Attributen

Gestart door mvissche, di 10 03 2009, 14:39:41

Vorige topic - Volgende topic

mvissche

Op het scherm klik ik met de muis op een attribuut.
Wat ik nu wil is dit attribuut kunnen editten. Als ik de gegevens van het block opvraag krijg ik wel een lijst met attributes,maar weet niet welke ik geselecteerd heb. Weet hier iemand raad? Ik heb de volgende code.

Dim ssetObj As AcadSelectionSet
Dim grpcode(0 To 1) As Integer
Dim datavalue(0 To 1) As Variant
Dim b As AcadBlockReference 'Toegevoegd voor Att
Dim attribuut As AcadAttributeReference 'Toegevoegd voor Att

grpcode(1) = 0: datavalue(1) = "Insert"
Set ssetObj = ThisDrawing.SelectionSets.Add("AlleTeksten")
ssetObj.SelectOnScreen grpcode, datavalue

For Each b In ssetObj ' Haal attributen op
If b.HasAttributes Then attributen = b.GetAttributes
  For i = LBound(attributen) To UBound(attributen)
    Set attribuut = attributen(i)
   â€˜ ?????
  Next i
Next b



Joop

Veel simpeler:
dubbekklikken op de attribute  :!:
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

mvissche

Oke dat was mij bekend. ;-),
Wat ik wil is een routine in VBA maken die een attribute edit om er berekeningen op los te laten en weer terug te schrijven.
Wat mij niet lukt is middels selectonscreen een attribuut te selecteren. Het blok wordt geselecteerd. Zo weet ik nooit welke attribuut ik wil aanpassen.
Heb je nog meer tips ;-)

Groet, Martin

EddyBeerke

Als je op de tekst (attribute) klikt kun je het punt (coords) van aanklikken vergelijken met de coords van de attributes.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

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

mvissche

Bedankt voor het antwoord.
Het probleem met het opvragen van de coordinaten is dat dit niet overeen zal komen met het insertionpoint van de attribute omdat overal op de tekst geklikt kan worden.

bart

In lisp de tag gebruiken om de juiste  attribute te selecteren
De attributen en de lisp moeten dan wel op elkaar zijn toegesneden
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

mvissche

Ik wil dit oplossen in VBA. Het moet toch ook zonder lisp kunnen?

bart

http://www.afralisp.net/vba/attabvba.htm

Mijn vba kennis is maar heel klein
Maar volgens mij kan je wel wat met bovenstaand voorbeeld.
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

mvissche

Ik heb de routine gedownload en gestart.
Dit is echter een manier van uitlezen. Ik kan de attributes wel uitlezen (zie boven).
Het probleem zit hem in het fijt dat ik 1  attribute niet los kan aanklikken, om vervolgens te editten en weer weg te schrijven.

bart

Je kan met de code de attributen ook aanpassen
wijzig maar eens 1 van de waarde en klik op ok
Domme vragen bestaan niet.
Domme antwoorden wel.

m.vr. groet Bart

FastFiber