几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量  


返回   几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 » 仿射空间:CAX软件开发(三)二次开发与程序设计 » CAD二次开发 » AutoCAD二次开发 » ObjectARX(C++)
用户名
密码
注册 帮助 会员 日历 银行 搜索 今日新帖 标记论坛为已读


回复
 
主题工具 搜索本主题 显示模式
旧 2009-04-17, 10:51 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】帮忙看下 这代代码有什么问题

帮忙看下 这代代码有什么问题
帮忙看下 这代代码有什么问题
............
struct resbuf rb;
ads_getvar("osmode",&rb);
if(rb.resval.rint==0)
{
int newosmode=161;
setosmode(newosmode);
ads_printf("\nosmode=0");
}
...........
void setosmode(int n)
{
struct resbuf rb1;
rb1.restype = rtshort;
rb1.resval.rint = n;
ads_setvar("osmode",&rb1);
}
环境arx14,现在if成立了,但是编译后执行却没达到预期结果.我的意图是如果捕捉是0的话,设置捕捉"端点,交点,垂足",即osmode=161.
我执行这个命令以后,查看osmode=16545,
也就是说必须再双击状态栏的"对象捕捉",才能设置捕捉"端点,交点,垂足",
但是这时它不会出现对话框要你勾选"端点,交点,垂足".只是必须要双击这一步才能正式打开需要 的捕捉.请问这是为什么?(不知道 我描述清楚没有.)
小学的时候老师在台上讲“帅”的含义, 我听不懂,同桌的女孩红着脸递给我一面 镜子,那一霎那,我明白了。
思路是不错的
问题出在判断上,因为你判断的条件根本不成立,一致没有执行.
试试下边的办法:
struct resbuf rb1,rb2;
ads_getvar("osmode",&rb1);
rb2.restype=rtshort;
rb2.resval.rint=(short)161);
ads_setvar("osmode",&rb2);
.....
ads_setvar("osmode",&rb1);

我的if是成立的啊.
我是手工把捕捉设为0,再来执行这段代码的.
奇怪的是,我如果把这段代码做成一个普通的命令,它可以执行,而且结果正确.
实际 上我是把这段代码放在一个f3的钩子程序里面,我是想按下f3,如果osmode是0的话,就打默认的捕捉(161),但是放钩子里面执行就不行.真是相当的奇怪. 百思不得其解.
更奇怪的 是,我如果不定义f3,而是定义f2键什么的,都执行正确.绝对正确.
哈哈,就f3不行.真是....不晓得么办.
谁知道如何屏蔽cad系统的f1~f12这种热键么.
小学的时候老师在台上讲“帅”的含义, 我听不懂,同桌的女孩红着脸递给我一面 镜子,那一霎那,我明白了。
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)
回复


主题工具 搜索本主题
搜索本主题:

高级搜索
显示模式

发帖规则
不可以发表新主题
不可以回复主题
不可以上传附件
不可以编辑您的帖子

vB 代码开启
[IMG]代码开启
HTML代码关闭



所有的时间均为北京时间。 现在的时间是 03:16 AM.


于2004年创办,几何尺寸与公差论坛"致力于产品几何量公差标准GD&T | GPS研究/CAD设计/CAM加工/CMM测量"。免责声明:论坛严禁发布色情反动言论及有关违反国家法律法规内容!情节严重者提供其IP,并配合相关部门进行严厉查处,若內容有涉及侵权,请立即联系我们QQ:44671734。注:此论坛须管理员验证方可发帖。
沪ICP备06057009号-2
更多