newlongbow 发表于 2004-1-8 16:18:00

帮帮我吧,快死了

我在VB.NET中写了如下的代码
acadblkref = acadMod.InsertBlock(insertpoint, "F:\工程设计\块文件\图框.dwg", 1.0#, 1.0#, 1.0#, 0.0#)
为什么老是说参数错误,我怎么没看出来

mccad 发表于 2004-1-8 16:28:00

1.图形必须存在
2.点必须定义为三维点,即
insertpoint(3) as Double
或定义为insertpoint as Variant,但该点必须通过图形中计算或点取
3.acadMod必须为某个空间(如模型空间或布局)
4.acadblkref必须定义为图块参照

newlongbow 发表于 2004-1-8 16:34:00

1,3,4点都没问题
不过第2点是定义insertpoint(2) as object 吧
我是通过赋值给的 insertpoint(0)=1#........

mccad 发表于 2004-1-8 16:54:00

请详细看看有关这个方法的说明
http://www.mjtd.com/object/acad2004/idh_insertblock.htm

newlongbow 发表于 2004-1-8 17:05:00

还是不懂,我没有看出我得语句有什么问题,明白的告诉我吧,

newlongbow 发表于 2004-1-8 17:25:00

上面的说明中有错误,insertblock的参数应为object.InsertBlock(InsertionPoint, Name , Xscale, Yscale, ZScale, Rotation,[ Password]) 注意[]的位置

mccad 发表于 2004-1-8 17:33:00

InsertionPoint:
Variant变体(三元素双精度数组); 为输入项
该三维WCS坐标指定了插入块到图形中的位置。

myfreemind 发表于 2004-1-8 18:34:00

不用写绝对路径,写文件名就可以了,只要路径在cad的搜索路径中就行了!
acadblkref = acadMod.InsertBlock(insertpoint, "图框.dwg", 1.0#, 1.0#, 1.0#, 0.0#)

efan2000 发表于 2004-1-8 18:44:00

newlongbow发表于2004-1-8 16:34:00static/image/common/back.gif1,3,4点都没问题
不过第2点是定义insertpoint(2) as object 吧
我是通过赋值给的 insertpoint(0)=1#........



插入点是一个坐标数组,而不是对象数组。在ACAD中,坐标是双精度的实数型,因而要定义为insertpoint(2) as double。
页: [1]
查看完整版本: 帮帮我吧,快死了