最近比較火的無疑是ChatGPT/GPT4,它的出現是不是像大家所想的,能夠改變世界。
比如說讓我丟了飯碗
![在這里插入圖片描述](https://img-blog.csdnimg.cn/3ab46dde8f89452da5c524f770de19b7.png)

要不我們來試試它?

先用這個試試,據說這個比較方便,直接是在對應的文件中進行對話。

安裝后,直接在左側建立一個你熟悉的后綴格式。我就用main.cs吧

按Ctrl+K和它進行對話。

看看它的結果:

哇靠,寫的水平可以呀。我假裝看不懂。讓他給我在上面加一些注釋吧。

這時它是上下文模式,會在右側提示結果,并提示你是否要接受修改。

我就直接復制-替換。

這樣對一個新手來說,是不是比較友好了?

在它提供的信息不出意外的情況下,至少各個邏輯和方法寫的比較清楚了。

我們再來繼續問:

它在下方增加了如下代碼:關鍵是他還主動給你用中文寫好了注釋。

雖然我原來的意圖是中已經打開零件,直接可以讀取。

但是寫的方法是傳的一個文件路徑,主動幫你打開,再讀取屬性,第一眼看起來所寫的代碼問題不大。

public static Dictionary<string, string> GetCustomProperties(string filePath)
{
    SldWorks swApp = null;
    try
    {
        // 創建 SolidWorks 應用程序對象
        swApp = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
        // 設置 SolidWorks 應用程序對象可見
        swApp.Visible = true;
        // 打開文件
        ModelDoc2 swModel = (ModelDoc2)swApp.OpenDoc6(filePath, (int)swDocumentTypes_e.swDocPART, (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", 0, 0);
        // 獲取自定義屬性
        CustomPropertyManager swCustPropMgr = swModel.Extension.CustomPropertyManager[""];
        object[] names = (object[])swCustPropMgr.GetNames();
        object[] values = (object[])swCustPropMgr.GetValues(names);
        // 將自定義屬性存入字典
        Dictionary<string, string> customProperties = new Dictionary<string, string>();
        for (int i = 0; i < names.Length; i++)
        {
            customProperties.Add(names[i].ToString(), values[i].ToString());
        }
        // 關閉文件
        swApp.CloseDoc(filePath);
        // 返回自定義屬性字典
        return customProperties;
    }
    catch (Exception ex)
    {
        // 輸出讀取自定義屬性錯誤信息
        Console.WriteLine("讀取自定義屬性出錯: " + ex.Message);
        return null;
    }
    finally
    {
        // 如果 SolidWorks 應用程序對象不為空,退出應用程序
        if (swApp != null)
        {
            swApp.ExitApp();
        }
    }
}

我們來實際測試一下。

直接開個vs,并引用一下的兩個庫。

建立 了一個控制臺程序,調用第一個寫的方法。

它會自動創建一個,并顯示了版本。

功能的顯示了版本號。

但不幸的是,第二個功能中出現了不存在方法,我查了api 幫助,根本找不到這個。所以這個可能是它在學習過程中別人寫過的擴展方法。

沒辦法,我們只能自己改進了。

這只是簡單的做,其實中提供了的方法可以直接得到所有的屬性。

調試運行一下,發現讀起來沒有問題,所以效果還算不錯。

就目前的體現來說,整體效果還算不錯,相當于找一個會抄作業的助手 。

反正就是有啥問題就去問,對不對自己再驗證。

這樣對于新手來說,還是比自己去百度或者搜索效率更高。

至于能不能干掉我們的飯碗,應該還是需要一定時間的。