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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 154|回复: 4

[原创] 菜鸟的SKILL学习日志、笔记

[复制链接]
发表于 昨天 21:28 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 dcce 于 2025-5-22 21:58 编辑

      这是我在学习SKILL语言过程中写的第一个脚本,我放到这里。功能很简单,就是在Quick Align情况下,按“6”可以切换no space 和user space,论坛上的QuickAlign脚本功能对目前的我有些冗余,我只需要我描述的上述功能。我的环境是6.18.300,没有测试其他任何环境。




  1. hiSetBindKey("Layout" "<Key>6 EF" "DCCEChangeQuickAlignSpaceType()")

  2. procedure(DCCEChangeQuickAlignSpaceType()
  3.         if(envGetVal("layout" "quickAlignSpacingType")=="user"
  4.         then
  5.                 envSetVal("layout" "quickAlignSpacingType" 'cyclic "none")
  6.                 println("DCCEChangeQuickAlignSpaceType had change to none")
  7.         else
  8.                 envSetVal("layout" "quickAlignSpacingType" 'cyclic "user")
  9.                 println("DCCEChangeQuickAlignSpaceType had change to user")
  10.         );//end if
  11.         
  12. ); //end procedure DCCEChangeQuickAlignSpaceType


复制代码

 楼主| 发表于 昨天 21:43 | 显示全部楼层
我还是个初学者,有些代码写的可能挺幼稚的,希望诸位大佬一笑带过。如果由哪些地方有错误或者您有什么建议,还恳请您回帖指出,在这里先谢谢!!
 楼主| 发表于 昨天 21:41 | 显示全部楼层

后面使用的时候,发现还是不太够方便,于是加了一点简单的功能。
DCCEChangeQuickAlignSpaceVal4()是固定一个user space val,目前还是只能改skill脚本,后面学习深入后研究下能否使用CIW窗口的命令设置一下这个固定值,或者使用上一个历史值,仅仅是一些想法。
DCCEChangeQuickAlignSpaceEnter()是纯抄的,拿来学习一下,原文章是
https://bbs.eetop.cn/thread-983195-1-1.html
原功能是直接按edge去Align一个数值,数值直接输入(省去了按F3),但是我不是很喜欢他设置的输入距离这种就固定以edge为参考,所以我修改了那句,我给改成了Align一个数值,数值直接输入。最开始我尝试注释那句结果不太行,后面研究了下这个hiRegTimer函数,也没太看明白,所以我简单粗暴一点,让他赋值给自己,这样就维持了原来QuickAlignSnapTarget。




  1. hiSetBindKey("Layout" "<Key>4 EF" "DCCEChangeQuickAlignSpaceVal4()")

  2. procedure(DCCEChangeQuickAlignSpaceVal4()

  3.         envSetVal("layout" "quickAlignSpacingType" 'cyclic "user")
  4.         leQckAlignForm->qckAlignSpacingValField->value="0.24"
  5.         println("DCCEChangeQuickAlignSpaceVal4 user spacing 0.24")
  6. ); //end procedure DCCEChangeQuickAlignSpaceVal4

  7. /****************************************************************************************/

  8. hiSetBindKey("Layout" "Ctrl<Key>3" "DCCEChangeQuickAlignSpaceEnter()")

  9. procedure(DCCEChangeQuickAlignSpaceEnter()
  10.         hiRegTimer("leQckAlignForm~>qckAlignSpacingField~>value="User Spacing"
  11.                                 leQckAlignForm->leQuickAlignSnapTarget->value=leQckAlignForm->leQuickAlignSnapTarget->value
  12.                                 hiToggleEnterForm() " 1)
  13.         leHiQuickAlign()        
  14. ); //end procedure DCCEChangeQuickAlignSpaceEnter




复制代码





发表于 8 小时前 | 显示全部楼层
本帖最后由 着着着火了 于 2025-5-23 09:13 编辑


赞。
如果不添加额外的功能的话,可以写得更简略些:

hiSetBindKey("Layout" "<Key>1" "if(leQckAlignForm->qckAlignSpacingField->value==\"User Spacing\" leQckAlignForm->qckAlignSpacingField->value=\"No Spacing\" leQckAlignForm->qckAlignSpacingField->value=\"User Spacing\")")

点评

谢谢大佬,我有学习你写的脚本,都是很好的资料。这样写确实简略多了  发表于 7 小时前
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-5-23 17:34 , Processed in 0.018700 second(s), 9 queries , Gzip On, MemCached On.

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