作者:不得
结构工程师
关注他
我们在进行工作时,经常会遇到一些重复性劳动,或者有的软件UI不方便,操作起来非常费劲。写二次开发或者dynamo解决,又太费时间。
这时候我们可以尝试使用下AutoHotkey这款神器来辅助工作。
AutoHotkey
是一款免费的、Windows平台下开放源代码的热键脚本语言,是为游戏操纵杆和鼠标创建的热键,是自动按键。也可以通过命令调用系统接口及程序,并创建基于简单语言的图形化界面的执行程序。
使用需要一点轻量的编程,下面请看案例:
1.重命名类
最近在制作一幢超高层,重命名费了老大的劲。
梳理一下这个操作:
先使用F2调出重命名窗口,把"(2)"这样的字符串去掉,加上标准的命名字段,回车,完成。
手动操作还是有点麻烦,尤其选字符的时候经常选不中。
下面我们使用AHK辅助进行这个操作:
+3::
Send {f2} ;调用F2
Sleep 500 ;延迟500ms,担心Revit反映慢
Send,^c ;将光标选中内容复制到剪切板
Sleep 100 ;
pos:=InStr(clipboard, "F") ;截取"F"的位置
strcl:=SubStr(clipboard,1,pos) "_提资_MEP_底图" ;根据F位置截取楼层字段,并添加其他字段
clipboard:=strcl ;赋回剪切板
Send ^v ;粘贴+回车
send,{enter} ;
return
达到目的:
当然有时间还可以加个循环,从上往下,第一个视图完成后,加一个send{down}在循环下一个操作。循环楼层数就完成。
2.鼠标移动
有时候想调出临时尺寸,点击很麻烦,Revit的这个按键在Ribbon菜单左下方,用高分屏的话,鼠标得移动很远才能点到。这时候可以写一个AHK解决:
+3:: ;定义shift+3
MouseGetPos,Xa,Ya ;获取当前鼠标位置
MouseClick ,left, 135, 155 ;移动到目标位置并左键点击
MouseMove, Xa, Ya ;返回原鼠标位置
return
效果大概就是
使用shift+3之后鼠标会移动到左上角按键并点击,立即回到之前鼠标位置上
通过目录下AU3_Spy.exe可以获取具体窗口、按钮的句柄,但我测试了几次没成功就放弃了。
3.四舍五入
临时尺寸遇到这种小数怎么快速修改?
+F2::
Send,^c
Sleep 100
clipboard:=round(clipboard,0)
Send ^v
send,{enter}
return
就不注释了。
相当于访问剪切板,再用round四舍五入粘贴回去。
我这里都是一些很简单的案例。
AHK还有很多函数可以加以发挥,可以解决很多桌面级的问题。
其他也可以试一下按键精灵等软件,脚本很好写。
发布于 2017-09-06