明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2404|回复: 5

[运行时] 狐哥,C#可以设置OSMODE 的值,那用代码可以设置个别的吗

[复制链接]
发表于 2009-10-19 17:52:00 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-10-19 18:15:00 | 显示全部楼层

自己做个枚举

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;

            }
        }
    }
}

发表于 2009-10-19 18:54:00 | 显示全部楼层

类型:整数
保存位置:注册表
初始值: 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 设置为其他值可以打开对象捕捉。

评分

参与人数 1明经币 +1 收起 理由
雪山飞狐_lzh + 1 【好评】表扬一下

查看全部评分

发表于 2009-10-19 18:56:00 | 显示全部楼层
Autocad用户手册中系统变量里面就有的,上面的就是复制Autocad用户手册的相关说明。
发表于 2009-10-19 21:29:00 | 显示全部楼层
完整的代码:)
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace WindowsFormsApplication2
  10. {
  11.     public enum OSMode
  12.     {
  13.         None = 0,
  14.         End = 1,
  15.         Middle = 2,
  16.         Center = 4,
  17.         Node = 8,
  18.         Quadrant = 16,
  19.         Intersection = 32,
  20.         Insert = 64,
  21.         Pedal = 128,
  22.         Tangent = 256,
  23.         Nearest = 512,
  24.         Quick = 1024,
  25.         Appearance = 2048,
  26.         Extension = 4096,
  27.         Parallel = 8192
  28.     }
  29.     public partial class Form1 : Form
  30.     {
  31.         public Form1()
  32.         {
  33.             InitializeComponent();
  34.         }
  35.         private void Form1_Load(object sender, EventArgs e)
  36.         {
  37.             //设置端点、中点、插入点
  38.             OSMode osm =
  39.                 OSMode.End |
  40.                 OSMode.Middle |
  41.                 OSMode.Insert;
  42.             MessageBox.Show(osm.ToString());
  43.             //查询是否包含端点捕捉
  44.             if ((osm & OSMode.End) == OSMode.End)
  45.             {
  46.                 MessageBox.Show("ByEnd");
  47.                 //去除端点捕捉
  48.                 osm = osm ^ OSMode.End;
  49.                 MessageBox.Show(osm.ToString());
  50.             }
  51.         }
  52.     }
  53. }

 楼主| 发表于 2009-10-20 12:59:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 20:53 , Processed in 0.210093 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表