找回密码
 注册
Simdroid-非首页
查看: 538|回复: 24

[二次开发] 悬赏:abaqus plug-ins开发多步骤处理内核程序问题

[复制链接]
发表于 2012-9-2 13:28:10 | 显示全部楼层 |阅读模式 来自 陕西西安
悬赏20仿真币未解决
本帖最后由 taishanbuzuo 于 2012-9-26 13:19 编辑

如下图所示:帮助文档中自带的一个plug-ins例子,现在想实现如下功能,
按OK按钮时  生成板子几何体,再按MESH按钮时划分网格。已实现多个步骤处理内核程序的问题
FXMAPFUNC(self, SEL_COMMAND, self.ID_1,
       testradiobutton_standardDB.MESH)           
上述语句已经用了,但是不知道怎么讲划分网格的函数与MESH button最终关联上。
附件里面是源程序,现在只能生成几何体,无法再第二步划分网格,望高手指点。         




附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2012-9-2 14:09:49 | 显示全部楼层 来自 河南郑州
Simdroid开发平台
你自己按照一个固定参数建立几何模型,再划分网格(中间不要有出错返回改正步骤),查看根目录下的rpy(好像是)文件,里面是脚本,你的操作都记录在里面了

看看软件它自己是怎么玩这个问题的 就知道了
回复

使用道具 举报

 楼主| 发表于 2012-9-2 14:41:14 | 显示全部楼层 来自 陕西西安
kinzyking 发表于 2012-9-2 14:09
你自己按照一个固定参数建立几何模型,再划分网格(中间不要有出错返回改正步骤),查看根目录下的rpy(好 ...

这个我知道,我的问题是,怎么实现多步骤问题。
怎么实现先调用几何体生成函数,然后再调用mesh。
回复

使用道具 举报

 楼主| 发表于 2012-9-11 19:53:43 | 显示全部楼层 来自 陕西西安
自己顶一下,高手们帮下忙哈
回复

使用道具 举报

发表于 2012-9-20 19:44:58 | 显示全部楼层 来自 福建厦门
首先请先认真阅读官方文档
《Abaqus Scripting User’s Manual》
《Abaqus GUI Toolkit User’s Manual》
API 请查阅官方文档
《Abaqus Scripting Reference Manual》
《Abaqus GUI Toolkit Reference Manual》

多按钮GUI,sendCommand()是一个重要函数

运行效果可参考:
[16.二次开发] 一个Abaqus GUI Toolkit运行实例


祝你好运!实践出真知。
2011-9-27 20:24:04 上传
下载附件 (58.59 KB)





点评

谢谢,非常受用  发表于 2012-9-21 16:25

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2012-9-20 23:45:33 | 显示全部楼层 来自 陕西西安
gocadcam 发表于 2012-9-20 19:44
首先请先认真阅读官方文档
《Abaqus Scripting User’s Manual》
《Abaqus GUI Toolkit User’s Manual》

好的  谢谢大侠  我先研究一下  
回复

使用道具 举报

 楼主| 发表于 2012-9-21 00:56:41 | 显示全部楼层 来自 陕西西安
本帖最后由 taishanbuzuo 于 2012-9-21 01:54 编辑
gocadcam 发表于 2012-9-20 19:44
首先请先认真阅读官方文档
《Abaqus Scripting User’s Manual》
《Abaqus GUI Toolkit User’s Manual》


非常感谢大侠!嘿嘿
经你指点,采用sendCommand()函数之后果然实现了我所需要的多步骤功能,但是现在又有一个问题,可能比较弱智。
    def MESH(self, sender, sel, ptr):                                                           
        partname=self.form.partnameKw.getValue()                                                
        sendCommand('print "part name is %s"'  % partname)                                      
        sendCommand('p = mdb.models["Model-1"].parts["%s"] ' % partname )                       
        sendCommand('p.seedPart(size=2.0, deviationFactor=0.1)')                                
        sendCommand('f = p.faces ')                                                            
        sendCommand('p.setMeshControls(regions=f, elemShape=QUAD, algorithm=MEDIAL_AXIS) ')     
        sendCommand('p.generateMesh() ')                                                        

我没执行一句都要用一次sendCommand,怎么样让上述语句简练一些呢。再次感谢。膜拜中。。。。
回复

使用道具 举报

 楼主| 发表于 2012-9-21 16:16:44 来自手机 | 显示全部楼层 来自 陕西
gocadcam 发表于 2012-9-20 19:44
首先请先认真阅读官方文档
《Abaqus Scripting User’s Manual》
《Abaqus GUI Toolkit User’s Manual》

我晓得怎么简写了,采用换行符与续行符结合,哈哈,大侠有好的办法再分享一下吧。
回复

使用道具 举报

发表于 2012-9-21 19:10:14 | 显示全部楼层 来自 福建厦门
可以自定义一个kernel process 函数。在*_plugin.py GUI插件注册文件中import;在GUI文件中调用
上面的示例就是这样实现的。

再次强调请先认真阅读官方文档
《Abaqus Scripting User’s Manual》
《Abaqus GUI Toolkit User’s Manual》
API 请查阅官方文档
《Abaqus Scripting Reference Manual》
《Abaqus GUI Toolkit Reference Manual》

祝你好运!实践出真知。

回复

使用道具 举报

 楼主| 发表于 2012-9-22 14:09:36 | 显示全部楼层 来自 陕西西安
gocadcam 发表于 2012-9-21 19:10
可以自定义一个kernel process 函数。在*_plugin.py GUI插件注册文件中import;在GUI文件中调用。
上面的示 ...

好的 好的 谢谢大侠
回复

使用道具 举报

发表于 2012-11-7 18:26:41 | 显示全部楼层 来自 德国
LZ看看,应该是可以实现你说的功能吧, 哈哈, 这20仿真币我就不客气的收下了哈.




本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2012-11-9 14:05:42 来自手机 | 显示全部楼层 来自 陕西
yaozongzhuan 发表于 2012-11-7 18:26
LZ看看,应该是可以实现你说的功能吧, 哈哈, 这20仿真币我就不客气的收下了哈.



不过我已经弄出来了,还是灰常感谢你的,你就拿去吧
回复

使用道具 举报

发表于 2012-11-9 17:13:28 | 显示全部楼层 来自 德国
taishanbuzuo 发表于 2012-11-9 14:05
不过我已经弄出来了,还是灰常感谢你的,你就拿去吧

不懂..
不是LZ应该给我么, 我自己应该怎么拿这个币呢?
回复

使用道具 举报

 楼主| 发表于 2012-11-10 10:33:19 | 显示全部楼层 来自 陕西
yaozongzhuan 发表于 2012-11-9 17:13
不懂..
不是LZ应该给我么, 我自己应该怎么拿这个币呢?

应该是版主弄
回复

使用道具 举报

发表于 2012-11-10 23:37:24 | 显示全部楼层 来自 德国
taishanbuzuo 发表于 2012-11-10 10:33
应该是版主弄

版主版主,LZLZ,速速奖我金币...
回复

使用道具 举报

 楼主| 发表于 2012-11-11 02:11:05 | 显示全部楼层 来自 陕西西安
yaozongzhuan 发表于 2012-11-10 23:37
版主版主,LZLZ,速速奖我金币...

这位哥们,你的程序有问题,没有满足我的要求,请看好我说的要求。
建议你好好看看gocadcam 给我的那些提示,你连问题都没看懂。你有必要再好好看看。仿真币你若喜欢可以给你。
回复

使用道具 举报

发表于 2012-11-11 09:21:45 | 显示全部楼层 来自 德国
本帖最后由 yaozongzhuan 于 2012-11-11 09:23 编辑
taishanbuzuo 发表于 2012-11-11 02:11
这位哥们,你的程序有问题,没有满足我的要求,请看好我说的要求。
建议你好好看看gocadcam 给我的那些提 ...

哦, 看完整你的要求了, 我以为你只是想实现"按OK按钮时  生成板子几何体,再按MESH按钮时划分网格", 以为你问的问题的侧重点在于为什么只按MESH时会报错,没注意到你后面说的又非要关联"划分网格的函数", 好了,这次附件里肯定是弄好了.改动的几个地方如下:
在mesh.py文件里删一行from abaqus import *, 加一行from kernelAccess import mdb,
在testradiobutton_standardDB.py文件开头加一行 import mesh,
并在testradiobutton_standardDB.MESH函数中使用mesh.MESH('pp')即可
如附件:





本帖子中包含更多资源

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

×
回复

使用道具 举报

 楼主| 发表于 2012-11-11 19:44:02 | 显示全部楼层 来自 陕西西安
yaozongzhuan 发表于 2012-11-11 09:21
哦, 看完整你的要求了, 我以为你只是想实现"按OK按钮时  生成板子几何体,再按MESH按钮时划分网格", 以为 ...

哥,你的程序运行错误。按ok没有生成几何体,按mesh就报错,不知道你运行过没。

我的意思是,按OK按钮生成几何体,再按mesh按钮才进行划分网格。
回复

使用道具 举报

发表于 2012-11-11 21:26:11 | 显示全部楼层 来自 德国
taishanbuzuo 发表于 2012-11-11 19:44
哥,你的程序运行错误。按ok没有生成几何体,按mesh就报错,不知道你运行过没。

我的意思是,按OK按钮生 ...

运行过没问题呀,确实是"按OK按钮生成几何体,再按mesh按钮才进行划分网格"呀,在我机子上确实没问题呀. 在你机子上又什么问题?
回复

使用道具 举报

 楼主| 发表于 2012-11-11 22:27:37 | 显示全部楼层 来自 陕西西安
yaozongzhuan 发表于 2012-11-11 21:26
运行过没问题呀,确实是"按OK按钮生成几何体,再按mesh按钮才进行划分网格"呀,在我机子上确实没问题呀. 在 ...

在我的电脑上,点击OK 之后,窗口关闭,CAE没任何反应,再打开 点击mesh就报错:
File "D:\SIMULIA\Abaqus\6.10-1\abaqus_plugins\testradiobutton_standard\testradiobutton_standard\testradiobutton_standardDB.py", line 56, in MESH
    mesh.MESH('pp')
  File "D:\SIMULIA\Abaqus\6.10-1\abaqus_plugins\testradiobutton_standard\testradiobutton_standard\mesh.py", line 12, in MESH
    p = mdb.models['Model-1'].parts['pp']
回复

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-8 12:43 , Processed in 0.046776 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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