找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第40期发售火热进行中
Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
查看: 1303|回复: 4

[原创] Python调用Flux第五讲:操纵几何变换

[复制链接]

该用户从未签到

发表于 2015-3-6 09:56 | 显示全部楼层 |阅读模式 来自: 中国四川德阳
本帖最后由 dnawujun 于 2015-3-6 09:58 编辑

上次讲到如何操纵坐标系 http://bbs.simol.cn/thread-137477-1-1.html
今天与大家分享下如何用Python操纵FluxServer去新建、修改、获取以及删除几何变换

所有这些操作都是通过调用
  1. H_ERROR FMP_executeJythonCommand (CEDINT32 serverUid,char* commandline)
  2. H_ERROR FMP_getJythonStringArrayValue (CEDINT32 serverUid,TCHAR* jythonVarName,CEDINT32* numberValues,TCHAR*** values)
复制代码

这个函数来实现

Flux中总共有15种几何变换,分别是
  1. Transf
  2. TransfAffineLine2PT
  3. TransfAffinePlane3PT
  4. TransfAffinePoint
  5. TransfCombined
  6. TransfHelicalPivotCoord
  7. TransfHelicalPivotPoint
  8. TransfRotation1Angle3PT
  9. TransfRotation3AnglesPivotCoord
  10. TransfRotation3AnglesPivotPoint
  11. TransfSymmetryLine2PT
  12. TransfSymmetryPlane3PT
  13. TransfSymmetryPoint
  14. TransfTranslation2PT
  15. TransfTranslationVector
复制代码


其中Transf不能用来建立任何几何变换,但是可以用
Transf[1],Transf['Transf_1']来得到相应的几何变换

我们可以在Flux中输入以下代码来得到这些几何变换的名称
  1. for i in dir():
  2. if i.startswith('Transf'):
  3.   print i
复制代码


这里以Flux2D中的TransfTranslationVector来讲述各个操作


一.        新建几何变换
  1. TransfTranslationVector(name='Transf_1',coordSys=CoordSys['XY1'],vector=['0','1'])
复制代码


二.        修改几何变换
修改名称
  1. TransfTranslationVector['Transf_1'].name='Transf_2'
复制代码

或者
  1. Transf['Transf_1'].name='Transf_2'
复制代码


修改坐标系
  1. TransfTranslationVector['Transf_1'].coordSys=CoordSys['XY2']
复制代码

或者
  1. Transf['Transf_1'].coordSys=CoordSys['XY2']
复制代码



修改vector类似

三.        获取几何变换
获取名称
  1. TransfTranslationVector['Transf_1'].name
复制代码

或者
  1. Transf['Transf_1'].name
复制代码



获取其他参数类似
       
四.        删除几何变换
删除单个几何变换
  1. TransfTranslationVector['Transf_1'].delete()
复制代码

或者
  1. Transf['Transf_1'].delete()
复制代码


删除所有TransfTranslationVector
  1. TransfTranslationVector[ALL].delete()
复制代码


删除所有的几何变换
  1. Transf[ALL].delete()
复制代码



附注:
附件中的代码已经和前几讲大为不同了,现在的实现几乎完全模拟了PyFlux
除了处理FluxServer的代码外,其余代码可以在拷贝粘贴至Flux中执行,这样
就可以实现重用已有的PyFlux脚本。比如:
  1. import os
  2. import sys
  3. from FluxAPI import *
  4. from FluxAPI.ServerConstants import ServerType
  5. appPath = os.path.split(os.path.realpath(sys.argv[0]))[0]
  6. server.start(ServerType.FLUX3D_LATEST, appPath + r'\TestProjects')
  7. # 以下代码可以直接拷贝粘贴至Flux中执行
  8. newProject()
  9. p1 = PointCoordinates.__call__(uvw=['0', '0', '0'],coordSys=CoordSys['XYZ1'])
  10. p2 = PointCoordinates.__call__(uvw=['0', '1', '0'],coordSys=CoordSys['XYZ1'])
  11. t = TransfAffineLine2PT.__call__(name='AffineLine2PT', point=[p1, p2], factor='0.5')
  12. t.delete()
  13. closeProject()
  14. # 以上代码可以直接拷贝粘贴至Flux中执行
  15. server.stop()
复制代码






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 2西莫币 +30 收起 理由
FOXWHY + 15 原创高水平内容
y1949b + 15 精品文章

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

签到天数: 2 天

连续签到: 1 天

[LV.1]初来乍到

发表于 2015-3-6 13:05 | 显示全部楼层 来自: 西班牙
tank uuuu dnawujun
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-3-6 14:48 | 显示全部楼层 来自: 中国上海
楼主伟大,拜膜!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-3-6 16:25 | 显示全部楼层 来自: 中国北京
赞楼主,大牛啊~~~
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-3-7 20:00 | 显示全部楼层 来自: 法国
Thanks a lot for sharing this files
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

西莫电机论坛微信公众平台欢迎您的关注!

QQ|Archiver|手机版|小黑屋|西莫电机圈 ( 浙ICP备10025899号-3|浙公网安备33010502012192号 )

GMT+8, 2025-2-24 10:02 , Processed in 0.053473 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表