2017-10-23 4 views
1

Abaqusによって選択されるデフォルト要素はC3D8Rであり、C3D8Iに変更したいと思います。 私はCAEの要素型を変更する方法、あるいはPythonを使って再帰的に変更する方法を知っていますが、デフォルト値は変更しません。Abaqusでデフォルトの要素タイプを変更する

私がパーティションを作り直して再メッシュすると、前の選択が上書きされ、デフォルトのC3D8Rが生成されるという問題があります。

おかげで、

R.

EDIT:SIMULIAコミュニティからフェルナンド・C.へ おかげで以下の微調整を使用することができます。しかし、より良い解決策を探しています!

レミー、

私はデフォルトの要素は、ハードコードされていると思うので、私たちは、あなたが変更できる設定はありません。

しかし、絶望しないでください。 methodCallbackを使用すると、パーツ/インスタンスの作成後に自動的に変更することができます。

これはabaqus_v6.envファイルに入れることができるので、常にそれを行います。

import methodCallback 

from abaqus import * 

from abaqusConstants import * 

def changeDefaultElementType(callingObject, arguments, keywordArguments, userData): 

    print 'Changing the default element type' 

    p = getMethodReturnValue() 

    p.setElementType(

     elemTypes=(

      ElemType(elemCode=C3D8I, elemLibrary=STANDARD, secondOrderAccuracy=OFF, distortionControl=DEFAULT), 

      ElemType(elemCode=C3D6, elemLibrary=STANDARD), 

      ElemType(elemCode=C3D4, elemLibrary=STANDARD) 

      ), 

     regions=(p.cells.getSequenceFromMask(('[#1 ]',),),) 

     ) 

methodCallback.addCallback(ModelType, 'Part', changeDefaultElementType, callAfter=True) 

の例では、 もう少し(例えば、エレメントが3Dパーツのみ入力などを変更する)それを研磨することをお勧めします、少し荒いです。

+0

SIMULIAにあなたの履歴書を送って? – agentp

+0

私の履歴書や質問は? 私の質問はsimuliaコミュニティにも掲載されています:https://swym.3ds.com/#community:73/iquestions:35658 しかし、私はここでより多くの視聴者にアプローチすると思っていました。 私の履歴書はこちらから入手できます:https://www.linkedin.com/in/remyrouxditbuisson/ ご覧のとおり、彼らはすでに持っています;) –

+0

申し訳ありません。私はあなたが会社のデフォルトを変更するために働く必要があると思います。 – agentp

答えて

1

デフォルトの要素の型が一方のAbaqus/CAEで2018

利用できるようになります変更、以下の機能がcustom_v6.envに追加することができます。 (C:\プログラムファイル\ダッソー・システムズ\ SimulationServices \ V6R2017x \ Abaqusの\ win_b64 \ SMA \サイト\のcustom_v6.env)

def onCaeStartup(): 
    import methodCallback 
    from mesh import ElemType 
    from job import ModelJobType 

    ## Function to be called when an input file is written 
    def checkElementType(callingObject, arguments, keywordArguments, userData): 
     print 'Checking element types in the model' 

     # Get the name of the job from the command 
     a = str(callingObject).split("jobs['")[1] 
     job = a.split("']")[0] 

     model = mdb.jobs[job].model 
     ra = mdb.models[model].rootAssembly 

     # Query the Element Types in the assembly and display them 
     elemType=[] 
     for instance in ra.instances.keys():  
      for cell in ra.instances[instance].cells: 
       if ra.getElementType(region=cell,elemShape=HEX).elemCode not in elemType: 
        elemType.append(ra.getElementType(region=cell,elemShape=HEX).elemCode) 
        print 'INSTANCE: '+instance +' = '+ ra.getElementType(region=cell,elemShape=HEX).elemCode 

    # Define the callback. When the writeInput method is called on a ModelJobType object, the function checkElementType is executed.     
    methodCallback.addCallback(ModelJobType, 'writeInput', checkElementType) 
関連する問題