- 积分
- 3680
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 115
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 dnawujun 于 2015-3-20 23:40 编辑
上次讲到如何操纵几何变换http://bbs.simol.cn/thread-137795-1-1.html
今天与大家分享下如何用Python操纵FluxServer去操纵点
Flux几何建模中总共有3种点,分别是
Point
PointCoordinates
PointPropagated
其中Point不能用来建立点,但是可以用
Point[1]来得到相应的点
一. 新建点
- 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[1].uvw=['1','1']
- PointCoordinates[1].color=Color['red']
复制代码
三. 删除点
删除单个
- PointCoordinates[1].delete()
复制代码
删除所有PointCoordinates
- PointCoordinates[ALL].delete()
复制代码
删除所有的点
四. 拉伸点
- t2 = TransfTranslationVector(name='T3',coordSys=CoordSys['XY1'],vector=['0','10'])
- result = Point[1].extrude(transformation=t2,repetitionNumber=2,extrusionType='standard')
复制代码
注意result是个python字典类型
- {'lines': [Line[2], Line[3]], 'stateOfPoints': array('i',[0, 0]) , 'points': [Point[5], Point[6]], 'stateOfLines': array('i',[0, 0])}
复制代码
其中stateOfPoints的值指示points的值是新建的还是已经存在的,比如这里
'stateOfPoints': array('i',[0, 0])指示'points': [Point[5], Point[6]]中的Point[5], Point[6]是新建的点
stateOfLines也是相同的意义
五. propagate
- t1 = TransfSymmetryPoint(name='Transf2',coordSys=CoordSys['XY1'],centerCoord=['0','0'])
- result = Point[1].propagate(transformation=t1,repetitionNumber=5)
复制代码
result是
- {'stateOfPoints': array('i',[1, 0]) , 'points': [Point[1], Point[3]]}
复制代码
这里可以注意到虽然repetitionNumber设置为5,但是由于采用的是点对称变换
所以实际上只生成了一个点,Point[3],这从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=[p2],coordSys=CoordSys['XY1'])
复制代码
result是
- {'dz': array('d',[0.0]) , 'dy': array('d',[0.0]) , 'dx': array('d',[0.001]) , 'distance': array('d',[0.001])}
复制代码
注意结果都是以米计算的
同时计算p1到p2、p1到p3的距离
- result = p1.computePointDistance(point=[p2,p3],coordSys=CoordSys['XY1'])
复制代码
result是
- {'dz': array('d',[0.0, 0.0]) , 'dy': array('d',[0.0, 0.005]) , 'dx': array('d',[0.001, 0.001]) , 'distance': array('d',[0.001, 0.005099019513592785])}
复制代码
附注:
拉伸点会生成一条直线,下一讲介绍关于直线的操作
Point的region属性会比较复杂,这个放到以后讲
Lecture6.rar
(48.96 KB, 下载次数: 27)
|
评分
-
查看全部评分
|