日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python解放二次开发_[转载]Python二次开发程序详解

發布時間:2025/3/8 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python解放二次开发_[转载]Python二次开发程序详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

######################################

##?Fundamentschwingungsstudie?##

##?nur geeignet fuer ABAQUS

6.4-1?##

##?erstellt

von D.Chen in 2009?##

######################################

#開頭的為注釋行.

第一步, 建立建模環境, 這一步中py將從abaqus中導入建模所需的所有程序模塊.

from part import *

接下來定義草圖環境

mdb.models['Model-1'].Sketch(name='__profile__',

sheetSize=200.0)

mdb.models['Model-1'].sketches['__profile__'].sketchOptions.setValues(constructionGeometry=ON,

decimalPlaces=2, dimensionTextHeight=5.0, grid=ON,

gridFrequency=2, gridSpacing=5.0, sheetSize=200.0,

viewStyle=AXISYM)

上面的設定為大小200*200, 格柵間距為5, 文字標注高度為5.

mdb.models['Model-1'].sketches['__profile__'].ObliqueConstructionLine(point1=(0.0,

-100.0), point2=(0.0, 100.0))

本句語句設定軸對稱模型的對稱軸線位置

mdb.models['Model-1'].sketches['__profile__'].rectangle(point1=(0.0,

0.0),point2=(40.0, -40.0))

該語句繪制矩形, 從點0,0 至點40,-40

mdb.models['Model-1'].Part(dimensionality=AXISYMMETRIC,

name='Boden', type=DEFORMABLE_BODY)

定義模型為軸對稱, 名字為boden,為可變形體

mdb.models['Model-1'].parts['Boden'].BaseShell(sketch=mdb.models['Model-1'].sketches['__profile__'])

del mdb.models['Model-1'].sketches['__profile__']

繪圖完成不要忘記收回建模環境所占的內存

第二節, 材料定義

from material import *

from section import *

從ABAQUS提供的接口中導入材料庫和組件庫

mdb.models['Model-1'].Material(name='Boden')

定義材料名

mdb.models['Model-1'].materials['Boden'].Density(table=((2000.0, ),

))

定義材料密度

mdb.models['Model-1'].materials['Boden'].Elastic(table=((210546.3,

0.3333), ))

定義材料線彈性模量和泊松比, 其它的材料, 如彈塑性, 粘彈性材料均對應不同的對象函數.

mdb.models['Model-1'].HomogeneousSolidSection(material='Boden',

name='boden',thickness=1.0)

mdb.models['Model-1'].parts['Boden'].assignSection(region=Region(faces=mdb.models['Model-1'].parts['Boden'].faces[0:1]),

sectionName='boden')

設定組件為坐標無關性材料,厚度為單位厚度, 并將屬性附給所用的組件

第三節, 裝配

from assembly import *

首先, 導入裝配所用到的對象

mdb.models['Model-1'].rootAssembly.DatumCsysByThreePoints(coordSysType=CYLINDRICAL,

origin=(0.0, 0.0, 0.0), point1=(1.0, 0.0, 0.0), point2=(0.0,0.0,

-1.0))

定義坐標類型為柱坐標, 原點0,0,0,另外兩個為單位向量, 確定該坐標軸的方向.

mdb.models['Model-1'].rootAssembly.Instance(name='Boden-1',

part=mdb.models['Model-1'].parts['Boden'])

生成草圖對像boden的實體, 名字叫Boden-1. 無偏移插入

from part import *

from material import *

from section import *

from assembly import *

第四節, 定義分析步

from step import *

象其它步一樣, 先導入分析步要用到的模塊

mdb.models['Model-1'].ImplicitDynamicsStep(initialInc=0.005,

maxNumInc=1024,name='Step-1', noStop=OFF, nohaf=OFF,

previous='Initial',timeIncrementationMethod=FIXED,

timePeriod=5.12)

定義對動力隱式分析, 時長為0.005*1024=5.12個時間單位, 前一步為Initial

mdb.models['Model-1'].fieldOutputRequests['F-Output-1'].setValues(variables=('U',))

定義輸出到ODB文件的數據, 這里只定義了位移輸出

mdb.models['Model-1'].fieldOutputRequests['F-Output-1'].setValues(frequency=1)

定義位移輸出的頻率為每步都輸出

mdb.models['Model-1'].steps['Step-1'].Restart(frequency=1,

overlay=ON)

定義重啟動析, 每一步記錄, 只記錄最后一次的正確狀態

第五節, 定義接觸

from interaction import *

依然是先導入所用的模塊

mdb.models['Model-1'].rootAssembly.PartitionEdgeByParam(edges=(mdb.models['Model-1'].rootAssembly.instances['Boden-1'].edges[3],

), parameter=0.975)

在上部即第3面的97.5%的地方設定一個點, 用于定義接觸

mdb.models['Model-1'].ContactProperty('IntProp-1')

定義接觸屬性名

mdb.models['Model-1'].interactionProperties['IntProp-1'].TangentialBehavior(formulation=FRICTIONLESS)

mdb.models['Model-1'].interactionProperties['IntProp-1'].NormalBehavior(allowSeparation=OFF,

augmentedLagrange=OFF, pressureOverclosure=HARD)

定義接觸特性,為無摩擦硬接觸不允許分開

mdb.models['Model-1'].SurfaceToSurfaceContactStd(adjustMethod=NONE,

createStepName='Initial', interactionProperty='IntProp-1',

master=Region(

side1Edges=mdb.models['Model-1'].rootAssembly.instances['fun-1'].edges[0:1])

,

name='Int-1', slave=Region(

side1Edges=mdb.models['Model-1'].rootAssembly.instances['Boden-1'].edges[4:5])

,

sliding=FINITE)

這一句是建立接觸對, 分別為兩個面上的一條邊, 這里邊的定義由ABAQUS內定, 具體可以查閱參考手冊.

第六節, 荷載邊界定義

from load import *

mdb.models['Model-1'].PeriodicAmplitude(a_0=1.0, data=((3.0, 1.1),

(3.2, 1.7)), frequency=2.5, name='Fourier',start=0.0,

timeSpan=STEP)

定義fourier級數表示的荷載

mdb.models['Model-1'].Pressure(amplitude='Fourier',

createStepName='Step-1', distribution=UNIFORM, magnitude=50.0,

name='Load-1', region=Region(

side1Edges=mdb.models['Model-1'].rootAssembly.instances['fun-1'].edges[2:3]))

定義壓強, 設定加載的分析步,區域及放大系數

mdb.models['Model-1'].DisplacementBC(amplitude=UNSET,

createStepName='Initial',distribution=UNIFORM, localCsys=None,

name='BC-1', region=Region(

edges=mdb.models['Model-1'].rootAssembly.instances['Boden-1'].edges[0:1]+mdb.models['Model-1'].rootAssembly.instances['Boden-1'].edges[2:3]+mdb.models['Model-1'].rootAssembly.instances['fun-1'].edges[3:4]),

u1=SET,u2=UNSET, ur3=UNSET)

mdb.models['Model-1'].DisplacementBC(amplitude=UNSET,

createStepName='Initial', distribution=UNIFORM, localCsys=None,

name='BC-2', region=Region(

edges=mdb.models['Model-1'].rootAssembly.instances['Boden-1'].edges[1:2]),

u1=UNSET, u2=SET, ur3=UNSET)

設定邊界位移為0的邊界條件, 注意語法中對象相加的方法.

第七節, 網格劃分控制

from mesh import *

import mesh

導入網格劃分模塊

elemType1 = mesh.ElemType(elemCode=CAX8,

elemLibrary=STANDARD,secondOrderAccuracy=OFF,

hourglassControl=STIFFNESS, distortionControl=OFF)

elemType2 = mesh.ElemType(elemCode=CAX6M,

elemLibrary=STANDARD)

a1 = mdb.models['Model-1'].rootAssembly

f1 = a1.instances['Boden-1'].faces

faces1 = f1[0:1]

regions =(faces1, )

a1.setElementType(regions=regions, elemTypes=(elemType1,

elemType2))

定義其中一個物體的網格為二次8結點單元, 如果其中有無法劃分成四邊形單元的情況, 則用三角形二次6結點單元.

elemType1 = mesh.ElemType(elemCode=CAX4,

elemLibrary=STANDARD)

elemType2 = mesh.ElemType(elemCode=CAX3,

elemLibrary=STANDARD)

a1 = mdb.models['Model-1'].rootAssembly

f1 = a1.instances['fun-1'].faces

faces1 = f1[0:1]

regions =(faces1, )

a1.setElementType(regions=regions, elemTypes=(elemType1,

elemType2))

定義其中一個物體的網格為一次4結點單元,如果其中有無法劃分成四邊形單元的情況, 則用三角形一次3結點單元.

mdb.models['Model-1'].rootAssembly.seedPartInstance(regions=(mdb.models['Model-1'].rootAssembly.instances['fun-1'],

), size=0.5)

mdb.models['Model-1'].rootAssembly.seedPartInstance(regions=(mdb.models['Model-1'].rootAssembly.instances['Boden-1'],

), size=1)

定義網格劃分全局單元大小.

mdb.models['Model-1'].rootAssembly.generateMesh(regions=(mdb.models['Model-1'].rootAssembly.instances['Boden-1'],mdb.models['Model-1'].rootAssembly.instances['fun-1']))

按照定義劃分單元

# Save by CHEN on Thu Feb 19 15:16:26 2009

from part import *

from material import *

from section import *

from assembly import *

from step import *

from interaction import *

from load import *

from mesh import *

from job import *

第八節, 任務提交及雜項功能

mdb.models.changeKey(fromName='Model-1',

toName='Fall-Muster')

修改模型名稱

mdb.Model(name='Fall-015',

objectToCopy=mdb.models['Fall-Muster'])

拷貝模型

mdb.models['Fall-015'].materials['Boden'].elastic.setValues(table=((210546.3,

0.15),))

修改模型中的材料屬性

mdb.Job(contactPrint=OFF, description='', echoPrint=OFF,

explicitPrecision=

SINGLE,

historyPrint=OFF, model='Fall-015', modelPrint=OFF,

multiprocessingMode=THREADS, name='Job-015',

nodalOutputPrecision=SINGLE,

numCpus=1,

numDomains=1, parallelizationMethodExplicit=LOOP,

parallelizationMethodStandard=TREE, preMemory=1024.0,

scratch='',

standardMemory=2048.0, standardMemoryPolicy=MODERATE,

type=ANALYSIS,

userSubroutine='')

生成任務

mdb.saveAs(pathName='D:/temp/FundamentSchwingungStudie')

保存模型

mdb.jobs['Job-015'].submit()

提交任務

mdb.jobs['Job-015'].waitForCompletion()

關于如何在python中提交多個任務的問題:

如果您使用下面這樣的命令做的提交

mdb.jobs['Job-01'].submit()

mdb.jobs['Job-02'].submit()

mdb.jobs['Job-03'].submit()

你就會看到, 所有的任務是一次性提交的, 多個任務在一起運行, 這肯定不是你想看到的結果, 如何完成一個接著一個的提交呢,

其實很簡單, 在每個任務后面加上一句

mdb.jobs['Job-01'].waitForCompletion()

就可以了.

那么上面的語句就改為

mdb.jobs['Job-01'].submit()

mdb.jobs['Job-01'].waitForCompletion()

mdb.jobs['Job-02'].submit()

mdb.jobs['Job-02'].waitForCompletion()

mdb.jobs['Job-03'].submit()

mdb.jobs['Job-03'].waitForCompletion()

......

就一切OK了

總結

以上是生活随笔為你收集整理的python解放二次开发_[转载]Python二次开发程序详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产黄色精品网站 | 深夜激情网 | 国产免费叼嘿网站免费 | 男女一区二区三区 | 亚洲乱乱 | 色播99| 亚洲区一区二 | 99综合| 黄视频网站在线看 | 亚洲免费成人av | 免费观看黄色小视频 | 麻豆传媒一区二区三区 | 国产在线拍揄自揄拍 | 亚洲大尺度网站 | 麻豆系列在线观看 | 免费黄色观看 | 最色成人网 | 成人在线网站 | 性生交大片免费看 | 欧美日韩不卡合集视频 | 天天综合欧美 | 在线看片不卡 | 亚洲一区二区三区久久久成人动漫 | 欧美一区,二区 | 福利所导航| 国产精品视频福利 | 亚洲欧美激情另类校园 | 色爱综合网 | 亚洲社区一区二区 | 香蕉视频免费网站 | 久久精品色妇熟妇丰满人妻 | 欧美a在线 | 99热这里只有精品4 精品国产黄色 | 国产chinese中国hdxxxx | 久久精品大片 | 欧美成人免费在线观看 | 福利毛片 | 久草视频资源 | 久久香蕉国产 | 国产日韩精品在线 | 在线中文字幕一区 | 粉嫩av在线 | 九七在线视频 | 成人精品免费视频 | 中文字幕乱码中文字幕 | 五月婷婷丁香综合 | 亚洲精品在线中文字幕 | 精品人妻一区二区三 | 欧美s码亚洲码精品m码 | 手机在线免费视频 | 狠狠干b| 亚洲精品乱码久久久久久蜜桃动漫 | 成人免费在线电影 | 日韩精品一线二线三线 | 亚洲综合激情网 | 精品国自产拍在线观看 | 色97色 | 日b免费视频 | 在线观看av中文字幕 | 高清无码视频直接看 | 美女毛片网站 | 国产欧美一区二区三区在线看 | 亚洲AV无码国产精品播放在线 | 国产亚洲欧美一区二区三区 | 久久精品一二区 | 欧美九九视频 | 91视频看看 | 手机天堂网 | 57pao成人国产永久免费视频 | 少妇无码一区二区三区免费 | 啪啪网站视频 | 欧美操操操 | 亚洲精品无码专区 | 国产精品久久久久久久成人午夜 | 天天操天天碰 | 欧美日韩五区 | 久久极品 | 欧美a在线视频 | 天堂在线视频观看 | 亚洲一级免费视频 | 久久久久久久久久网 | ass精品国模裸体pics | 黄色中文字幕在线观看 | 在线观看成人免费 | 性一交一乱一透一a级 | 超碰av在线播放 | 丰满人妻一区二区三区53号 | 日韩中文字幕在线 | 久热青草 | 好av在线 | 日本大胆人体视频 | 欧产日产国产69 | 国产综合福利 | 国产精品福利一区二区 | 国产精品刘玥久久一区 | 国产精品一区二区久久国产 | 扒开美女内裤狂揉下部 | 美女自拍偷拍 | 91亚洲视频在线 |