找回密码
 注册
Simdroid-非首页
楼主: JingheSu

[二次开发] 加分帖:python学习初级篇

[复制链接]
发表于 2011-6-10 18:10:21 | 显示全部楼层 来自 山东临沂
呵~这么好的帖子刚看见,出去开个会 回来黄花菜都凉了
我也来一个吧,这个是用来转化string的
在abaqus中给梁单元赋属性的时候,必须先把梁单元转换成string
再把set转换成string的set才能附上属性,转成string的set局限就比较多
比如如果要合并模型,压缩了以后只会留下模型和set,string就没有了
写个小PY可以把string的set重新更换成edge的set

from part import *
mypart=mdb.models['Model-1'].parts['Part-1']
mylist=mypart.sets.keys()
for myS in mylist:
   try:
      mypart.Set(edges=mypart.stringers[myS].edges,name=myS)
   except:
      print 'Wrong-Set.. please check!!! :' + myS

评分

1

查看全部评分

回复 1 不支持 0

使用道具 举报

发表于 2011-6-10 22:35:25 | 显示全部楼层 来自 福建福州
Simdroid开发平台
请问下。6.8装的python是什么版本,还有python高级版本编写的 低版本也是无法实现吗??  看到这么多python大侠 想着学习学习,可是零基础,所以想零开始  
回复 不支持

使用道具 举报

发表于 2011-6-10 22:35:57 | 显示全部楼层 来自 福建福州
还有 python 装那个版本最好了,要跟abaqus内置的版本一致不??  谢谢各位大侠了
回复 不支持

使用道具 举报

 楼主| 发表于 2011-6-10 23:10:16 | 显示全部楼层 来自 江苏无锡
无所谓,6.8的没试过,不知道是什么版本的。
不过你装python2.7或者2.6应该都没有什么问题。
回复 不支持

使用道具 举报

发表于 2011-6-10 23:32:34 | 显示全部楼层 来自 天津
过段时间答辩完了我一定要好好学学python,先收藏了
回复 不支持

使用道具 举报

发表于 2011-6-10 23:56:05 | 显示全部楼层 来自 浙江杭州
辛苦楼主了啊!学习了!
回复 不支持

使用道具 举报

发表于 2011-6-11 16:07:50 | 显示全部楼层 来自 山东临沂
本帖最后由 kalvens 于 2011-6-12 09:18 编辑

J大发起题就一发不可收拾,其实平时写的小程序倒是不少,
只是用来处理自己用的东西别人用不到

刚看到有人发帖问如何连续提交INP,
连续提交的话可以使用批处理,但是批处理的问题就是不能设置内存以及cpu
提供一个PY



from abaqus import *
from abaqusConstants import *
from caeModules import *
from driverUtils import executeOnCaeStartup
executeOnCaeStartup()
import os
os.chdir(r'D:/temp6.8')
jobname=['job-1','job-2','job-3']
for myjob in jobname:   
  mdb.JobFromInputFile(name=myjob,
    inputFileName='D:/temp6.8'+myjob+'.inp', type=ANALYSIS,
    explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE,
    parallelizationMethodExplicit=DOMAIN, multiprocessingMode=DEFAULT,
    numDomains=8, userSubroutine='', numCpus=8, memory=50000,
    memoryUnits=MEGA_BYTES, scratch='')
for myjob in jobname:
    mdb.jobs[myjob].submit(consistencyChecking=OFF)
    mdb.jobs[myjob].waitForCompletion()

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-6-11 18:13:37 | 显示全部楼层 来自 江苏无锡
抓一个小辫子:lol:
批处理的也是可以设置内存以及cpu数目的哦
abaqus help 一下,你就看到:
abaqus job=job-name        [analysis | datacheck | parametercheck | continue | convert={select | odb | state | all} | recover | syntaxcheck | information={environment | local | memory | release | support | system | all}]
[input=input-file]
[user={source-file | object-file}]
[oldjob=oldjob-name]
[fil={append | new}]
[globalmodel={results file-name | output database file-name}]
[cpus=number-of-cpus]
[parallel={domain | loop}]
[domains=number-of-domains]
[dynamic_load_balancing]
[mp_mode={mpi | threads}]
[standard_parallel={all | solver}]
[memory=memory-size]
[interactive |  background | queue=[queue-name][after=time]]
[double={explicit | both | off | constraint}]
[scratch=scratch-dir]
[output_precision={single | full} ]
[madymo=MADYMO-input-file]
[port=co-simulation port-number]
[host=co-simulation hostname]
[listenerport=Co-Simulation Engine listener port-number]
[remoteconnections=Co-Simulation Engine remote connection host: port-number]
[timeout=co-simulation timeout value in seconds]
[unconnected_regions={yes | no}]
回复 不支持

使用道具 举报

 楼主| 发表于 2011-6-11 18:15:28 | 显示全部楼层 来自 江苏无锡
10# nbiao
你这个代码写的真清晰,堪称典范呀。
回复 不支持

使用道具 举报

发表于 2011-6-12 13:28:47 | 显示全部楼层 来自 黑龙江哈尔滨
我也分享一下,用python调用excel绘图。 我和一个师弟合作的。
from odbAccess import *
from abaqusConstants import *
import sys
import string
from pyExcelerator import *
import job
import os
import shutil
odb=openOdb(path='c:/temp/factor.odb')
myAssembly=odb.rootAssembly
nodecount=0
for j in [187,44,250,597]:
           
      i=48
   ws.write(1,pracount+nodecount,str(nodecount+1))
      while i<96:
            res=odb.steps['transit heat transfer'].frames.fieldOutputs['NT11'].values[j].data
            ws.write(i-46,pracount+nodecount,res)         
             i=i+1
            nodecount=nodecount+1
pracount=pracount+4
odb.close()
shutil.copy('c:/Temp/factor.odb','f:/pavement temp/data backup/single factor/odb/Conductivity')
os.remove('c:/Temp/factor.odb')
newname='f:/pavement temp/data backup/single factor/odb/Conductivity/'+str(pra)+'.odb'
os.rename('f:/pavement temp/data backup/single factor/odb/Conductivity/factor.odb',newname)

本帖子中包含更多资源

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

×

评分

2

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-6-12 14:29:51 | 显示全部楼层 来自 江苏
看来这个excelPython接口程序真多呀
回复 不支持

使用道具 举报

发表于 2011-6-14 00:10:59 | 显示全部楼层 来自 美国
好贴啊,不错不错
回复 不支持

使用道具 举报

发表于 2011-6-14 00:13:13 | 显示全部楼层 来自 美国
editplus以前也用过,竟然能autocomplete.  语法高亮也比emacs要好,等号都高亮了,呵呵。我的emacs 竟然不能自动补全。
回复 不支持

使用道具 举报

发表于 2011-6-14 02:03:32 | 显示全部楼层 来自 澳大利亚
本帖最后由 carpenter 于 2011-6-15 11:19 编辑

Well done. JingheSu,总结得很好,更难得是的这份热心和慷慨。
对于经常需要用EXCEL或ORIGIN,MATLAB作图和数据分析的,不妨试试matplotlib。
http://matplotlib.sourceforge.net/


我再鼓吹一下MATPLOTLIB, 有点跑题了,离楼主的帖子远了点,算是灌水了
考几个例子:
(1)
  1. from pylab import *

  2. def f(t):
  3.     s1 = cos(2*pi*t)
  4.     e1 = exp(-t)
  5.     return multiply(s1,e1)

  6. t1 = arange(0.0, 5.0, 0.1)
  7. t2 = arange(0.0, 5.0, 0.02)
  8. t3 = arange(0.0, 2.0, 0.01)

  9. subplot(211)
  10. l = plot(t1, f(t1), 'bo', t2, f(t2), 'k--', markerfacecolor='green')
  11. grid(True)
  12. title('A tale of 2 subplots')
  13. ylabel('Damped oscillation')

  14. subplot(212)
  15. plot(t3, cos(2*pi*t3), 'r.')
  16. grid(True)
  17. xlabel('time (s)')
  18. ylabel('Undamped')
  19. show()
复制代码



(2)图上加公式!
  1. from matplotlib import rcParams
  2. rcParams['text.usetex']=True
  3. rcParams['text.latex.unicode']=True
  4. from numpy import arange, cos, pi
  5. from matplotlib.pyplot import figure, axes, plot, xlabel, ylabel, title, \
  6.      grid, savefig, show

  7. figure(1, figsize=(6,4))
  8. ax = axes([0.1, 0.1, 0.8, 0.7])
  9. t = arange(0.0, 1.0+0.01, 0.01)
  10. s = cos(2*2*pi*t)+2
  11. plot(t, s)

  12. xlabel(r'\textbf{time (s)}')
  13. ylabel(ur'\textit{Velocity (\u00B0/sec)}', fontsize=16)
  14. title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!",
  15.       fontsize=16, color='r')
  16. grid(True)
  17. show()
复制代码


(3) 更多
http://matplotlib.sourceforge.net/gallery.html


matplotlib和PYTHON很优美,不过很多时候我还是EXCEL VBA+ORIGIN痛并快乐着(放弃旧的搞新的好难...)

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-6-14 11:16:15 | 显示全部楼层 来自 重庆沙坪坝区
好好拜读。。。。。
回复 不支持

使用道具 举报

发表于 2011-6-17 12:42:31 | 显示全部楼层 来自 江苏无锡
个人觉得,要想把python用得好,还得编函数,因为这些函数是通用的,完全参数化的,能够适用于各种模型和工作。前处理python也是胜任的,在积累了很多函数的情况下,相互调用,那就是编程,对于没有特殊几何曲面的模型都是可以适用的。当然也包括DOE和优化设计。这是一个逐步积累和扩充功能的过程。从我的使用经验来看,python可比ansys 的apdl强多了,好用多了,因为后者不是面向对象的。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-7-8 13:56:04 | 显示全部楼层 来自 上海
谢谢,好资料
回复 不支持

使用道具 举报

发表于 2011-7-20 11:13:38 | 显示全部楼层 来自 重庆
看了各位大作,受益颇多。直接用用命令行没问题。但是不知道怎么将abaqus相关的moudle加载到Editplus中去,试了多次,没有成功。用Editplus编译时一读到from odbAccess import *这些就报错(ImportError: No module named odbAccess)。请给予提示,谢谢。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-7-20 12:22:37 | 显示全部楼层 来自 上海
如果调试abaqus相关的py程序,还是用abaqus PDE好一点。
回复 不支持

使用道具 举报

volvos60hlj 该用户已被删除
发表于 2011-7-26 13:18:56 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 13:47 , Processed in 0.055436 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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