找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 21100|回复: 11
打印 上一主题 下一主题

[求助] 关于UG调用dll之后的撤销问题…………

[复制链接]
跳转到指定楼层
1
发表于 2009-9-17 13:41:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
我在UG中画了一个圆柱,接着调用一个DLL(是一个生成四方块的dll),四方块的生成后,我在UG界面中执行了一次撤销操作,结果把圆柱也给撤销掉了!!按理说只是把四方块给撤销掉才对呀!这是怎么回事呢???

下面是我的代码:

    {
        /* TODO: Add your application code here */
   
  UF_FEATURE_SIGN sign = UF_NULLSIGN;
        double block_orig[3] = {0.0,0.0,0.0};
        char *block_len[3] = {"1","2","3"};
        tag_t blk_obj;
        UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }


我用别人做的DLL时,是不会撤销到我之前所做的模型的,只会撤销DLL生成的结果。是不是还要在C++中加入其他的代码才有这样的效果呀…………

希望路过的高手解答。小弟多谢啦!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2009-9-17 18:14:53 | 只看该作者
需要设UNDO,参考uf_undo.h头文件
3
发表于 2009-9-19 08:49:33 | 只看该作者
多谢 zale_lzj  兄的指点,问题已经解决……


现把代码贴出来:

    {
        /* TODO: Add your application code here */
                  
        UF_FEATURE_SIGN sign = UF_NULLSIGN;
        double block_orig[3] = {0.0,0.0,0.0};
        char *block_len[3] = {"1","2","3"};
        tag_t blk_obj;
        UF_UNDO_mark_id_t     mark_id;

                UF_UNDO_set_mark(UF_UNDO_visible, NULL, &mark_id);
        UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);
       

        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
头像被屏蔽
4
发表于 2009-9-19 16:54:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
5
发表于 2009-10-3 19:46:20 | 只看该作者
/*****************************************************************************
Instructs every data manager which is logged on to set a mark.
Returns an identifier which the application can use to identify the
state of the data managers at the time the mark is set. Additionally,
the application can register a name by which this mark can later be
referenced.

Note:  The maximum number of undo marks in an Open API program is 100.

Environment: Internal  and  External

See Also:

History:
******************************************************************************/
extern UFUNEXPORT int UF_UNDO_set_mark(
UF_UNDO_user_visibility_t visibility ,/* <I>
                                      The user visibility of this mark.
                                      */
UF_UNDO_mark_name_t mark_name ,/* <I>
                               optional name for this mark. If NULL
                               then not used. If not NULL then must
                               be '\0' terminated. UF_UNDO copies this
                               name to some space of its own, therefore,
                               the caller may do whatever it wants with
                               'mark_name' after the call.
                               */
UF_UNDO_mark_id_t * mark_id  /* <O>
                             identifier associated with this mark.
                             */
);
6
发表于 2009-10-7 23:00:36 | 只看该作者
如果你使用BlockStyler创建界面的话就不用加MARK函数,因为会自动加上,
7
发表于 2009-10-9 09:20:04 | 只看该作者
学习了。。。
8
发表于 2009-10-13 23:09:05 | 只看该作者
在头文件里面加 uf_undo.h
char sUndoname[]="设置后退的提示";
UF_UNDO_mark_id_t mark_id;
UF_UNDO_set_mark(UF_UNDO_visible,sUndoname,&mark_id);
很简单的
9
发表于 2010-8-31 10:01:59 | 只看该作者
不错 ,学习了。。。
10
发表于 2010-11-7 00:22:19 | 只看该作者
谢谢!!!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-24 22:01 , Processed in 0.029207 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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