RF Python Basic_02

**Basic_01に引き続き....**
**前記事はこちら** `RF Python Basic_01`
http://qiita.com/ts_bros/items/17dd84e550897ed42343

---
*`LayoutData(.lay)について`*
:Viewを自分好みにカスタマイズしたい場合...
各viewに以下のselectがあります。

```
右がSplit_tool  (Split Vertical:縦方向　Split Horizontal:横方向)
左がchooser
```


![Edit_Layout.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/cc436f55-e556-2432-2a92-854f97f0ca0a.png)

編集したlayoutDataを格納しているformatが....
.layになります。

load/Save layoutで保存したり、読み込んだりできます。


*`Custom LayoutをDefoult設定したい場合は...`*

File/Preference/Layoutで設定することができます。


![Def_LayOut.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/ce6de9ab-4f3d-760f-8bfc-bc6672ae7263.png)



---
本題に入ります

**`-Python Realflow Scripting-`**

:Beginner向けが本当にない.....
http://www.realflowforum.com/viewforum.php?f=39


---
てな訳で....
**`RF_Python lesson01`**

`Null Geometryを作成する`
[Python]

```
#Create Null
null = scene.addNull();
#SetName 
null.setName("locator");

```


![Create_Null.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/59ed02d3-b926-4a2d-7c72-37416ab9a927.png)


`Hubを作成する`
[Python]


```
#Create Null
hub = scene.addHub();
```

`Hubを作成して名前を変更する`




```
#Create Hub
hub = scene.addHub();

Hubname =scene.getDefaultHubName();

scene.message(Hubname);

#Return List HubName
geth = scene.getHubs();

listHub = geth[0];

scene.renameHub(listHub,"Target");
```

![Rename_Hub.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/654bbf71-b30f-759b-9fbe-e0f701cc1eef.png)


:setName()を使わず...
 listでHubgeometryを取得し、renameHub()で変更するアプローチ





`HubとNullを接続させる`
[Python]

```
#Create Geometry

hub01 = scene.addHub();
null01 = scene.addNull();

hub02 = scene.addHub();
null02 = scene.addNull();

#setName
null01.setName("Null_A");

null02.setName("Null_B");

#Return List HubName
geth = scene.getHubs();

listHub1 = geth[0];
listHub2 = geth[1];

#RenameHub
hubname01=scene.renameHub(listHub1,"A");
hubname02=scene.renameHub(listHub2,"B");

#Create NodeConection

newhubs = scene.getHubs();

New_hub01 = newhubs[0];
New_hub02 = newhubs[1];

newnodes = scene.getNodes();

New_null01 = newnodes[0];
nullname01 = New_null01.getName();

New_null02 = newnodes[1];
nullname02 = New_null02.getName();

#print node&Hub Name
scene.message("hub="  +New_hub01+New_hub02+"Node="  +nullname01+nullname02);


#Change Conect
scene.addLink(nullname01,New_hub02);
scene.addLink(nullname02,New_hub02);
```

![add_link.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/2cb6180b-2beb-0497-63f1-256538bf78e2.png)


`Nullを作成した後、Hubを削除する`
[Python]

```
#Create Null
null01 = scene.addNull();  
null02 = scene.addNull(); 

#get Hubname
Hubs = scene.getHubs();

Hubname = Hubs[0];

#remove Hub
delete = scene.removeHub(Hubname);
```


![delete_Hub.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/b70a6380-75c6-5709-b696-58f0c892dea9.png)

---

`複数のNullを作成し、Node毎にNameを修正`
[Python]
arrayで作成

```
array = ['1','2','3','4','5'];


for i in array:
    Null = scene.addNull();
    Null.setName("Blast"+i);
```


![Create_many_Nodes.PNG](https://qiita-image-store.s3.amazonaws.com/0/179218/ce5048f7-456b-ddd6-5bf3-0f7ba2a1634c.png)


*for rangeで作成*


```
iterate =10;

for i in range(0,iterate):
    null = scene.addNull();
    null.setName("Blast"+i);

```
Whileで作成

```
iterate =0;

while iterate<30:
     null = scene.addNull();
    
    iterate = iterate+1;
```
----
RF_PythonのLoop処理は記述が少し違うようなので
注意すべき点であるでしょう

whileは取り扱い注意しましょう(永遠に処理しちゃうよぉ.....)