谢谢你的建议!
我已经尝试使用
- oldBlkRef.ConvertToStaticBlock(name)
但这也会产生一个DuplicateNameError错误。我想如果我创建一个由匿名块名和我想使用的块名组成的新名称,这个方法会有点用。我仍然认为这种方法有两个局限性:
1)被转换的块不是我的客户的静态块。转换后的块最终成为我公司的动态块,没有动态特性。因此,我必须通过编程来改变转换后的块,使其看起来像静态块,但最终它不会是我想要的静态块。
2)我是AutoCAD开发的新手,我很好奇自己哪里出错了。在我的头脑中,我的方法应该是可行的,我想要理解我目前不理解的东西。
不过,我确实认为您的建议是一个可行的解决方法。所以我试着这样做:
- //Turns out having a * in the string I want as a name is what made me get the InalidInputError
- oldBlockRef.ConvertToStaticBlock(customerBlockName+anonymousBlockName.Subtring(1))
- newBlockRef.Rotation = oldBlockRef.Rotation
- ...
- newBlockRef.BlockTableRecord = oldBlockRef.BlockTableRecord
现在我有了正确类型的块,其名称为:
Customer _ Block _ YYUXX
。我当然更喜欢这个名字,而不是简单地成为
Customer _ Block _ YY
,但我想这比我迄今为止所做的更接近于一个解决方案,我认为我可以使用这个名字,所以我得到了一个足够好的解决方案。
但这并不完美,我真的想了解我做错了什么,只是为了学习。
BlockRecordTable
包含哪些数据使循环完美地工作?WCS和UCS(我没有这方面的经验)会参与进来吗?为什么我不能创建同名的块?我的意思是,我见过多次出现
Customer_Block_YY
的图纸,只要我不设置
[,我就能创建多次出现
Customer _ Block _ YY
的图块代码6]
|