- 积分
- 3680
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 115
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 dnawujun 于 2015-1-20 15:13 编辑
上次讲到如何载入、关闭、保存和新建Project
http://bbs.simol.cn/thread-136924-1-1.html
今天与大家分享下如何用Python操纵FluxServer去新建、修改、获取以及删除几何参数
所有这些操作在API_Flux_V11.2.doc中并无对应的函数来实现,但是可以通过调用
H_ERROR FMP_executeJythonCommand (CEDINT32 serverUid,char* commandline)
这个函数来实现
一. 新建几何参数
我们在Flux中用命令行建立几何参数是用这样的命令:
ParameterGeom(name='A : Height',expression='10')
这个命令就可以用在FMP_executeJythonCommand的参数commandline中以实现新建几何参数的操作
注意name=’A : Height’中A是参数名称,Height为参数的注释;A和:之间以及:和Height之间均必须有空格
如果没有注释,则是:
ParameterGeom(name='A',expression='10')
总的来说就是这样的代码(摘抄自附件中Geometry.py):
if comment != "":
command = r"ParameterGeom(name='" + name + r" : " + comment + r"',expression='" +str(expression) + r"')"
else:
command = r"ParameterGeom(name='" + name + r"',expression='" +str(expression) + r"')"
errorId = self._FLUX_MP.FMP_executeJythonCommand(self._server.serverUid, command)
self._server._CheckError(errorId)
二. 修改几何参数
修改表达式,调用FMP_executeJythonCommand,commandline参数为:
ParameterGeom['A'].expression='2'
修改注释,调用FMP_executeJythonCommand,commandline参数为:
ParameterGeom['A'].name='A : TestA' 或者 ParameterGeom['A'].name='A' 将注释清空
详细代码请参加附件
三. 获取几何参数
API_Flux_V11.2.doc中有个这个函数:FMP_getAllVariationParameter,这个函数的功能是获取Project中所有的参数
包括几何参数,但是没有单独的获取几何参数的函数。于是本人反编译了一下flux_mp.dll,发现FMP_getAllVariationParameter
是这样实现的:
首先调用FMP_executeJythonCommand(serverUid, "FMP_getAllVariationParameter=VariationParameter[ALL].name")
然后调用FMP_getJythonStringArrayValue(serverUid,"FMP_getAllVariationParameter",numberValues,values)
返回的值在values数组中
按照相同的思路,我们可以用
FMP_executeJythonCommand(serverUid, " FMP_getAllGeometricParameterNames = ParameterGeom [ALL].name")
FMP_getJythonStringArrayValue(serverUid," FMP_getAllGeometricParameterNames ",numberValues,values)
来获取所有的几何参数的名称及注释
注意FMP_getAllGeometricParameterNames这个名字可以随便取,只要调用FMP_executeJythonCommand时和
FMP_getJythonStringArrayValues时所用的名称一致并且不和Flux中的保留关键字以及函数重名即可
获取表达式有所不同,不能用类似
FMP_executeJythonCommand(serverUid, " FMP_getAllGeometricParameterExpressions= ParameterGeom [ALL].expression")
来获取。需要采取一个参数一个参数的方式来获取,比如要取得名字为’A’的参数的表达式,可以调用
FMP_executeJythonCommand(serverUid, " FMP_getGeometricParameterExpression= ParameterGeom [‘A’].expression")
FMP_getJythonStringArrayValue(serverUid," FMP_getGeometricParameterExpression ",1,values)
因此需要采用循环的方式,详细参见附件代码Project.py中的_getAllGeometricParametersOnLoad函数的实现
四. 删除几何参数
删除单个,调用FMP_executeJythonCommand,commandline参数为:
ParameterGeom['A'].delete()
删除所有,调用FMP_executeJythonCommand,commandline参数为:
ParameterGeom[ALL].delete()
附件中用类包装了下,运行时请双击bat文件
另外由于本人也是在开发中,附件中的代码并非理想实现
随着开发的进展,代码会不断变化
Lecture3.rar
(198.16 KB, 下载次数: 55)
补充内容 (2015-1-21 14:16):
获取所有几何参数的表达式,可以通过
commandline = "FMP_getAllGeometricParameterExpressions=[i.expression for i in ParameterGeom[ALL]]"
来执行FMP_executeJythonCommand
补充内容 (2015-1-21 14:17):
然后用FMP_getJythonStringArrayValue(serverUid," FMP_getAllGeometricParameterExpressions",numberOfValues,values)
来得到表达式 |
评分
-
查看全部评分
|