我不知道';我不知道你的具体情况,但你的代码有一些潜在的问题,也许我们可以解决
显然,使用您提供的代码,您正在选择图形中的所有块,然后遍历它们。如果要编辑块参照,必须编辑块定义。如果编辑块定义,它将自动反映在所有块参照中,因此无需迭代图形中的所有块参照。使用您提供的代码,如果有效,它将为图形中插入的每个块实例反复重新定义同一块。这是不必要的,也不需要重复相同的程序
之前您说过,您有将项目放入块的代码,但您没有';t没有代码从块中删除项。我提供的代码从作为参数传递给函数的块中删除了所有项。但必须传递AcadBlock,而不是AcadBlockReference
下载我在上一个线程中发布的模块并将其导入到您的项目中(在项目浏览器中右键单击并单击导入文件),然后将此代码添加到表单加载事件中- Dim Blk As AcadBlock
- If acBlock.BlockExists("Fixings_Chart").Exists = True Then
- Set Blk = ThisDrawing.Blocks.Item("Fixings_Chart")
- CleanoutBlock Blk '<-- call the CleanoutBlock function here
- End If
- 'Add code here to put the new entities in the block
- 'Blk.Addxxx functions to add the entities as needed
将此代码作为新函数添加到表单中[代码您可以提供更多的代码,我们可以为您指出错误所在。 |