当需要在当前dwg图纸中,实现绘制或者选位置操作时,如果当时CAD的对象捕捉功能是打开状态,可能会导致插入的内容,自动的定位到捕捉点上,若捕捉点位置较远或者在视口外时,会导致用户看不到所插入的实体。
我们可以在执行自己绘制代码之前,通过设置系统变量**”OSMODE“**的值,来关闭当前的CAD对象捕捉功能,在执行完成绘制命令之后,再次打开对象捕捉功能,并还原原本的对象捕捉内容;
代码如下:
// 获取当前对象捕捉状态及捕捉项
var orgOSMode = Application.GetSystemVariable("OSMODE");
if((short)orgOSMode != 0)
{
Application.SetSystemVariable("OSMODE", 0);
}
// 写业务代码实现功能
// ......
// 还原对象捕捉
if((short)orgOSMode != 0)
{
Application.SetSystemVariable("OSMODE", orgODMode);
}
以上,即可实现关闭对象捕捉,业务执行完成后,还原对象捕捉设置。