tzbm123456 发表于 2020-1-9 22:55:10

Model.start_operation

本帖最后由 tzbm123456 于 2020-1-11 09:57 编辑

Model.start_operation
       start_operation方法用于通知"Edit > Undo"一个新操作(可以撤消)正在启动。

    String是显示在Edit > Undo菜单项旁边的操作文字描述。

      从SketchUp 7.0开始,有三个额外的布尔值可以在开始操作时传入。这三个选项都默认为false。
Arguments:
    op_name操作的字符名称
    disable_ui     布尔值——如果设置为真,那么SketchUp在每次改变几何形状后更新用户界面的倾向将被抑制。如果操作涉及以任何方式更新模型,那么这将导致更快的Ruby代码执行。

    transparent布尔值——如果设置为真,那么这个操作将是“透明的”,这在功能上意味着这个操作之后的任何操作都将被附加到一个组合操作中,允许用户使用一个撤销命令来撤销两个操作。这是一个非常困难的标志,因为SketchUp用户可以用他们自己的方法中断一个给定的操作。当设置为真时,使用极端谨慎和彻底测试。

    prev_trans   布尔值——如果设置为true,那么这个操作将使前一个操作透明,这在功能上意味着您的新操作将与用户的上一个操作相结合。这对于创建对用户操作做出反应的观察者特别有用,而不用Ruby正在执行的额外步骤来处理撤销堆栈。
Returns:    status   true if successful, false if unsuccessful





tzbm123456 发表于 2020-1-9 23:35:41

本帖最后由 tzbm123456 于 2020-1-11 09:57 编辑

案例:
@mModel.start_operation("Line_01KJ",true,false,false);

    @mModel.start_operation("Line_01KJ",ture,false,true);




    @mModel.commit_operation

@mModel.commit_operation

tzbm123456 发表于 2020-1-11 09:54:47

本帖最后由 tzbm123456 于 2020-1-11 10:01 编辑

    SU的撤销还原步数一直是苦恼我的一个东西,因为实在是找不到地方能设置,不像PS能设置历史记录步数,也不像RHINO那样还能设置历史记录所占内存大小,虽然问题不大,但用起来总是心里没谱,有时候很入神的修改了一大段,返回了一些就返回不了了,悲剧。。。
    今天因为另外的原因研究了一下SU的注册表,发现其实SU的历史记录是保存100个的,通过修改注册表可以很方便的设置所需要的撤销还原步数:
    以我所用的SU8为例,将以下信息保存为reg注册表文件即可,dword:后的00000064(16进制)即为10进制的100,可以将其替换成你想要的还原步数,记住改成16进制表示的哈    Windows Registry Editor Version 5.00            "MaxUndo"=dword:00000064    修改注册表有风险,改前记得备份    觉得有用的就对我砸宝石吧,呵呵
    PS.关于SU的历史记录问题,有一点小心得需要大家注意的,有一些插件的操作一次会占用很多的历史记录,使用之前一定要记得保存,这样万一还原不回来可以直接点菜单->文件里的“还原上次保存”
    这一点上我深有体会,在使用删除共面线这一个功能的时候,一下子就清除了很多线,可发现清除错误要撤销回去的时候,是一根根线恢复的。。。
    补充一点,修改前请别忘记关闭SU,因为SU关闭的时候会重写一次注册表,如果没关的话修改就无效了
页: [1]
查看完整版本: Model.start_operation