资源简介

用于Abaqus二维晶粒建模。相比较Python脚本,改文件已经封装为插件,使用更加方便快捷!

资源截图

代码片段和文件信息

#-----------------------------------------------------------------------
#     Plugin pour la generation d‘un schema Voronoi avec epaisseur
#     entre les cellules
#-----------------------------------------------------------------------
#     Authors: Stephane Lejeunes  Stephane Bourgeois
#     Institute: LMA UPR7051 CNRS
#     Date: 24/02/10
#     Rev: 14/06/10  
#-----------------------------------------------------------------------
from abaqus import *
from abaqusConstants import *
#from Numeric import *
from math import ceil fabs atan degrees pi asin cos sin radians
import __main__
from voronoi import *
import random

# Iterations max sur les tirages aleatoires
ITEMAX=20


import section
import regionToolset
import displayGroupMdbToolset as dgm
import part
import material
import assembly
import step
import interaction
import load
import mesh
import job
import sketch
import visualization
import xyPlot
import displayGroupOdbToolset as dgo
import connectorBehavior
import os

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def getCurrentViewport():

    vpName = session.currentViewportName
    return session.viewports[vpName]

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def getCurrentModel():

    vpName = session.currentViewportName
    modelName = session.sessionState[vpName][‘modelName‘]
    return mdb.models[modelName]

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def getNewModel():

    vpName = session.currentViewportName
    modelName = session.sessionState[vpName][‘modelName‘]
    if(len(mdb.models[modelName].parts)==0):
      return mdb.models[modelName]    
    modelName=modelName+“-1“  
    return mdb.Model(modelName)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Construction d‘un schema de voronoi aleatoire avec controle de la distance
# mini entre grain (le schemas peut-etre periodique ou non...)
def constrainedVoronoi(boundnpointDMINPERIODICradiuscenter):
   nbound=bound
   if(PERIODIC):
      nbound = [(-bound[2][0]-bound[2][1]) (-bound[2][0]2.*bound[2][1]) (2.*bound[2][0]2.*bound[2][1]) (2.*bound[2][0]-bound[2][1])]
   points = []
   voronoi = bounded_voronoi(nbound points)
   ite = 0
   for i in range(1npoint+1):
     if(len(bound)<=4):
        newpoint = (random.uniform(0bound[2][0]) random.uniform(0bound[2][1]))
     else:
        r=random.uniform(0radius)
        angle= random.uniform(0radians(360))
        newpoint = (center[0]+r*cos(angle)center[1]+r*sin(angle))
     j = 0
     if i>1:
       ite = 0
       while ((j < len(points)) and (ite < ITEMAX)):
        d = dist(points[j]newpoint)
        j = j+1
        if (d < DMIN):
           if(len(bound)<=4):
              newpoint = (random.uniform(0bound[2][0]) random.uniform(0bound[2][1]))
           else:
              r=random.uniform(0radius)
              angle= random.uniform(0radians(360))
              newpoin

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      35148  2012-08-22 14:42  VoronoiCells2D\macroVoronoi.py

     文件      28830  2018-02-09 18:23  VoronoiCells2D\macroVoronoi.pyc

     文件       7008  2011-02-17 10:19  VoronoiCells2D\voronoi.py

     文件       6626  2018-02-09 18:23  VoronoiCells2D\voronoi.pyc

     文件       5384  2011-02-17 10:19  VoronoiCells2D\voronoiDB.py

     文件       5735  2018-01-30 20:43  VoronoiCells2D\voronoiDB.pyc

     文件     150902  2011-02-17 10:19  VoronoiCells2D\voronoiIcon.py

     文件     148649  2018-01-30 20:43  VoronoiCells2D\voronoiIcon.pyc

     文件       2334  2014-11-12 15:34  VoronoiCells2D\Voronoy_plugin.py

     文件       2383  2018-01-30 20:43  VoronoiCells2D\Voronoy_plugin.pyc

     目录          0  2018-02-09 18:23  VoronoiCells2D

     文件         39  2018-07-26 13:44  test.txt

----------- ---------  ---------- -----  ----

               393038                    12


评论

共有 条评论