SolidWorks專門論壇 SolidWorks forum

 找回密碼
 註冊
查看: 1972|回復: 7

文件屬性快速鍵

[複製鏈接]
發表於 2019/9/12 13:15:05 | 顯示全部樓層 |閱讀模式
選項快速鍵只能到系統選項,但沒有文件屬性的快速鍵,請問要如何製作API
還是錄製巨集就可以修改

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?註冊

x
發表於 2019/9/12 14:37:56 | 顯示全部樓層
有沒有可能用切換設定檔來做功能轉換..
 樓主| 發表於 2019/9/12 17:13:01 | 顯示全部樓層
怎麼說? 功能切換
發表於 2019/9/12 17:32:39 | 顯示全部樓層
试试这个
  1. Dim swApp As SldWorks.SldWorks
  2. Sub main()
  3. Set swApp = Application.SldWorks
  4. swApp.RunCommand swCommands_Tools_Dim_Pref, Empty
  5. End Sub
複製代碼


 樓主| 發表於 2019/9/12 20:12:36 | 顯示全部樓層
可以了~感謝
可以設定進入選項速度變快嗎

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?註冊

x
發表於 2019/9/15 19:39:50 | 顯示全部樓層
武大郎 發表於 2019/9/12 20:12
可以了~感謝
可以設定進入選項速度變快嗎

赞!!!鼠标能少点几次,对效率的追求就该这样。
附上精简后的宏文件(精简代码是其次,主要是低版本的sw也能直接拿来用,不用修改工程引用了)


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有賬號?註冊

x
 樓主| 發表於 2019/9/15 19:45:36 | 顯示全部樓層
哀~現在的人有這樣追求變少了,有感受到溫暖~謝謝2位。RunCommand 945,945是否為指令清單

發表於 2019/12/1 23:49:31 | 顯示全部樓層
武大郎 發表於 2019/9/15 19:45
哀~現在的人有這樣追求變少了,有感受到溫暖~謝謝2位。RunCommand 945,945是否為指令清單

...

新建宏(巨集)文件后,一般都会自动添加下面几个库的引用:(xxxx指代当前solidworks的版本)
SldWorks xxxx Type Library
SolidWorks xxxx Commands type Library
SolidWorks xxxx Constant type Library
如果宏(巨集)文件是在高版本的sw中编写的,则引用的是高版本sw的库文件,拿到低版本的sw中使用时,
会因为找不到引用的缘故而无法运行。(旧版本无法顾及未来的版本)

反之,如果宏(巨集)文件是在低版本的sw中编写的,拿到高版本的sw中使用时,却是可以运行的。(新版本可兼容旧版本)

为了避免版本引用的问题造成宏(巨集)无法运行,这里宏文件中我们就不引用sw相关的库了。
进而solidworks库中定义的常量名就不能直接使用了,要使用的话必须把常量名先自行定义一下(Const  常量名 = 值 )
这里为了精简代码,偷了个懒,直接使用了常量对应的值。(同时也带来了问题:代码的可读性降低了,搞不清 945 的含义了 )

关于下面两个库文件的说明
SolidWorks xxxx Commands type Library
SolidWorks xxxx Constant type Library
就做了一件事情,写了一大堆的类似下面的语句:
Const 变量名A = 值1
Const 变量名B = 值2
...

其中就有这句:
Const swCommands_Tools_Dim_Pref  = 945
这就是 945 的来源了。

这里关于sw的常量声明,通俗解释如下:
在代码里面我们给sw发命令 :去做编号1的命令,然后sw照做了,因为编号1(常量值)对应的是什么命令在sw内部已经固定了。
但是编程人员没法记住各个编号的含义,于是库文件诞生了,库文件做的事情就是给编号取了别名,方便人们记忆(解读)。
如果不引用库文件,sw就不知道别名是啥含义了,那可怎么办?
那只能迁就一下sw了,直接使用sw内部的编号(常量值)  或 事先像库文件那样说明别名的含义 ( Const 别名 = 编号 )

另,SolidWorks常量名与对应的值可在SolidWorks的Api Help中查到,
也可以引用对应的库文件后,在VBA写代码的界面(IDE)中打开对象浏览器(快捷键F2) 中 查找。

以下题外话,对有些人或许有用
如果不引用sw库,则sw库中定义的对象类型也不能使用,申明了会提示未定义的类型,那就申明为Object。
例:  Dim swModel As ModelDoc2  改为: Dim swModel As Object    或     Dim swModel  As Variant   或直接  Dim swModel
(不仅仅是sw,其他的软件如Excel,AutoCAD里面的VBA都是这样)
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

論壇統計|手機版上論壇|論壇來自幾何科技 論壇架構版次 20240312

GMT+8, 2024/4/19 09:35 , Processed in 0.116792 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表