狐哥,C#可以设置OSMODE 的值,那用代码可以设置个别的吗
自己做个枚举using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
//相关数据查询Cad帮助,下面只是示例
public enum OSMode
{
ByEnd = 1,
ByMid = 2
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//设置
OSMode osm = OSMode.ByEnd | OSMode.ByMid;
if ((osm & OSMode.ByEnd) == OSMode.ByEnd)
{
MessageBox.Show("ByEnd");
//去除ByEnd
osm = osm ^ OSMode.ByEnd;
}
}
}
}
类型:整数
保存位置:注册表
初始值: 4133
使用下列位码设置“对象捕捉”的运行模式:
0 NON(无)
1 END(端点)
2 MID(中点)
4 CEN(圆心)
8 NOD(节点)
16 QUA(象限点)
32 INT(交点)
64 INS(插入点)
128 PER(垂足)
256 TAN(切点)
512 NEA(最近点)
1024 QUI(快速)
2048 APP(外观交点)
4096 EXT(尺寸线)
8192 PAR(平行)
要指定多个对象捕捉方式,请输入各个位码值之和。例如,输入 3 指定“端点”(位码 1) 和“中点”(位码 2) 对象捕捉。输入 16383 指定全部对象捕捉方式。
使用状态行的“对象捕捉”按钮关闭对象捕捉模式,除了返回 OSMODE 的普通值,还将返回位码 16384 (0x4000)。这个附加值有助于开发人员编写 AutoCAD 应用程序并将此模式与“绘图设置”对话框关闭的对象捕捉模式区别开来。设置此位码值将关闭对象捕捉。在该位码值关闭时将 OSMODE 设置为其他值可以打开对象捕捉。
Autocad用户手册中系统变量里面就有的,上面的就是复制Autocad用户手册的相关说明。 完整的代码:)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public enum OSMode
{
None = 0,
End = 1,
Middle = 2,
Center = 4,
Node = 8,
Quadrant = 16,
Intersection = 32,
Insert = 64,
Pedal = 128,
Tangent = 256,
Nearest = 512,
Quick = 1024,
Appearance = 2048,
Extension = 4096,
Parallel = 8192
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//设置端点、中点、插入点
OSMode osm =
OSMode.End |
OSMode.Middle |
OSMode.Insert;
MessageBox.Show(osm.ToString());
//查询是否包含端点捕捉
if ((osm & OSMode.End) == OSMode.End)
{
MessageBox.Show("ByEnd");
//去除端点捕捉
osm = osm ^ OSMode.End;
MessageBox.Show(osm.ToString());
}
}
}
}
页:
[1]