在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4422|回复: 15

[讨论] Layout中快捷键F3( hiToggleEnterForm() )的原理和应用

[复制链接]
发表于 2021-10-13 10:46:38 | 显示全部楼层 |阅读模式

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

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

x
procedure(createform()

        path_width = hiCreateFloatField(
                ?name 'pathwidth
                ?prompt "path width:"
                ?value 0.38
                ?defValue 0.38
                ?range '(0.0 15.0)
                )

        formfield = list(path_width)

        hiCreateAppForm(
                ?name 'iceCreamForm
                ?fields formfield
                ?formTitle "My first Form"
                ?callback nil
                ?help "cream"
                )
);pro


hiSetBindKey("layout" "<key>F9" "openmyform()")
procedure(openmyform()
        hiDisplayForm(iceCreamForm)
);pro


hiSetBindKey("Layout" "<key>9" "two_points_line()")
procedure(two_points_line()
let((click_one click_two width)
        cvId = geGetEditCellView()
        click_one = enterPoint()
        click_two = enterPoint()
        width = iceCreamForm~>pathwidth~>value
        leCreatePath(cvId list(car(leGetEntryLayer())) list(click_one click_two) width )
);let
);pro

以上代码随便写了一个,两点间创建一条当前layer的path,通过F9去改变线的宽度。这就得到一个问题,如果我每写一个脚本就占用一个快捷键,再加上去修改的GUI界面又用一个,就用了2个了,除非我有一个超级大的键盘,那Layout 本身的快捷键所有的参数修改都可以用F3打开对应的设置参数界面,hiToggleEnterForm()是怎么触发和调用的这其中的机制是怎么办到的,以上例子中,需要如何修改才能在不改变F3原本绑定的情况下,让这个脚本也能使用F3打开自定义的界面呢。

 楼主| 发表于 2021-10-13 10:49:01 | 显示全部楼层
顶一下
发表于 2021-10-13 11:08:30 | 显示全部楼层
可以加 contrl shift 等组合
 楼主| 发表于 2021-10-13 11:18:22 | 显示全部楼层


geo24 发表于 2021-10-13 11:08
可以加 contrl shift 等组合


感谢您的解答,可还是需要用2个键来实现一个功能,键盘上资源有限啊。
发表于 2021-10-13 11:34:40 | 显示全部楼层


小影隐子 发表于 2021-10-13 11:18
感谢您的解答,可还是需要用2个键来实现一个功能,键盘上资源有限啊。


control,shift, alt 再加上数字0-9,这已经有30个快捷键, 再加上单键的方案,怎么也够了吧,当然具体看你怎么用了
 楼主| 发表于 2021-10-13 11:49:28 | 显示全部楼层


geo24 发表于 2021-10-13 11:34
control,shift, alt 再加上数字0-9,这已经有30个快捷键, 再加上单键的方案,怎么也够了吧,当然具体看 ...


在短时间内是可以解决问题的。长期来看
1、实现的功能少一半

2、每一个功能都要不同的、独立的按键来设置,浪费了资源、也变得麻烦
3、我是明知道有F3这种自带的方法能解决我这个问题,可以我现在的知识水平还不能理解和运用
看了3天、不把问题弄懂还挺难受的,想着迟早要解决这个问题,不如早点
发表于 2021-10-13 13:05:16 | 显示全部楼层
思路就是用一个用户定义的函数去包裹一下hiToggleEnterForm()这个函数。在搜索完用户的所有设置之后,没别的东西了,再调用系统原本的hiToggleEnterForm()函数。要做到这个,必须在系统的$CDS_ROOT/share/cdssetup/dfII/bindkeys/Layout.il这个文件里面关于F3键的绑定重新设置到你新做的那个包裹函数上,就可以了。
 楼主| 发表于 2021-10-13 13:58:26 | 显示全部楼层


amodaman 发表于 2021-10-13 13:05
思路就是用一个用户定义的函数去包裹一下hiToggleEnterForm()这个函数。在搜索完用户的所有设置之后,没别 ...


十分感谢您的解答
发表于 2021-10-13 17:39:32 | 显示全部楼层
:):)
发表于 2021-10-22 13:55:55 | 显示全部楼层
使用双键
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 17:34 , Processed in 0.029065 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表