2011-08-11 20 views
-1

私たちのansysソフトウェア私は特定のことを自動化するスクリプトを生成したいと思います。 私は私が手に私の行動を記録するときは、次のPython:ループを使った名前変数

template1 = GetTemplate(
    TemplateName="Random Vibration", 
    Solver="ANSYS") 
system1 = GetSystem(Name="Modal (ANSYS)") 
component1 = system1.GetComponent(Name="Engineering Data") 
component2 = system1.GetComponent(Name="Geometry") 
component3 = system1.GetComponent(Name="Model") 
component4 = system1.GetComponent(Name="Solution") 
componentTemplate1 = GetComponentTemplate(Name="SimulationSetupCellTemplate_StructuralRandomVibrationANSYS") 
system2 = template1.CreateSystem(
    ComponentsToShare=[component1, component2, component3], 
    DataTransferFrom=[Set(FromComponent=component4, TransferName=None, ToComponentTemplate=componentTemplate1)], 
    Position="Right", 
    RelativeTo=system1) 

は72のsytemsを作成する必要があるので、私は手動でこれらをコピー&ペーストの代わりにループでこれを行うしたいと思います。

+1

データとコードの例で質問を言い換えてください。スキャンしようとしているデータ構造はどこですか? – Lorenzo

+0

コードはansysデータセットですが、スキャン自体が問題なく行われるため、これは関係ありません。コピーされたシステムの作成です。新しいブロックはすべて前のコピーペーストです - system2、system3、...、system72 – bram

+0

これは私が今までコピーループのために持っていたものですか、範囲(2、38)にあります: \t \t \t B = i -1 \t \t \t "システム" + STR(I)= template1.CreateSystem( \t \t \t ComponentsToShare = [コンポーネント1、コンポーネント2、component3]、 \t \t \t DataTransferFrom = [セット(FromComponent = component4、TransferName =なし、 ToComponentTemplate = componentTemplate1)]、 \t \t \t Position = "right" 、 \t \t \t RelativeTo = "system" + str(B)) – bram

答えて

0

を続行するための最良の方法は何である私は、私は完全にあなたの質問をundesrtoodが、あなたのコードから、私はこれが何をしたいと思い命名わからない:あなたがそれらにアクセスする必要がある場合

systems1 = [] 
systems2 = [] 
templates = [] 
components1 = [] 
components2 = [] 
components3 = [] 
components4 = [] 
for i in range(72):  
    template = GetTemplate(
     TemplateName="Random Vibration", 
     Solver="ANSYS") 
    system = GetSystem(Name="Modal (ANSYS)") 
    component = system.GetComponent(Name="Engineering Data") 
    component1 = system.GetComponent(Name="Geometry") 
    component2 = system.GetComponent(Name="Model") 
    component3 = system.GetComponent(Name="Solution") 
    componentTemplate = GetComponentTemplate(Name="SimulationSetupCellTemplate_StructuralRandomVibrationANSYS") 
    system = template.CreateSystem(
    ComponentsToShare=[component1, component2, component3], 
    DataTransferFrom=[Set(FromComponent=component4, TransferName=None, ToComponentTemplate=componentTemplate)], 
    Position="Right", 
    RelativeTo=system) 
    templates.append(template) 
    ... rest of appends... 

はアペンドがあります後で私はあなたがそうすると思います。実際にsystem1、system2などの名前を付ける必要がある場合は、execを使用して、ループ内に文字列を構築できます。

関連する問題