找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1021|回复: 10

[求助]:急急急~~,关于设置CAD系统变量的问题。

[复制链接]
发表于 2006-4-19 13:06:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
请问各位朋友,我现在想在程序中实现CAD的对象捕捉功能的控制,比如说关闭对象捕捉,打开对象捕捉,或是打开最近点,关闭正交之类的,该怎么做呢?麻烦知道的朋友说一下,很急用,谢谢各位!   (已经解决~~~~~~~~~~)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-4-19 14:55:50 | 显示全部楼层
struct resbuf rb;
rb.restype=RTSHORT;
rb.resval.rint=512;//512代表只使用最近点捕捉模式
acedsetvar("osmode",&rb);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-17 14:38:18 | 显示全部楼层
ads_getvar("osmode",&os1);
                os2.restype=RTSHORT;//设置系统变量数据类型
                os2.resval.rint= (short)16438;//系统变量的新值.
                ads_setvar("osmode",&os2); //设置新值.
为什么只能这样用呀?
我想把Osmode的值设置成 上面的os1 变量+ os2的值的, 不知怎么才可以加起来, 请怎教各位大侠,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-17 15:43:02 | 显示全部楼层
int m,n,k;
    struct resbuf rb1,rb2;
    acedGetVar("osmode",&rb1);
    rb1.restype=RTSHORT;
    m=rb1.resval.rint;
    n=你要设置的新的值;
    k=m+n;//K值必须是该系统变量允许的值,可以查一下系统变量
    rb2.restype=RTSHORT;
    rb2.resval.rint=k;
    acedSetVar("osmode",&rb2);

    ok!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-17 15:58:49 | 显示全部楼层
真很感谢RedCAD, 我试过了, 可以了,我刚从LISP 转来学ARX 以后还望多多指点, 呵呵!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-17 21:03:59 | 显示全部楼层
没什么,互相帮助,我也是从Lisp到VBA然后到ARX的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-18 03:38:01 | 显示全部楼层
要用捕捉组合的可以用

os2.restype=RTSHORT;//设置系统变量数据类型
os2.resval.rint= AcDb::kOsMaskMid | AcDb::kOsMaskCen | AcDb::kOsMaskNode;
ads_setvar("osmode",&os2); //设置新值.

参见acdb.h


    // OsnapMask:  Specifies Osnap Operation.
    //
    enum OsnapMask         { kOsMaskEnd          = 1,
        kOsMaskMid          = 2,
        kOsMaskCen          = 4,
        kOsMaskNode         = 8,
        kOsMaskQuad         = 0x10,
        kOsMaskInt          = 0x20,
        kOsMaskIns          = 0x40,
        kOsMaskPerp         = 0x80,
        kOsMaskTan          = 0x100,
        kOsMaskNear         = 0x200,
        kOsMaskQuick        = 0x400,
        kOsMaskApint        = 0x800,
        kOsMaskImmediate    = 0x10000,
        kOsMaskAllowTan     = 0x20000,
        kOsMaskDisablePerp  = 0x40000,
        kOsMaskRelCartesian = 0x80000,
        kOsMaskRelPolar     = 0x100000 };
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-21 16:26:14 | 显示全部楼层
再请教一个系统变量为字母的怎能么设置.
我这样做不行
char la1 ,la2;
la1 = "str";
la2 = "cen";
acedSetVar("clayer", la1);
                acedCommand(RTSTR , "polygon" , RTSTR , "12" , RT3DPOINT, pt1 ,RTSTR,"c", RTREAL,radius1, 0);
                acedCommand(RTSTR , "circle" , RT3DPOINT , pt2 , RTREAL, radius4 , 0);

                acedSetVar("clayer",la2);
                acedCommand(RTSTR , "circle" , RT3DPOINT , pt1 , RTREAL, radius2 , 0);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-21 17:31:33 | 显示全部楼层
CString la1 ,la2;
  la1 = "str";
  la2 = "cen";
  struct resbuf rb;
  rb.restype=RTSTR;
  rb.resval.rstring=la1;
  acedSetVar("clayer", &rb);
  acedCommand(RTSTR , "polygon" , RTSTR , "12" , RT3DPOINT, pt1 ,RTSTR,"c", RTREAL,radius1, 0);
  acedCommand(RTSTR , "circle" , RT3DPOINT , pt2 , RTREAL, radius4 , 0);

  rb.restype=RTSTR;
  rb.resval.rstring=la2;
  acedSetVar("clayer", &rb);
  acedCommand(RTSTR , "circle" , RT3DPOINT , pt1 , RTREAL, radius2 , 0);
  
  ok!!!!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-22 09:28:09 | 显示全部楼层
真开心, 又学到了一点 :)  我买了VC.NET的基础来学, 先把VC.NET的学会再看ARX的好, 不然简单的东东都要来这里打扰大家, 呵呵,  谢谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-6-27 22:37:24 | 显示全部楼层
不要用acedCommand了,用起来真的很不方便
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 14:31 , Processed in 0.334532 second(s), 51 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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