iCAx开思网

标题: 自訂屬性-宏-方程式的配合應用圖解範本 [打印本页]

作者: ryouss    时间: 2013-12-15 20:43
标题: 自訂屬性-宏-方程式的配合應用圖解範本
本帖最后由 ryouss 于 2013-12-15 21:15 编辑

https://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1250784&extra=page%3D2
前言: 這是在三維網主題"宏提取文件名字符为何不成功"(如上)的6#悶大分享的提議,引起興趣練習的心得提供分享,
          所以看本主題,建議先去了解一下,因是"練習的心得"有些還不是很清楚,有錯就請糾正,陳述不清就請指導!
          因文字不好說明,就用圖加文字了,希望對有興趣者有幫助!
一. 編寫宏(原創者:悶大)  草圖1須修改為草圖2
[attach]1189962[/attach]
二. 自定屬性
[attach]1189964[/attach]
   二.一. 屬性表的宏
[attach]1189963[/attach]
三. 方程式
[attach]1189965[/attach]
四. 工程圖隱藏尺寸
[attach]1189966[/attach]
五. 注解的函數
[attach]1189968[/attach]
    五.一. 如何進入編輯註解的視窗
[attach]1189967[/attach]
六. 操作說明
[attach]1189970[/attach]
[attach]1189969[/attach]
附原檔[2012版]
[attach]1189972[/attach]零件
[attach]1189971[/attach]工程圖





该贴已经同步到 ryouss的微博
作者: gt.adan    时间: 2013-12-15 21:31
給梁兄一個大大的讚啊!悶大的原帖應該在這裡:草圖驅動陣列數量的標註

阿丹不懂宏,悶大的宏我只會拿來用(還做成了模板使用呢!),不知其中道理。
謝謝梁兄逐句逐行的解說,並詳述了使用方式。{:soso_e181:}
作者: judyyai    时间: 2013-12-15 21:35
頂一個 ~~努力看懂中
作者: ryouss    时间: 2013-12-15 21:59
gt.adan 发表于 2013-12-15 21:31
給梁兄一個大大的讚啊!悶大的原帖應該在這裡:草圖驅動陣列數量的標註

阿丹不懂宏,悶大的宏我只會拿來 ...

謝謝提供資料,一樣的我也有許多盲點須研究,這只是練習心得並非教程!

作者: wxg263    时间: 2013-12-15 22:01
解读的真好啊,我们都是会拿来用,不懂道理
作者: Francis    时间: 2013-12-16 01:40
本帖最后由 Francis 于 2013-12-16 21:35 编辑

感謝梁大分享心得,只怪悶人當日隨手編寫沒想清楚,讓代碼的指定性太高(必須知道草圖的名稱)。
不妨改用以下代碼,無論有多少個草圖陣列的特徵,都會自動搜尋,再自動以該特徵的名稱建立自定義屬性。
  1. 1
  2. Dim FeatObj As Object
  3. Set FeatObj = Part.FirstFeature
  4. Dim FeatObjname As String
  5. Dim pparents() As Object
  6. Dim pparentscount, i As Integer
  7. Dim swpParentFeat As Object
  8. Dim found As Object
  9. Dim PointsCount As Double
  10. While Not (FeatObj.GetNextFeature Is Nothing)
  11. Set FeatObj = FeatObj.GetNextFeature
  12. FeatObjname = FeatObj.GetTypeName
  13. If FeatObjname = "SketchPattern" Then
  14. pparents = FeatObj.GetParents
  15. pparentscount = UBound(pparents)
  16. For i = 0 To pparentscount
  17. Set swpParentFeat = pparents(i)
  18. If swpParentFeat.GetTypeName = "ProfileFeature" Then Set found = swpParentFeat.GetSpecificFeature2
  19. Next i
  20. PointsCount = found.GetSpecificFeature2.GetUserPointsCount
  21. Part.DeleteCustomInfo2 "", FeatObj.Name
  22. Part.AddCustomInfo3 "", FeatObj.Name, 30, PointsCount + 1
  23. End If
  24. Wend
复制代码

作者: ryouss    时间: 2013-12-16 08:20
Francis 发表于 2013-12-16 01:40
感謝梁大分享心得,只怪悶人當日隨手編寫沒想清楚,讓代碼的指定性太高(必須知道草圖的名稱)。
不妨改用 ...

非常感謝提供原始碼,這是想踏入sw api 及 vba宏 的寶貴資料,
另請教屬性表的宏,目前是複製進去的,正規是要如何操作,
難倒要在後台(如用vb)寫個編程應用程式輸入嗎?

作者: gt.adan    时间: 2013-12-16 08:39
ryouss 发表于 2013-12-16 08:20
非常感謝提供原始碼,這是想踏入sw api 及 vba宏 的寶貴資料,
另請教屬性表的宏,目前是複製進去的,正規是 ...

頂起來,這點阿丹也想知道~~{:soso_e179:}

作者: Francis    时间: 2013-12-16 16:34
gt.adan 发表于 2013-12-16 08:39
頂起來,這點阿丹也想知道~~

頂起來,這點悶人也想知道~~

作者: gt.adan    时间: 2013-12-16 20:43
本帖最后由 gt.adan 于 2013-12-16 20:47 编辑
Francis 发表于 2013-12-16 16:34
頂起來,這點悶人也想知道~~

真是對不住悶大了,阿丹忘了回覆這篇…
請問悶大說的是不是您提到的以下內容?

1. 一般宏(屬於半自動,須手動執行宏)
2. 宏特徵6 {! H0 Y6 @/ q) F
3. 利用窗體或類模塊,常駐VB代碼在Solidworks程序中,當發生特定“事件”執行宏


還是您曾經發表過的帖子:執行VB代碼的途徑
1. 自带VB编辑器開啟和執行SWP檔案。
2. 工具列或功能表直接執行SWP檔案。
3. 自定義SWP檔案到一個工具列的按鈕。
4. 自定義SWP檔案到一個快速鍵。
5. 自定義SWP檔案到功能表項次。
6. 在其他程序以RunMacro2呼叫並執行指定的SWP檔案。
7. 啟動SolidWorks同時執行指定的SWP檔案。
8. 巨集特徵,重算零件或組合件時自動執行指定的SWP檔案。
9. 附加SWP檔案到Design Binder,按右鍵執行。
10. 代碼嵌合到『摘要,自訂屬性』,再以數學關係式執行嵌合的代碼。(無需SWP檔案)

作者: Francis    时间: 2013-12-16 22:02
本帖最后由 Francis 于 2013-12-16 22:19 编辑
gt.adan 发表于 2013-12-16 20:43
真是對不住悶大了,阿丹忘了回覆這篇…
請問悶大說的是不是您提到的以下內容?

感謝蛋大提供過往的悶話,悶人整理一下如下:

執行VB代碼的途徑可分為 A-手動 和 B-非手動

A-手動:
A-1. 自带VB编辑器執行SWP檔案。
A-2. 工具列或功能表直接執行SWP檔案。
A-3. 自定義SWP檔案到一個工具列的按鈕、快速鍵 或 功能表項次。
A-4. 附加SWP檔案到Design Binder,按右鍵執行。
A-5. 在VB6編輯器軟體中,翻譯成執行檔案 EXE 或 DLL。(無需SWP檔案但要另外購買軟體)
A-6. 在檔案總管拖動SWP檔案到SolidWorks的標題欄,就會立即執行SWP檔案內的代碼。

B-非手動
B-1. RunMacro2呼叫並執行指定的SWP檔案。
B-2. 在其他軟件(如 Excel 或 CorelDRAW)中的VBA呼叫SolidWorks的VB代碼。(無需SWP檔案)
B-3. 啟動SolidWorks附加/m參數,就可以同時執行指定的SWP檔案。
B-4. 宏特徵,只要執行一次,指向就會寄居在特徵樹,重算零件或組合件時自動執行指定的SWP檔案。
B-5. 代碼嵌合到『摘要,自訂屬性』,再以數學關係式執行嵌合的代碼。(坊間流傳之法,官方從沒發報過,從“自訂屬性”不容許多行輸入可見一斑)

除了A-4, B-4, B-5 以外,都可以利用窗體或類模塊(尤其配合B-3效果最佳),常駐VB代碼在Solidworks程序中,當發生特定“事件”執行宏。

以上只是悶人的淺見,歡迎補充。

作者: ryouss    时间: 2013-12-16 23:07
謝謝悶大及阿丹版主的回應,
可以稍微介紹一下,何謂 "宏特徵"
作者: Francis    时间: 2013-12-16 23:26
ryouss 发表于 2013-12-16 23:07
謝謝悶大及阿丹版主的回應,
可以稍微介紹一下,何謂 "宏特徵"

梁大可參考以下鏈接:
https://www.icax.org/forum.php?mod=viewthread&tid=754683

作者: ryouss    时间: 2013-12-17 00:28
本帖最后由 ryouss 于 2013-12-17 00:32 编辑
Francis 发表于 2013-12-16 23:26
梁大可參考以下鏈接:
https://www.icax.org/forum.php?mod=viewthread&tid=754683

謝謝指導,有爬文過了初步了解在特徵樹產生"宏"的標記,就叫"宏特徵"是吧!



作者: Francis    时间: 2013-12-17 00:47
截圖自幫助
[attach]1190083[/attach]

作者: ryouss    时间: 2013-12-17 08:16
本帖最后由 ryouss 于 2013-12-17 09:16 编辑

謝謝答覆,已找出來會進一步瞭解,因英文程度很差,進入api 幫助是原文摸索的很累人.
順便請教一下,有中譯本的書嗎?,曾經到書店但沒找到.
[attach]1190090[/attach]
作者: Gzsod    时间: 2018-2-6 19:36
学习了`````````
作者: ily25198    时间: 2018-2-22 13:40
这个有点复杂啊
作者: a8012024    时间: 2018-2-23 06:40
感谢分享,
作者: 坐井关天    时间: 2018-4-27 14:03
学习一下,很蒙,但是感觉离答案已经很近了,加油
作者: ily25198    时间: 2018-5-9 10:12
求屏幕录制软件。。。。还有GIF制作软件

作者: 43249931610    时间: 2018-11-12 09:33
新人,刚学习solidworks,学习一下





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3