Python调用Flux第六讲:操纵几何点
本帖最后由 dnawujun 于 2015-3-20 23:40 编辑上次讲到如何操纵几何变换http://bbs.simol.cn/thread-137795-1-1.html
今天与大家分享下如何用Python操纵FluxServer去操纵点
Flux几何建模中总共有3种点,分别是
Point
PointCoordinates
PointPropagated
其中Point不能用来建立点,但是可以用
Point来得到相应的点
一. 新建点
PointCoordinates(uvw=['1','0'],coordSys=CoordSys['XY1'])
PointCoordinates(uvw=['2','0'],coordSys=CoordSys['XY1'])
以上是最简单的方法,这样建立的点,region属性为None
mesh属性默认为AIDED_MESHPOINT(如果aided mesh处于激活状态)或者None,
color默认为白色,nature默认为STANDARD
复杂一点的可以同时给定region、mesh、nature等属性,比如:
PointCoordinates(uvw=['1','0'],coordSys=CoordSys['XY1'],nature=Nature['STANDARD'],region=RegionPoint['REGIONPOINT_1'], mesh=MeshPoint['MEDIUM'])
二. 修改点
PointCoordinates.uvw=['1','1']
PointCoordinates.color=Color['red']
三. 删除点
删除单个
PointCoordinates.delete()
删除所有PointCoordinates
PointCoordinates.delete()
删除所有的点
Point.delete()
四. 拉伸点
t2 = TransfTranslationVector(name='T3',coordSys=CoordSys['XY1'],vector=['0','10'])
result = Point.extrude(transformation=t2,repetitionNumber=2,extrusionType='standard')
注意result是个python字典类型
{'lines': , Line], 'stateOfPoints': array('i',) , 'points': , Point], 'stateOfLines': array('i',)}
其中stateOfPoints的值指示points的值是新建的还是已经存在的,比如这里
'stateOfPoints': array('i',)指示'points': , Point]中的Point, Point是新建的点
stateOfLines也是相同的意义
五. propagate
t1 = TransfSymmetryPoint(name='Transf2',coordSys=CoordSys['XY1'],centerCoord=['0','0'])
result = Point.propagate(transformation=t1,repetitionNumber=5)
result是
{'stateOfPoints': array('i',) , 'points': , Point]}
这里可以注意到虽然repetitionNumber设置为5,但是由于采用的是点对称变换
所以实际上只生成了一个点,Point,这从stateOfPoints可以看出
六. 计算点到点的距离
p1 = PointCoordinates(uvw=['1','0'],coordSys=CoordSys['XY1'])
p2 = PointCoordinates(uvw=['2','0'],coordSys=CoordSys['XY1'])
p3 = PointCoordinates(uvw=['2','5'],coordSys=CoordSys['XY1'])
计算p1到p2的距离
result = p1.computePointDistance(point=,coordSys=CoordSys['XY1'])
result是
{'dz': array('d',) , 'dy': array('d',) , 'dx': array('d',) , 'distance': array('d',)}
注意结果都是以米计算的
同时计算p1到p2、p1到p3的距离
result = p1.computePointDistance(point=,coordSys=CoordSys['XY1'])
result是
{'dz': array('d',) , 'dy': array('d',) , 'dx': array('d',) , 'distance': array('d',)}
附注:
拉伸点会生成一条直线,下一讲介绍关于直线的操作
Point的region属性会比较复杂,这个放到以后讲
thank you for share and make a better world,
I don't need for the moment call to the flux server from python,
there're some good example in GotIt for link external applications to Flux,
like GOT, SPEED or MATLAB (free GOT at h t t p : / / forge-mage.g2elab.grenoble-inp.fr/project/got/download/Got3 ),
I use pyflux (macros and scripts), but who knows....
页:
[1]