不知道是不是我说的不太清楚,举个例子: 有一个圆,WCS下圆心坐标为10,10,0 将UCS的原点移动到10,10,0点的位置,WCS为10,10,0,UCS为0,0,0 问题如下: 用CAD本身的命令 DIMORDINATE 创建X方向的坐标,标注点在WCS的10,10,0,尺寸数值为0 在VBA中用AddDimOrdinate方法创建X方向的坐标,标注点同样在WCS的10,10,0,尺寸的数值为10,<--- 这个数值不是想要的结果,希望得到同上面一样的数值。 用TranslateCoordinates方法将点坐标10,10,0从WCS转换到UCS,得到坐标0,0,0 <--- 这里的数值是对了,呵呵,AddDimOrdinate方法接受的是WCS坐标系的点,所以,创建的尺寸数值为0,但是标注点不在WCS的10,10,0的位置,而是在WCS的0,0,0的位置。 我在VLISP中用VLA-AddDimOrdinate创建的尺寸依然是这个样子,还要多加一步ENTMOD尺寸的原点坐标为UCS的原点坐标才行。 在VBA中,我用Sendcommand调用CAD命令 DIMORDINATE 或者用 VLAX.CLS 类来调用LISP可以解决,但是用AddDimOrdinate方法怎么也做不到那种效果,不知道是哪个环节没有达到还是AddDimOrdinate方法根本就只能创建绝对坐标值的尺寸? 这个问题难了我很久了,请论坛各位高手帮帮忙,谢谢大家了! |