求助
Dim inspoint(0 To 2) As Double<BR>inspoint(0) = 0<BR>inspoint(1) = 0<BR>inspoint(2) = 0<BR>ThisDrawing.ModelSpace.InsertBlock inspoint, "c:\program files\acad2000\tch14\sys\abcd.dwg", 1, 1, 1, 0
我想修改块abcd.dwg的属性,请问如何做?先谢谢了 <P class=Heading-2>Signature
<P class=syntax>RetVal = object.GetAttributes()
<P class=element>Object
<P class=element-desc><A href="mk:@MSITStore:D:\Program%20Files\AutoCAD%202005\help\acadauto.chm::/idh_blockref_object.htm" target="_blank" >BlockRef</A>, <A href="mk:@MSITStore:D:\Program%20Files\AutoCAD%202005\help\acadauto.chm::/idh_externalreference_object.htm" target="_blank" >ExternalReference</A>, <A href="mk:@MSITStore:D:\Program%20Files\AutoCAD%202005\help\acadauto.chm::/idh_minsertblock_object.htm" target="_blank" >MInsertBlock</A><BR>The object or objects this method applies to.
<P class=element>RetVal
<P class=element-desc>Variant (array of AttributeReference objects)<BR>The array of <A href="mk:@MSITStore:D:\Program%20Files\AutoCAD%202005\help\acadauto.chm::/idh_attributeref_object.htm" target="_blank" >AttributeReference</A> objects.
<P class=Heading-2>Remarks
<P class=body>This method returns an array of editable attribute references attached to the block reference.
<P class=body>You can only return the constant attributes for an external reference. To find the constant attributes of an external reference or block reference, use the <A href="mk:@MSITStore:D:\Program%20Files\AutoCAD%202005\help\acadauto.chm::/idh_getconstantattributes.htm" target="_blank" >GetConstantAttributes</A> method.
http://www.mjtd.com/object/acad2004/idh_getattributes.htm 我还不懂,能不能给个例子 上面的是帮助里的解释,下面的是帮助里的例子:
<PRE class=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</PRE>
页:
[1]