2017-08-02 12 views

答えて

1

方法はありますが、それほど簡単ではありません。カスタムGUIプロシージャーを作成する必要があります。シンプルなカーネルスクリプティングを使用することはできません。

カスタムAFXPickStep手順を実装する必要があります。プロシージャ自体の詳細については、AbaqusのドキュメントAbaqus GUI Toolkit Reference Guide > All Classes > AFXPickStepを参照してください。

以下は、Abaqus Viewerでノードを選択するのに使用される同様の手順の小さな例です。それを自分の必要に合わせてください。

import abaqusConstants 
import abaqusGui 


class PickNodesProcedure(abaqusGui.AFXProcedure): 

    def __init__(self, owner): 
     abaqusGui.AFXProcedure.__init__(self, owner) 

     self.cmd = abaqusGui.AFXGuiCommand(
      mode=self, 
      method='pick', 
      objectName='node_set', 
      registerQuery=abaqusGui.FALSE 
     ) 

     self.nodesKw = abaqusGui.AFXObjectKeyword(
      command=self.cmd, 
      name='node', 
      isRequired=abaqusGui.TRUE 
     ) 

    def activate(self): 
     return abaqusGui.AFXProcedure.activate(self) 

    def getFirstStep(self): 
     self.pickStep = abaqusGui.AFXPickStep(
      owner=self, 
      keyword=self.nodesKw, 
      prompt="Pick nodes", 
      entitiesToPick=abaqusGui.NODES, 
      numberToPick=abaqusGui.ONE, 
      sequenceStyle=abaqusGui.TUPLE 
     ) 
     return self.pickStep 

    def getLoopStep(self): 
     return self.pickStep 


toolset = abaqusGui.getAFXApp().getAFXMainWindow().getPluginToolset() 

toolset.registerGuiMenuButton(
    buttonText='Pick Nodes', 
    object=PickNodesProcedure(toolset), 
    kernelInitString='import kernel_module', 
    applicableModules=abaqusConstants.ALL, 
) 

これには、選択したエンティティを処理するために必要なカーネルスクリプトは含まれていません。

+0

ありがとうございます。私が試してみます – janekpel

関連する問題