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

[二次开发] python建模插件编写

[复制链接]
发表于 2017-1-19 17:00:56 | 显示全部楼层 |阅读模式 来自 陕西西安
from abaqus import *
from abaqusConstants import *
def createPlateFunction(partname,r,w,l,t):
    s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
    sheetSize=2000.0)
    s.rectangle(point1=(0.0, 0.0), point2=(w, t))
    p = mdb.models['Model-1'].Part(name=partname, dimensionality=THREE_D,
    type=DEFORMABLE_BODY)
    p = mdb.models['Model-1'].parts[partname]
    p.BaseSolidExtrude(sketch=s, depth=l)
    s.unsetPrimaryObject()
    p = mdb.models['Model-1'].parts[partname]
    session.viewports['Viewport: 1'].setValues(displayedObject=p)
    del mdb.models['Model-1'].sketches['__profile__']
    p = mdb.models['Model-1'].parts[partname]
    f, e = p.faces, p.edges
    t = p.MakeSketchTransform(sketchPlane=f[1], sketchUpEdge=e[5],
    sketchPlaneSide=SIDE1, sketchOrientation=RIGHT, origin=(250.0, 10.0,
    100.0))
    s1 = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
    sheetSize=1077.21, gridSpacing=26.93, transform=t)
    p = mdb.models['Model-1'].parts[partname]
    p.projectReferencesOntoSketch(sketch=s1, filter=COPLANAR_EDGES)
    s1.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(r, 0))
    p = mdb.models['Model-1'].parts[partname]
    f1, e1 = p.faces, p.edges
    p.CutExtrude(sketchPlane=f1[1], sketchUpEdge=e1[5], sketchPlaneSide=SIDE1,
    sketchOrientation=RIGHT, sketch=s1, flipExtrudeDirection=OFF)
    s1.unsetPrimaryObject()
    del mdb.models['Model-1'].sketches['__profile__']
如上面的这段程序,执行过程也不报错,但圆孔就是切割不出来,请知道问题解决方法的,指导一下,不胜感激。。。
 楼主| 发表于 2017-1-19 17:17:05 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
自己顶一下 这段程序是作为RSG插件制作中用到的内核程序 但不知道为什么只能生成平板无法切割出上面的孔 因此来请教一下各位 请各位帮忙解惑一下 谢谢大家了
回复 不支持

使用道具 举报

发表于 2017-1-19 22:36:32 | 显示全部楼层 来自 北京
路过看到了,让flipExtrudeDirection=ON 试试?一般这种切不出来的问题就是,切的位置没在实体处,或者切的方向反了,没切到实体,切了空气了。
回复 不支持

使用道具 举报

 楼主| 发表于 2017-1-20 15:05:43 | 显示全部楼层 来自 陕西西安
很感谢你的回复 你所给出的提示 我已经试过了 是不行的
回复 不支持

使用道具 举报

 楼主| 发表于 2017-1-20 15:10:01 | 显示全部楼层 来自 陕西西安
能够确定的是 内核程序本身从ABAQUS操作而来 应该没有问题 但是当把它作为插件内核程序进行插件制作时就出问题 类似的 我做了一个圆通上开孔的插件 如下:
from abaqus import *
from abaqusConstants import *
def createPlateFunction(partName,r,t,r1,h,l):
    s = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
    sheetSize=2000.0)
    g, v, d, c = s.geometry, s.vertices, s.dimensions, s.constraints
    s.setPrimaryObject(option=STANDALONE)
    s.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(r, 0.0))
    s.offset(distance=t, objectList=(g[2], ), side=RIGHT)
    p = mdb.models['Model-1'].Part(name=partName, dimensionality=THREE_D,
    type=DEFORMABLE_BODY)
    p = mdb.models['Model-1'].parts[partName]
    p.BaseSolidExtrude(sketch=s, depth=l)
    s.unsetPrimaryObject()
    p = mdb.models['Model-1'].parts[partName]
    session.viewports['Viewport: 1'].setValues(displayedObject=p)
    del mdb.models['Model-1'].sketches['__profile__']
    p = mdb.models['Model-1'].parts[partName]
    p.DatumPlaneByPrincipalPlane(principalPlane=XZPLANE, offset=h)
    p = mdb.models['Model-1'].parts[partName]
    e, d1 = p.edges, p.datums
    t = p.MakeSketchTransform(sketchPlane=d1[2], sketchUpEdge=e[1],
    sketchPlaneSide=SIDE1, sketchOrientation=RIGHT, origin=(0.0, 1000.0,
    250.0))
    s1 = mdb.models['Model-1'].ConstrainedSketch(name='__profile__',
    sheetSize=3960.62, gridSpacing=99.01, transform=t)
    g, v, d, c = s1.geometry, s1.vertices, s1.dimensions, s1.constraints
    s1.setPrimaryObject(option=SUPERIMPOSE)
    p = mdb.models['Model-1'].parts[partName]
    p.projectReferencesOntoSketch(sketch=s1, filter=COPLANAR_EDGES)
    s1.CircleByCenterPerimeter(center=(0.0, 0.0), point1=(r1, 0.0))
    session.viewports['Viewport: 1'].view.setValues(nearPlane=1800.14,
    farPlane=4136.52, width=3772.56, height=1868.27, cameraPosition=(1851.05,
    1836.84, 1943.41), cameraTarget=(57.2831, 43.0721, 149.645))
    p = mdb.models['Model-1'].parts[partName]
    f = p.faces
    e1, d2 = p.edges, p.datums
    p.CutExtrude(sketchPlane=d2[2], sketchUpEdge=e1[1], upToFace=f[1],
    sketchPlaneSide=SIDE1, sketchOrientation=RIGHT, sketch=s1,
    flipExtrudeDirection=OFF)
    s1.unsetPrimaryObject()
    del mdb.models['Model-1'].sketches['__profile__']
这个我也进行了检查 程序应该没问题 但在插件制作进行保存时 直接出现语法错误提示
表示很无语 不知道你们有没有碰到类似问题 恳请指导 谢谢大家了
回复 不支持

使用道具 举报

 楼主| 发表于 2017-1-22 10:42:28 | 显示全部楼层 来自 陕西西安
自己顶一下 希望不要沉了 真心希望路过的大家能给与帮助 在这里谢过了
回复 不支持

使用道具 举报

发表于 2020-5-6 17:47:37 | 显示全部楼层 来自 中国
缺个返回值,最后加个return
回复 不支持

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 04:31 , Processed in 0.035278 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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