2017-08-02 11 views
0

Gibt es eine Möglichkeit, ein Skript zu schreiben, die in Abaqus CAE für Punkt klicken fordert? Ich kenne die Funktion getInput, aber es funktioniert nur für Strings.Abaqus scripting: get Punkt

Antwort

1

Es gibt einen Weg, aber es ist nicht so einfach. Sie müssen eine benutzerdefinierte GUI-Prozedur erstellen. Mit einfachen Kernel-Skripten wird das nicht funktionieren.

Sie sollten eine benutzerdefinierte Prozedur implementieren. Weitere Informationen zum Verfahren selbst finden Sie in der Abaqus-Dokumentation: Abaqus GUI Toolkit Reference Guide > All Classes > AFXPickStep.

Hier ist ein kleines Beispiel für eine ähnliche Prozedur, mit der Knoten in Abaqus Viewer ausgewählt werden. Passen Sie es Ihren eigenen Bedürfnissen an.

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, 
) 

Beachten Sie, dass dies nicht das Kernelskript enthält, das zum Verarbeiten der ausgewählten Entitäten benötigt wird.

+0

Vielen Dank. Ich werde es versuchen – janekpel