| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Attribute mit VBA ausfüllen (272 mal gelesen)
|
spite Mitglied
Beiträge: 30 Registriert: 01.07.2002 Win7 64bit, AutoCAD 2011 64bit, ACADO 2012
|
erstellt am: 01. Jul. 2002 14:49 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen! ich habe follgendes problem: aus einem block, der mehrmals in der zeichnung vorkommt, wird mittels vba attribute A ausgelesen und anhand von diesem wert entsprechend das attribute B ausgefüllt. ich danke schon mal im vorraus. Spite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 01. Jul. 2002 14:58 <-- editieren / zitieren --> Unities abgeben: Nur für spite
|
spite Mitglied
Beiträge: 30 Registriert: 01.07.2002 Win7 64bit, AutoCAD 2011 64bit, ACADO 2012
|
erstellt am: 01. Jul. 2002 15:07 <-- editieren / zitieren --> Unities abgeben:
|
RoSiNiNo Mitglied Konstrukteur
Beiträge: 1126 Registriert: 09.10.2002 Autodesk Building Design Suite Premium 2021 Windows 10 Pro 64bit HP Workstation Z620, 24GB GeForce GTX 970
|
erstellt am: 01. Aug. 2002 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für spite
einfach in die acad entwicklerhilfe hineinschauen und folgendes beispiel lesen: Code:
Sub Example_GetAttributes() ' This example creates a block. It then adds attributes to that ' block. The block is then inserted into the drawing to create ' a block reference. ' Create the block Dim blockObj As AcadBlock Dim insertionPnt(0 To 2) As Double insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0# Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "TESTBLOCK") ' Define the attribute definition Dim attributeObj As AcadAttribute Dim height As Double Dim mode As Long Dim prompt As String Dim insertionPoint(0 To 2) As Double Dim tag As String Dim value As String height = 1# mode = acAttributeModeVerify prompt = "Attribute Prompt" insertionPoint(0) = 5#: insertionPoint(1) = 5#: insertionPoint(2) = 0 tag = "Attribute Tag" value = "Attribute Value" ' Create the attribute definition object in model space Set attributeObj = blockObj.AddAttribute(height, mode, prompt, insertionPoint, tag, value) ' Insert the block Dim blockRefObj As AcadBlockReference insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0 Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "TESTBLOCK", 1#, 1#, 1#, 0) ZoomAll ' Get the attributes for the block reference Dim varAttributes As Variant varAttributes = blockRefObj.GetAttributes ' Move the attribute tags and values into a string to be displayed in a Msgbox Dim strAttributes As String Dim I As Integer For I = LBound(varAttributes) To UBound(varAttributes) strAttributes = strAttributes & " Tag: " & varAttributes(I).TagString & _ " Value: " & varAttributes(I).textString & " " Next MsgBox "The attributes for blockReference " & blockRefObj.name & " are: " & strAttributes, , "GetAttributes Example" ' Change the value of the attribute ' Note: There is no SetAttributes. Once you have the variant array, you have the objects. ' Changing them changes the objects in the drawing. varAttributes(0).textString = "NEW VALUE!" ' Get the attributes Dim newvarAttributes As Variant newvarAttributes = blockRefObj.GetAttributes ' Again, display the tags and values strAttributes = "" For I = LBound(varAttributes) To UBound(varAttributes) strAttributes = strAttributes & " Tag: " & varAttributes(I).TagString & _ " Value: " & varAttributes(I).textString & " " Next MsgBox "The attributes for blockReference " & blockRefObj.name & " are: " & strAttributes, , "GetAttributes Example" End Sub
Alles klar? roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|