2017-08-02 52 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