SolidWorks專門論壇 SolidWorks forum

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

取得特徵[類型][名稱]

[複製鏈接]
發表於 2014/8/17 03:02:34 | 顯示全部樓層 |閱讀模式
網路上下載的,這功能看似簡單~沒什麼用途~
但是我有一些想法~ 所以想要看一下程式碼的內容~
不知道有誰可以解開...

feat.zip (736.49 KB, 下載次數: 143) (DLL檔)
featPW.gif

點評

你還是直接學 API 比較快,因為 Macro1.dll 裡還是用 SW API 來做的。  發表於 2014/9/3 13:30
發表於 2014/9/3 13:28:38 | 顯示全部樓層
你的 feat.zip 中,只有 Macro1.dll 是你想要的,其他的 .dll 是 SW 的程式。

你可以用 .NET Reflector 或 ILSpy 這二套軟體試試看,或許可以看到你想要的。
 樓主| 發表於 2014/9/3 14:10:49 | 顯示全部樓層
嗯嗯~我正在努力在學API中~

那兩個反編譯軟體~我已經試過了~ 可是還是解不開...

點評

看你在這個版塊發的文,怎麼你的檔案都 DLL 檔,即然要在 SW 中執行,用巨集 .swp 就好,編成 DLL 有比較好嗎?如果有高手想要替你解答,你給 DLL 檔,我想他也無法解讀呀!  詳情 回復 發表於 2014/9/4 12:22
發表於 2014/9/4 12:22:17 | 顯示全部樓層
小小誠 發表於 2014/9/3 14:10
嗯嗯~我正在努力在學API中~

那兩個反編譯軟體~我已經試過了~ 可是還是解不開... ...

看你在這個版塊發的文,怎麼你的檔案都 DLL 檔,即然要在 SW 中執行,用巨集 .swp 就好,編成 DLL 有比較好嗎?如果有高手想要替你解答,你給 DLL 檔,我想他也無法解讀呀!
 樓主| 發表於 2014/9/4 17:43:58 | 顯示全部樓層
Q:編成 DLL 有比較好嗎?
A:swp 是用 vb6(vba) 撰寫的,我只有在開發 excel 自動化功能才會寫到 vb6~
dll 則是 vb.net,整合許多函式,在開發程式上會比較方便~
容錯 跟 debug 也比較好,安全性 與 功能 也更強大~
這是我選擇編寫dll的原因~
(vb6 & vb.net 我是用比較廣義的說法,如果有錯請指教~)
.
如果在編寫 SW API 程式上遇到瓶頸,我也會貼出程式碼請教各位前輩~
不會丟 dll 的~ (這篇文章是問有沒有人會解開這個 DLL 檔...)
我只是拋磚引玉...畢竟 VB.NET 在這很冷門...
.
而不是丟一個考題,會解的人一下就寫完了~
可是不會的人~ 等了好幾天也沒得到任何提示...
如果大家能互相交流~ 進步速度也會更快~(至少我是這麼過來的)
我只是這個用意而已...沒有惡意~
bb王子 該用戶已被刪除
發表於 2015/1/5 16:52:39 | 顯示全部樓層
哇!!!太棒了,感謝大力提供分享,非常的實用~~~
發表於 2015/1/12 17:26:20 | 顯示全部樓層
不用解dll,這是solidworks官網裡面的範例,我在VB.NET 2013實作過,沒有問題

權限不夠不能發連結>_<,請自行google下面第一個就是了
Get Feature Type and Name Example (VB.NET)

程式碼如下(我改在Form下作大家比較容易懂):
Imports SolidWorks.Interop.sldworks
Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim swApp As New SldWorks
        Dim swModel As ModelDoc2
        Dim swModelDocExt As ModelDocExtension
        Dim swSelMgr As SelectionMgr
        Dim swFeat As Feature
        Dim featName As String, featType As String
        swModel = swApp.ActiveDoc
        swSelMgr = swModel.SelectionManager
        swModelDocExt = swModel.Extension
        ' Get the selected feature
        swFeat = swSelMgr.GetSelectedObject6(1, -1)
        swModel.ClearSelection2(True)
        featType = ""
        featName = ""
        ' Get the feature's type and name
        featName = swFeat.GetNameForSelection(featType)
        swModelDocExt.SelectByID2(featName, featType, 0, 0, 0, True, 0, Nothing, 0)
        ' Print the feature's type and name
        ' to the Immediate window
        MsgBox(featType)
        MsgBox(featName)
    End Sub
End Class
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

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

GMT+8, 2024/4/27 04:35 , Processed in 0.120745 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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