用vba做CAD二次开发,如何做到把相应的直线或者圆偏移一定距离,应该怎样写代码? 60
1个回答
展开全部
我觉得两个办法,第一就是再命令行发送一个command命令“offset”,然后单击直线或者圆,输入偏移距离,得到想要的图元。
第二个就是重新生成,圆的几何要素有圆心和半径。用ThisDrawing.Utility.GetEntity获得圆的圆心坐标以及半径分别放到一个变量里面(圆心坐标用数组),然后修改半径重生成一个圆,如果多次偏移就循环一下。直线更复杂一些,需要用到公式,先反算一个极坐标角度,然后增减90度,通过设定的距离以及刚刚计算得出的角度计算新的直线的两个端点坐标,最后用ThisDrawing.ModelSpace.AddLine(起点数组,终点数组)来生成新的直线。需要注意的是偏移是有方向的,比如圆,可以向圆心偏移也可以向圆外偏移,直线可以左偏亦可以右偏,设计思路要明确。
cad对vba的支持力度不大,2010版以后就不附带vba了,但是好处是跟excel语言相通,做起来方便,写一些小程序很便捷。我这里就不写具体代码了,代码要靠自己摸索,一定要自己写一遍,当然写一个小程序可能三五天半个月,调试几十上百次。建议你下载一个明经通道翻译的vba资料,有详细的说明的。
第二个就是重新生成,圆的几何要素有圆心和半径。用ThisDrawing.Utility.GetEntity获得圆的圆心坐标以及半径分别放到一个变量里面(圆心坐标用数组),然后修改半径重生成一个圆,如果多次偏移就循环一下。直线更复杂一些,需要用到公式,先反算一个极坐标角度,然后增减90度,通过设定的距离以及刚刚计算得出的角度计算新的直线的两个端点坐标,最后用ThisDrawing.ModelSpace.AddLine(起点数组,终点数组)来生成新的直线。需要注意的是偏移是有方向的,比如圆,可以向圆心偏移也可以向圆外偏移,直线可以左偏亦可以右偏,设计思路要明确。
cad对vba的支持力度不大,2010版以后就不附带vba了,但是好处是跟excel语言相通,做起来方便,写一些小程序很便捷。我这里就不写具体代码了,代码要靠自己摸索,一定要自己写一遍,当然写一个小程序可能三五天半个月,调试几十上百次。建议你下载一个明经通道翻译的vba资料,有详细的说明的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询