<dd id="lqj8y"><optgroup id="lqj8y"></optgroup></dd>
  • <button id="lqj8y"><acronym id="lqj8y"></acronym></button>
    1. <s id="lqj8y"><acronym id="lqj8y"><cite id="lqj8y"></cite></acronym></s> <ol id="lqj8y"><ruby id="lqj8y"><input id="lqj8y"></input></ruby></ol>
        <th id="lqj8y"></th>
        <nav id="lqj8y"><optgroup id="lqj8y"><noframes id="lqj8y"></noframes></optgroup></nav>
      1. <progress id="lqj8y"></progress>
        <s id="lqj8y"><strike id="lqj8y"><u id="lqj8y"></u></strike></s>
        首頁/文章/ 詳情

        玩轉ANSA二次開發-2:開發流程之創建自己的“工具庫”

        10月前瀏覽807

        導讀:上一篇玩轉ANSA二次開發-1:詳解實體屬性與方法及案例實操介紹了“實體”的屬性以及方法一些最基礎的用法,配合上其他的命令你就能玩轉ANSA二次開發了,今天繼續教大家玩轉ANSA二次開發。

        一、寫在文前

        大家學習ANSA二次開發一般都是要解決一些實際遇到的工程問題,從重復性的勞動中解放出來。但是大家有沒有想過,在每一次針對不同的需求、應用場景進行ANSA二次開發時,我們所寫的代碼也有很多重復性的勞動。比如說我們在兩個應用場景中都需要創建一個RBE2單元:

        (1)場景一需要用戶通過選點作為RBE2單元的從節點,主節點在從節點中心;(2)場景二需要用戶選擇一個節點作為主節點,以主節點為中心半徑15mm的節點作為從節點。這兩個場景可以公用的代碼就是使用節點創建RBE2單元的步驟。

        正常的做法是寫一個函數

          def CreateRbe2(master=None,salve=[],name=’’,id=’’):

          代碼部分實現根據主、從節點創建RBE2單元

          這個函數可以通過**的方式循環利用,但是這樣每次還要到上一次寫的代碼中找到,很浪費時間。并且這樣寫代碼的可擴展性將大打折扣。

          二、面向對象的編程思路

          進階的方法可以使用面向對象開發的開發思路:

          這里需要先介紹Python語言中類的概念。熟悉的同學們請自行跳過。在Python中的,類時一種面向對象編程的機制,用于描述具有相同屬性的和方法的對象的**。類定義了一組屬性和方法,可以用來創建對象的模板。類定義了一組屬性和方法,可以用來創建對象的模板。類可以看作一種自定義的數據類型,它可以包含多個實例,每個實例都具有相同的屬性和方法。

          類的定義通常包括類名、屬性和方法在類定義中,我們可以定義類屬性、類方法、實例屬性和實例方法等。類屬性是整個類的屬性,可以通過類名來訪問。實例屬性是屬于實例的屬性,只能通過實例名來訪問。類方法和實例方法是類中的函數,可以用來執行特定的操作。

          以下是一個簡單的類定義示例:

            class Person:# 類屬性num_of_persons = 0def __init__(self, name, age):# 實例屬性self.name = nameself.age = agePerson.num_of_persons += 1# 實例方法def say_hello(self):print("Hello, my name is", self.name)# 類方法@classmethoddef get_num_of_persons(cls):return cls.num_of_persons

            在上述示例中,我們定義了一個名為Person的類,它具有一個類屬性num_of_persons,表示創建的Person實例的數量。在構造方法__init__()中,我們定義了兩個實例屬性name和age,并將類屬性num_of_persons加1。實例方法say_hello()用于打印一個問候語,其中包含實例屬性name的值。類方法get_num_of_persons()返回類屬性num_of_persons的值。

            使用該類,我們可以創建多個Person的實例,并訪問它們的屬性和方法。例如,以下代碼創建了兩個Person實例p1和p2,并調用了它們的實例方法say_hello():

              p1 = Person("Alice", 25)p2 = Person("Bob", 30)p1.say_hello()p2.say_hello()輸出結果為:Hello, my name is AliceHello, my name is Bob

              我們還可以通過類方法get_num_of_persons()來獲取Person實例的數量。例如,以下代碼輸出了當前創建的Person實例的數量:

                print(Person.get_num_of_persons())輸出結果為:2

                了解了Python類屬性的概念后,我們就可以把一個常用的功能封裝成一個單獨的模塊,然后每次使用前通過import導入即可,我們只需要記住這個類的輸入、輸出、屬性、類方法即可,最好在創建前進行注釋標注。比如上述我們提到的創建RBE2單元,我們就可以這樣進行封裝。

                我這里只是實現了根據輸入的主、從節點進行RBE2單元的創建。可以看到我還預留了輸入id以及名字的接口,后期需要可以直接修改。

                if __name__ == '__main__':后的代碼為測試代碼,只有在執行當前.py文件時才會執行。

                三、怎么靈活使用上述封裝

                那么怎么靈活使用上述封裝的功能呢?

                首先把這個文件存為CreateRbe2.py文件,假設你現在要在另外一個.py文件中用到這個創建RBE2單元的功能,那你只需要如下圖這樣子將這個模塊使用import導入進來:

                CreateRbe2.CreateRbe2(nodes[0],nodes[1:]).create()中第一個“CreateRbe2”是.py文件(庫)的名稱,第二個“CreateRbe2”是模塊的名稱。因為一個庫中可以有很多個模塊,所以需要通過庫.模塊的方式進行精確導入。

                如果我們將大部分常用的功能都進行封裝,那么你的代碼就會是下面這種結構:

                每一個插件及功能都是一個文件,主文件中的代碼量會變少,方便開發;在有新的功能需要實現,并且是現有功能的補充時候,我們還可以是使用類的繼承屬性,舉個例子:

                如果想在上述創建RBE2的功能上增加一個返回RBE2主節點位置的功能,我們只需要:

                是不代碼量就簡潔了很多。

                好了以上就是關于ANSA二次開發中“面向對象編程”的一個小技巧。

                四、我們ANSA二次開發精品課

                筆者原創的《ANSA二次開發從入門到精通22講》精品課,基于Python對Ansa23進行二次開發(適用于低版本Ansa)。課程通過代碼講解實例演練的方法深入淺出地從:實體概念及用法、幾何清理、網格劃分、連接轉換及實例化和GUI界面設計五個方面進行講解,后續還為訂閱用戶提供答疑交流服務。

                以下是課程安排

                ANSA二次開發從入門到精通22講:輕松掌握基于python的ANSA二次開發

                此外,筆者為所有訂閱用戶提供知識圈答疑服務VIP用戶交流群。并附贈課程相關資料等(平臺支持自行開具電子發票)。

                1、你將學到  
                • 基于各種工程實例的Ansa二次開發案例講解過程
                • 熟練運用Ansa二次開發進行幾何清理

                • 熟練運用Ansa二次開發進行網格劃分

                • 熟練運用Ansa二次開發進行常見連接(焊點、焊線、螺栓、膠粘)的轉換與實體化

                • 熟練運用Ansa二次開發進行GUI界面設計,提高程序交互性

                • 熟練掌握Ansa二次開發中Python的常用數據類型及語法

                • 贈課程全套資料和模型,并提供VIP訂閱用戶交流,贈知識圈答疑服務
                2、適合哪些人學習  
                 
                • 學習型仿真工程師

                • 有限元分析興趣愛好者和結構工程師

                • 理工科在校生和教師

                • 希望通過二次開發簡化工作、提高效率的工程師

                • ANSA軟件用戶和興趣愛好者

                3、讀者福利

                讀者福利:請在文章附件直接下載以下學習資料,如果遇到麻煩,請在文章下方留言或聯系平臺客服領取。

                作者:ANSA攻城獅   仿真秀專欄作者
                來源:仿真秀App

                附件

                免費鏈接.txt
                二次開發電子ANSA螺栓
                著作權歸作者所有,歡迎分享,未經許可,不得轉載
                首次發布時間:2023-05-29
                最近編輯:10月前
                仿真圈
                技術圈粉 知識付費 學習強國
                獲贊 8948粉絲 20273文章 3129課程 202
                點贊
                收藏
                未登錄
                還沒有評論

                課程
                培訓
                服務
                行家

                VIP會員 學習 福利任務 兌換禮品
                下載APP
                聯系我們
                幫助與反饋
                国产双飞大全在此岸,国产双飞风韵犹存主播,国产双飞黄色片子视频,国产水滴盗摄一区二区