3135 lines
84 KiB
Python
3135 lines
84 KiB
Python
|
|
import platform
|
|||
|
|
import ctypes
|
|||
|
|
from ctypes import *
|
|||
|
|
from xmlrpc.server import DocXMLRPCRequestHandler
|
|||
|
|
|
|||
|
|
system = platform.system()
|
|||
|
|
if system == "Windows":
|
|||
|
|
pre = "./"
|
|||
|
|
suff = ".dll"
|
|||
|
|
else:
|
|||
|
|
pre = "./lib"
|
|||
|
|
suff = ".so"
|
|||
|
|
|
|||
|
|
libfile = ctypes.cdll.LoadLibrary
|
|||
|
|
filename = pre + "GeometryCommand" + suff
|
|||
|
|
|
|||
|
|
command = libfile(filename)
|
|||
|
|
|
|||
|
|
|
|||
|
|
# C语言结构体映射,与“GeometryCommand\GeoCommandPy.h”中ShapePara一一对应
|
|||
|
|
class ShapePara(Structure):
|
|||
|
|
_fields_ = [
|
|||
|
|
("ID", c_int),
|
|||
|
|
("name", c_char * 64),
|
|||
|
|
("coorSysID", c_int),
|
|||
|
|
("variableParaStr", c_char * 128),
|
|||
|
|
("x1", c_double),
|
|||
|
|
("y1", c_double),
|
|||
|
|
("z1", c_double),
|
|||
|
|
("x2", c_double),
|
|||
|
|
("y2", c_double),
|
|||
|
|
("z2", c_double),
|
|||
|
|
("radius1", c_double),
|
|||
|
|
("radius2", c_double),
|
|||
|
|
("length", c_double),
|
|||
|
|
("planeType", c_int),
|
|||
|
|
("normalLength", c_double),
|
|||
|
|
("isExists", c_bool),
|
|||
|
|
("isFace", c_bool),
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 基础形状类,其他形状集成该类
|
|||
|
|
class BaseShape:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.para = ShapePara()
|
|||
|
|
self.para.ID = -1
|
|||
|
|
self.para.name = b""
|
|||
|
|
self.para.coorSysID = 0
|
|||
|
|
self.para.variableParaStr = b""
|
|||
|
|
self.para.x1 = 0.0
|
|||
|
|
self.para.y1 = 0.0
|
|||
|
|
self.para.z1 = 0.0
|
|||
|
|
self.para.x2 = 10.0
|
|||
|
|
self.para.y2 = 10.0
|
|||
|
|
self.para.z2 = 10.0
|
|||
|
|
self.para.radius1 = 1.0
|
|||
|
|
self.para.radius2 = 10.0
|
|||
|
|
self.para.length = 10.0
|
|||
|
|
self.para.planeType = 0
|
|||
|
|
self.para.normalLength = 0.0
|
|||
|
|
self.para.isExists = 0
|
|||
|
|
self.para.isFace = 1
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.para.name = bytes(name, encoding="utf-8")
|
|||
|
|
|
|||
|
|
def setEditID(self, ID):
|
|||
|
|
self.para.ID = c_int(ID)
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.para.coorSysID = c_int(csid)
|
|||
|
|
|
|||
|
|
def setXYZ1(self, x1, y1, z1):
|
|||
|
|
self.para.x1 = c_double(x1)
|
|||
|
|
self.para.y1 = c_double(y1)
|
|||
|
|
self.para.z1 = c_double(z1)
|
|||
|
|
|
|||
|
|
def setXYZ2(self, x2, y2, z2):
|
|||
|
|
self.para.x2 = c_double(x2)
|
|||
|
|
self.para.y2 = c_double(y2)
|
|||
|
|
self.para.z2 = c_double(z2)
|
|||
|
|
|
|||
|
|
def setRadius1(self, radius1):
|
|||
|
|
self.para.radius1 = c_double(radius1)
|
|||
|
|
|
|||
|
|
def setRadius2(self, radius2):
|
|||
|
|
self.para.radius2 = c_double(radius2)
|
|||
|
|
|
|||
|
|
def setLength(self, length):
|
|||
|
|
self.para.length = c_double(length)
|
|||
|
|
|
|||
|
|
def setPlanePara(self, planeType, normalLength):
|
|||
|
|
self.para.planeType = c_int(planeType)
|
|||
|
|
self.para.normalLength = c_double(normalLength)
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.para.isExists = c_bool(isExists)
|
|||
|
|
|
|||
|
|
def setIsFace(self, isFace):
|
|||
|
|
self.para.isFace = c_bool(isFace)
|
|||
|
|
|
|||
|
|
def setVariableParaStr(self, variableParameter):
|
|||
|
|
self.para.variableParaStr = bytes(variableParameter, encoding="utf-8")
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 二维直线类
|
|||
|
|
class Line2d(BaseShape):
|
|||
|
|
def __init__(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
command.CreateLine2d(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditLine2d(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 二维圆弧类
|
|||
|
|
class CircularArc(BaseShape):
|
|||
|
|
def __init__(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
self.x3 = c_double(0.0)
|
|||
|
|
self.y3 = c_double(0.0)
|
|||
|
|
self.z3 = c_double(0.0)
|
|||
|
|
self.x4 = c_double(0.0)
|
|||
|
|
self.y4 = c_double(0.0)
|
|||
|
|
self.z4 = c_double(0.0)
|
|||
|
|
|
|||
|
|
def setXYZ3(self, x3, y3, z3):
|
|||
|
|
self.x3 = x3
|
|||
|
|
self.y3 = y3
|
|||
|
|
self.z3 = z3
|
|||
|
|
|
|||
|
|
def setXYZ4(self, x4, y4, z4):
|
|||
|
|
self.x4 = x4
|
|||
|
|
self.y4 = y4
|
|||
|
|
self.z4 = z4
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
command.CreateCircularArc(
|
|||
|
|
self.para, c_double(self.x3), c_double(self.y3), c_double(self.z3)
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditCircularArc(
|
|||
|
|
self.para, c_double(self.x3), c_double(self.y3), c_double(self.z3)
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 二维矩形类
|
|||
|
|
class Rectangle(BaseShape):
|
|||
|
|
def __init__(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
command.CreateRectangle(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditRectangle(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 二维圆形类
|
|||
|
|
class Circular(BaseShape):
|
|||
|
|
def __init__(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
command.CreateCircular(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditCircular(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 二维正多边形类
|
|||
|
|
class RegularPolygon(BaseShape):
|
|||
|
|
def __init__(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
self.edgeCount = c_int(3)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
command.CreateRegularPolygon(self.para, c_int(self.edgeCount))
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditRegularPolygon(self.para, c_int(self.edgeCount))
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def setEdgeCount(self, edgeCount):
|
|||
|
|
self.edgeCount = edgeCount
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 二维多边形类
|
|||
|
|
class Polygon(BaseShape):
|
|||
|
|
def __init__(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
self.pntCnt = c_int(3)
|
|||
|
|
self.points = ""
|
|||
|
|
|
|||
|
|
def setEdgeCount(self, pntCnt):
|
|||
|
|
self.pntCnt = pntCnt
|
|||
|
|
|
|||
|
|
def setPoints(self, points):
|
|||
|
|
self.points = points
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
pointsStr = bytes(self.points, encoding="utf-8")
|
|||
|
|
command.CreatePolygon(self.para, pointsStr, c_int(self.pntCnt))
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
def importGeometry(filename):
|
|||
|
|
fileName = bytes(filename, encoding="utf-8")
|
|||
|
|
command.importGeometry(fileName)
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
def exportGeometry(filename):
|
|||
|
|
fileName = bytes(filename, encoding="utf-8")
|
|||
|
|
command.exportGeometry(fileName)
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
def DeleteModel(idString):
|
|||
|
|
idstr = bytes(idString, encoding="utf-8")
|
|||
|
|
command.DeleteModel(
|
|||
|
|
idstr,
|
|||
|
|
)
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
def DeleteModelsRelatedCoordinateSystem(idString):
|
|||
|
|
idstr = bytes(idString, encoding="utf-8")
|
|||
|
|
command.DeleteModelsRelatedCoordinateSystem(
|
|||
|
|
idstr,
|
|||
|
|
)
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Almond:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.xMin = -5
|
|||
|
|
self.xMax = 5
|
|||
|
|
self.puxiMin = -180
|
|||
|
|
self.puxiMax = 180
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setXRange(self, xMin, xMax):
|
|||
|
|
self.xMin = xMin
|
|||
|
|
self.xMax = xMax
|
|||
|
|
|
|||
|
|
def setPuxiRange(self, puxiMin, puxiMax):
|
|||
|
|
self.puxiMin = puxiMin
|
|||
|
|
self.puxiMax = puxiMax
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
command.CreateAlmond(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.xMin),
|
|||
|
|
c_double(self.xMax),
|
|||
|
|
c_double(self.puxiMin),
|
|||
|
|
c_double(self.puxiMax),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditAlmond(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.xMin),
|
|||
|
|
c_double(self.xMax),
|
|||
|
|
c_double(self.puxiMin),
|
|||
|
|
c_double(self.puxiMax),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Box:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.planeType = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.l = 10
|
|||
|
|
self.w = 10
|
|||
|
|
self.h = 10
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setPlaneType(self, planeType):
|
|||
|
|
self.planeType = planeType
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setPara(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateBox(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditBox(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TruncationBoundary:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.index = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.l = 0
|
|||
|
|
self.w = 0
|
|||
|
|
self.h = 0
|
|||
|
|
self.newdistancex = 0
|
|||
|
|
self.newdistancey = 0
|
|||
|
|
self.newdistancez = 0
|
|||
|
|
self.ratiox = 1
|
|||
|
|
self.ratioy = 1
|
|||
|
|
self.ratioz = 1
|
|||
|
|
self.distancex = 0
|
|||
|
|
self.distancey = 0
|
|||
|
|
self.distancez = 0
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setindex(self, index):
|
|||
|
|
self.index = index
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setPara(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def setNewDistanceXYZ(self, newDistancex, newDistancey, newDistancez):
|
|||
|
|
self.newdistancex = newDistancex
|
|||
|
|
self.newdistancey = newDistancey
|
|||
|
|
self.newdistancez = newDistancez
|
|||
|
|
|
|||
|
|
def setRatioXYZ(self, ratiox, ratioy, ratioz):
|
|||
|
|
self.ratiox = ratiox
|
|||
|
|
self.ratioy = ratioy
|
|||
|
|
self.ratioz = ratioz
|
|||
|
|
|
|||
|
|
def setDistanceXYZ(self, distancex, distancey, distancez):
|
|||
|
|
self.distancex = distancex
|
|||
|
|
self.distancey = distancey
|
|||
|
|
self.distancez = distancez
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateTruncationBoundary(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.index),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.newdistancex),
|
|||
|
|
c_double(self.newdistancey),
|
|||
|
|
c_double(self.newdistancez),
|
|||
|
|
c_double(self.ratiox),
|
|||
|
|
c_double(self.ratioy),
|
|||
|
|
c_double(self.ratioz),
|
|||
|
|
c_double(self.distancex),
|
|||
|
|
c_double(self.distancey),
|
|||
|
|
c_double(self.distancez),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditTruncationBoundary(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.index),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.newdistancex),
|
|||
|
|
c_double(self.newdistancey),
|
|||
|
|
c_double(self.newdistancez),
|
|||
|
|
c_double(self.ratiox),
|
|||
|
|
c_double(self.ratioy),
|
|||
|
|
c_double(self.ratioz),
|
|||
|
|
c_double(self.distancex),
|
|||
|
|
c_double(self.distancey),
|
|||
|
|
c_double(self.distancez),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Wedge:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.xBottom = 0
|
|||
|
|
self.yBottom = 0
|
|||
|
|
self.zBottom = 0
|
|||
|
|
self.xTop = 0
|
|||
|
|
self.yTop = 0
|
|||
|
|
self.zTop = 0
|
|||
|
|
self.dirX = 0
|
|||
|
|
self.dirY = -1
|
|||
|
|
self.dirZ = 0
|
|||
|
|
self.bottomDx = 10
|
|||
|
|
self.bottomDy = 10
|
|||
|
|
self.topDx = 0
|
|||
|
|
self.topDy = 0
|
|||
|
|
self.height = 10
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setBottomLocation(self, xBottom, yBottom, zBottom):
|
|||
|
|
self.XBottom = xBottom
|
|||
|
|
self.YBottom = yBottom
|
|||
|
|
self.ZBottom = zBottom
|
|||
|
|
|
|||
|
|
def setTopLocation(self, xTop, yTop, zTop):
|
|||
|
|
self.XTop = xTop
|
|||
|
|
self.YTop = yTop
|
|||
|
|
self.ZTop = zTop
|
|||
|
|
|
|||
|
|
def setAxis(self, dirX, dirY, dirZ):
|
|||
|
|
self.DirX = dirX
|
|||
|
|
self.DirY = dirY
|
|||
|
|
self.DirZ = dirZ
|
|||
|
|
|
|||
|
|
def setSize(self, bottomDx, bottomDy, topDx, topDy, height):
|
|||
|
|
self.BottomDx = bottomDx
|
|||
|
|
self.BottomDy = bottomDy
|
|||
|
|
self.TopDx = topDx
|
|||
|
|
self.TopDy = topDy
|
|||
|
|
self.Height = height
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateWedge(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.XBottom),
|
|||
|
|
c_double(self.YBottom),
|
|||
|
|
c_double(self.ZBottom),
|
|||
|
|
c_double(self.XTop),
|
|||
|
|
c_double(self.YTop),
|
|||
|
|
c_double(self.ZTop),
|
|||
|
|
c_double(self.DirX),
|
|||
|
|
c_double(self.DirY),
|
|||
|
|
c_double(self.DirZ),
|
|||
|
|
c_double(self.BottomDx),
|
|||
|
|
c_double(self.BottomDy),
|
|||
|
|
c_double(self.TopDx),
|
|||
|
|
c_double(self.TopDy),
|
|||
|
|
c_double(self.Height),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditWedge(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.XBottom),
|
|||
|
|
c_double(self.YBottom),
|
|||
|
|
c_double(self.ZBottom),
|
|||
|
|
c_double(self.XTop),
|
|||
|
|
c_double(self.YTop),
|
|||
|
|
c_double(self.ZTop),
|
|||
|
|
c_double(self.DirX),
|
|||
|
|
c_double(self.DirY),
|
|||
|
|
c_double(self.DirZ),
|
|||
|
|
c_double(self.BottomDx),
|
|||
|
|
c_double(self.BottomDy),
|
|||
|
|
c_double(self.TopDx),
|
|||
|
|
c_double(self.TopDy),
|
|||
|
|
c_double(self.Height),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Antenna:
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setPara(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
command.CreateAntenna(
|
|||
|
|
sname,
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditAntenna(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Cylinder:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.planeType = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.l = 0
|
|||
|
|
self.w = 0
|
|||
|
|
self.h = 1
|
|||
|
|
self.radius = 5
|
|||
|
|
self.length = 10
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setPlaneType(self, planeType):
|
|||
|
|
self.planeType = planeType
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setAxis(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def setRadius(self, radius):
|
|||
|
|
self.radius = radius
|
|||
|
|
|
|||
|
|
def setLength(self, length):
|
|||
|
|
self.length = length
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateCylinder(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_double(self.length),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditCylinder(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_double(self.length),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Cone:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.planeType = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.l = 0
|
|||
|
|
self.w = 0
|
|||
|
|
self.h = 1
|
|||
|
|
self.radius = 5
|
|||
|
|
self.radius2 = 0
|
|||
|
|
self.length = 10
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setPlaneType(self, planeType):
|
|||
|
|
self.planeType = planeType
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setAxis(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def setRadius(self, radius, radius2):
|
|||
|
|
self.radius = radius
|
|||
|
|
self.radius2 = radius2
|
|||
|
|
|
|||
|
|
def setLength(self, length):
|
|||
|
|
self.length = length
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateCone(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_double(self.radius2),
|
|||
|
|
c_double(self.length),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditCone(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_double(self.radius2),
|
|||
|
|
c_double(self.length),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Sphere:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.radius = 5
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setRadius(self, radius):
|
|||
|
|
self.radius = radius
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateSphere(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditSphere(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
# 三维球体拓展1
|
|||
|
|
class SphereExpansion1(BaseShape):
|
|||
|
|
def _init_(self):
|
|||
|
|
BaseShape.__init__(self)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
command.CreateSphereExpansion1(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
command.EditSphereExpansion1(self.para)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Torus:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.planeType = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.l = 0
|
|||
|
|
self.w = 0
|
|||
|
|
self.h = 1
|
|||
|
|
self.radius1 = 5
|
|||
|
|
self.radius2 = 1
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setPlaneType(self, planeType):
|
|||
|
|
self.planeType = planeType
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setAxis(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def setRadius(self, radius1, radius2):
|
|||
|
|
self.radius1 = radius1
|
|||
|
|
self.radius2 = radius2
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateTorus(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.radius1),
|
|||
|
|
c_double(self.radius2),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditTorus(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_double(self.radius1),
|
|||
|
|
c_double(self.radius2),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class RegularPrism:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.planeType = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.xe = 0
|
|||
|
|
self.ye = 0
|
|||
|
|
self.ze = 0
|
|||
|
|
self.l = 0
|
|||
|
|
self.w = 0
|
|||
|
|
self.h = 1
|
|||
|
|
self.edgeNum = 6
|
|||
|
|
self.edgeLen = 5
|
|||
|
|
self.Hei = 10
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setPlaneType(self, planeType):
|
|||
|
|
self.planeType = planeType
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setEdgePnt(self, xe, ye, ze):
|
|||
|
|
self.xe = xe
|
|||
|
|
self.ye = ye
|
|||
|
|
self.ze = ze
|
|||
|
|
|
|||
|
|
def setAxis(self, l, w, h):
|
|||
|
|
self.l = l
|
|||
|
|
self.w = w
|
|||
|
|
self.h = h
|
|||
|
|
|
|||
|
|
def setedgeNumber(self, edgeNum):
|
|||
|
|
self.edgeNum = edgeNum
|
|||
|
|
|
|||
|
|
def setedgeLength(self, edgeLen):
|
|||
|
|
self.edgeLen = edgeLen
|
|||
|
|
|
|||
|
|
def setHeight(self, Hei):
|
|||
|
|
self.Hei = Hei
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateRegularPrism(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.xe),
|
|||
|
|
c_double(self.ye),
|
|||
|
|
c_double(self.ze),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_int(self.edgeNum),
|
|||
|
|
c_double(self.edgeLen),
|
|||
|
|
c_double(self.Hei),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditRegularPrism(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.planeType),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.xe),
|
|||
|
|
c_double(self.ye),
|
|||
|
|
c_double(self.ze),
|
|||
|
|
c_double(self.l),
|
|||
|
|
c_double(self.w),
|
|||
|
|
c_double(self.h),
|
|||
|
|
c_int(self.edgeNum),
|
|||
|
|
c_double(self.edgeLen),
|
|||
|
|
c_double(self.Hei),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Helix:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.Cylindrical = 1
|
|||
|
|
self.pitch = 2
|
|||
|
|
self.helixRadius = 5
|
|||
|
|
self.cylinderNumber = 5
|
|||
|
|
self.halfAngle = 30
|
|||
|
|
self.GenerateSolid = 1
|
|||
|
|
self.circleRadius = 0.5
|
|||
|
|
self.method = 0
|
|||
|
|
self.planemethod = '"XOY"'
|
|||
|
|
self.reverse = 0
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setCylindrical(self, Cylindrical):
|
|||
|
|
self.Cylindrical = Cylindrical
|
|||
|
|
|
|||
|
|
def setpitch(self, pitch):
|
|||
|
|
self.pitch = pitch
|
|||
|
|
|
|||
|
|
def sethelixRadius(self, helixRadius):
|
|||
|
|
self.helixRadius = helixRadius
|
|||
|
|
|
|||
|
|
def setcylinderNumber(self, cylinderNumber):
|
|||
|
|
self.cylinderNumber = cylinderNumber
|
|||
|
|
|
|||
|
|
def sethalfAngle(self, halfAngle):
|
|||
|
|
self.halfAngle = halfAngle
|
|||
|
|
|
|||
|
|
def setGenerateSolid(self, GenerateSolid):
|
|||
|
|
self.GenerateSolid = GenerateSolid
|
|||
|
|
|
|||
|
|
def setcircleRadius(self, circleRadius):
|
|||
|
|
self.circleRadius = circleRadius
|
|||
|
|
|
|||
|
|
def setSymmetricPlaneMethod(self, method):
|
|||
|
|
self.method = method
|
|||
|
|
|
|||
|
|
def setPlaneMethod(self, planemethod):
|
|||
|
|
self.planemethod = planemethod
|
|||
|
|
|
|||
|
|
def setreverse(self, reverse):
|
|||
|
|
self.reverse = reverse
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateHelix(
|
|||
|
|
sname,
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_bool(self.Cylindrical),
|
|||
|
|
c_double(self.pitch),
|
|||
|
|
c_double(self.helixRadius),
|
|||
|
|
c_double(self.cylinderNumber),
|
|||
|
|
c_double(self.halfAngle),
|
|||
|
|
c_bool(self.GenerateSolid),
|
|||
|
|
c_double(self.circleRadius),
|
|||
|
|
methodstr,
|
|||
|
|
planemestr,
|
|||
|
|
c_bool(self.reverse),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditHelix(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_bool(self.Cylindrical),
|
|||
|
|
c_double(self.pitch),
|
|||
|
|
c_double(self.helixRadius),
|
|||
|
|
c_double(self.cylinderNumber),
|
|||
|
|
c_double(self.halfAngle),
|
|||
|
|
c_bool(self.GenerateSolid),
|
|||
|
|
c_double(self.circleRadius),
|
|||
|
|
methodstr,
|
|||
|
|
planemestr,
|
|||
|
|
c_bool(self.reverse),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Point:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.x = 0
|
|||
|
|
self.y = 0
|
|||
|
|
self.z = 0
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.p1 = 0
|
|||
|
|
self.p2 = 0
|
|||
|
|
self.p3 = 0
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setLocation(self, x, y, z):
|
|||
|
|
self.x = x
|
|||
|
|
self.y = y
|
|||
|
|
self.z = z
|
|||
|
|
|
|||
|
|
def setOffset(self, p1, p2, p3):
|
|||
|
|
self.p1 = p1
|
|||
|
|
self.p2 = p2
|
|||
|
|
self.p3 = p3
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreatePoint(
|
|||
|
|
sname,
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.p1),
|
|||
|
|
c_double(self.p2),
|
|||
|
|
c_double(self.p3),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditPoint(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_double(self.x),
|
|||
|
|
c_double(self.y),
|
|||
|
|
c_double(self.z),
|
|||
|
|
c_double(self.p1),
|
|||
|
|
c_double(self.p2),
|
|||
|
|
c_double(self.p3),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Line:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.startpoint0 = 0
|
|||
|
|
self.startpoint1 = 0
|
|||
|
|
self.startpoint2 = 0
|
|||
|
|
self.name = ""
|
|||
|
|
self.editID = -1
|
|||
|
|
self.method = 0
|
|||
|
|
self.coor0 = 0
|
|||
|
|
self.coor1 = 0
|
|||
|
|
self.coor2 = 0
|
|||
|
|
self.len = 10
|
|||
|
|
self.reverse = 0
|
|||
|
|
self.dir0 = 0
|
|||
|
|
self.dir1 = 0
|
|||
|
|
self.dir2 = 0
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setStartPoint(self, startpoint0, startpoint1, startpoint2):
|
|||
|
|
self.startpoint0 = startpoint0
|
|||
|
|
self.startpoint1 = startpoint1
|
|||
|
|
self.startpoint2 = startpoint2
|
|||
|
|
|
|||
|
|
def setEndPoint(self, coor0, coor1, coor2):
|
|||
|
|
self.method = 0
|
|||
|
|
self.coor0 = coor0
|
|||
|
|
self.coor1 = coor1
|
|||
|
|
self.coor2 = coor2
|
|||
|
|
|
|||
|
|
def setDirection(self, dir0, dir1, dir2):
|
|||
|
|
self.method = 1
|
|||
|
|
self.dir0 = dir0
|
|||
|
|
self.dir1 = dir1
|
|||
|
|
self.dir2 = dir2
|
|||
|
|
|
|||
|
|
def setLength(self, len):
|
|||
|
|
self.len = len
|
|||
|
|
|
|||
|
|
def setDirectionReverse(self, reverse):
|
|||
|
|
self.reverse = reverse
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateLine(
|
|||
|
|
sname,
|
|||
|
|
c_double(self.startpoint0),
|
|||
|
|
c_double(self.startpoint1),
|
|||
|
|
c_double(self.startpoint2),
|
|||
|
|
c_int(self.method),
|
|||
|
|
c_double(self.coor0),
|
|||
|
|
c_double(self.coor1),
|
|||
|
|
c_double(self.coor2),
|
|||
|
|
c_double(self.len),
|
|||
|
|
c_double(self.dir0),
|
|||
|
|
c_double(self.dir1),
|
|||
|
|
c_double(self.dir2),
|
|||
|
|
c_int(self.reverse),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditLine(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_double(self.startpoint0),
|
|||
|
|
c_double(self.startpoint1),
|
|||
|
|
c_double(self.startpoint2),
|
|||
|
|
c_int(self.method),
|
|||
|
|
c_double(self.coor0),
|
|||
|
|
c_double(self.coor1),
|
|||
|
|
c_double(self.coor2),
|
|||
|
|
c_double(self.len),
|
|||
|
|
c_double(self.dir0),
|
|||
|
|
c_double(self.dir1),
|
|||
|
|
c_double(self.dir2),
|
|||
|
|
c_int(self.reverse),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Face:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.name = ""
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendEdge(self, geoset, index):
|
|||
|
|
self.edges.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.edges.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
sname = bytes(self.name, encoding="utf-8")
|
|||
|
|
command.CreateFace(c_int(self.coorSysID), edgestr, sname, c_int(self.editID))
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Chamfer:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.type = 0
|
|||
|
|
self.d1 = 1.0
|
|||
|
|
self.d2 = 1.0
|
|||
|
|
self.typestr = "Symmetrical"
|
|||
|
|
self.chamferType = 0
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setSectionType(self, typestr):
|
|||
|
|
self.typestr = typestr
|
|||
|
|
|
|||
|
|
def setChamferType(self, chamferType):
|
|||
|
|
self.chamferType = chamferType
|
|||
|
|
|
|||
|
|
def setSymmetricalDistance(self, d1):
|
|||
|
|
self.d1 = d1
|
|||
|
|
|
|||
|
|
def setAsymmetricalDistances(self, d1, d2):
|
|||
|
|
self.d1 = d1
|
|||
|
|
self.d2 = d2
|
|||
|
|
|
|||
|
|
def appendEdge(self, geoset, index):
|
|||
|
|
self.edges.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.edges.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
if self.typestr == "Symmetrical":
|
|||
|
|
self.type = 0
|
|||
|
|
elif self.typestr == "Asymmetrical":
|
|||
|
|
self.type = 1
|
|||
|
|
command.CreateChamfer(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
edgestr,
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_double(self.d1),
|
|||
|
|
c_double(self.d2),
|
|||
|
|
c_int(self.type),
|
|||
|
|
c_int(self.chamferType),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Fillet:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.filletType = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendEdge(self, geoset, index):
|
|||
|
|
self.edges.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def setFilletType(self, filletType):
|
|||
|
|
self.filletType = filletType
|
|||
|
|
|
|||
|
|
def setRadius(self, r):
|
|||
|
|
self.radius = r
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.edges.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateFillet(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
edgestr,
|
|||
|
|
c_int(self.filletType),
|
|||
|
|
c_double(self.radius),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class VariableFillet:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def VariableFilletOnEdge(self, setid, edgeindex):
|
|||
|
|
self.setid = setid
|
|||
|
|
self.edgeindex = edgeindex
|
|||
|
|
|
|||
|
|
def AppendVariablePoint(self, location, radius):
|
|||
|
|
self.edges.setdefault(location, radius)
|
|||
|
|
|
|||
|
|
def setBasicRad(self, basicRad):
|
|||
|
|
self.basicRad = basicRad
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
# values = self.edges.get(key)
|
|||
|
|
# for v in values:
|
|||
|
|
setstr = setstr + str(self.edges[key]) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
command.CreateVariableFillet(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
edgestr,
|
|||
|
|
c_double(self.basicRad),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
c_int(self.setid),
|
|||
|
|
c_int(self.edgeindex),
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
class UnionOperation:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.selectModelType = 0
|
|||
|
|
self.geometryModels = dict()
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setSelectModelType(self, modelType):
|
|||
|
|
self.selectModelType = modelType
|
|||
|
|
|
|||
|
|
def appendGeometryModel(self, setid, modelIndex):
|
|||
|
|
self.geometryModels.setdefault(setid, set()).add(modelIndex)
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList1 = self.geometryModels.keys()
|
|||
|
|
strcom1 = ""
|
|||
|
|
for key in keyList1:
|
|||
|
|
setstr1 = ""
|
|||
|
|
values = self.geometryModels.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr1 = setstr1 + str(v) + ","
|
|||
|
|
setstr1 = str(key) + ":" + setstr1[:-1]
|
|||
|
|
strcom1 = strcom1 + setstr1 + ";"
|
|||
|
|
strcom1 = strcom1[:-1]
|
|||
|
|
bodystr1 = bytes(strcom1, encoding="utf-8")
|
|||
|
|
command.CreateUnionOperation(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.selectModelType),
|
|||
|
|
bodystr1,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList1 = self.geometryModels.keys()
|
|||
|
|
strcom1 = ""
|
|||
|
|
for key in keyList1:
|
|||
|
|
setstr1 = ""
|
|||
|
|
values = self.geometryModels.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr1 = setstr1 + str(v) + ","
|
|||
|
|
setstr1 = str(key) + ":" + setstr1[:-1]
|
|||
|
|
strcom1 = strcom1 + setstr1 + ";"
|
|||
|
|
strcom1 = strcom1[:-1]
|
|||
|
|
bodystr1 = bytes(strcom1, encoding="utf-8")
|
|||
|
|
command.EditUnionOperation(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.selectModelType),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr1,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
class BooLOperation:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.bodys1 = dict()
|
|||
|
|
self.bodys2 = dict()
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setBoolType(self, booltype):
|
|||
|
|
self.booltype = booltype
|
|||
|
|
|
|||
|
|
def set2d(self, bool2d):
|
|||
|
|
self.bool2d = int(bool2d)
|
|||
|
|
|
|||
|
|
def appendBody1(self, setid, bodyindex):
|
|||
|
|
self.bodys1.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def appendBody2(self, setid, bodyindex):
|
|||
|
|
self.bodys2.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def SaveOrigin(self, saveBox2):
|
|||
|
|
self.saveBox2 = saveBox2
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList1 = self.bodys1.keys()
|
|||
|
|
strcom1 = ""
|
|||
|
|
for key in keyList1:
|
|||
|
|
setstr1 = ""
|
|||
|
|
values = self.bodys1.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr1 = setstr1 + str(v) + ","
|
|||
|
|
setstr1 = str(key) + ":" + setstr1[:-1]
|
|||
|
|
strcom1 = strcom1 + setstr1 + ";"
|
|||
|
|
strcom1 = strcom1[:-1]
|
|||
|
|
bodystr1 = bytes(strcom1, encoding="utf-8")
|
|||
|
|
keyList2 = self.bodys2.keys()
|
|||
|
|
strcom2 = ""
|
|||
|
|
for key in keyList2:
|
|||
|
|
setstr2 = ""
|
|||
|
|
values = self.bodys2.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr2 = setstr2 + str(v) + ","
|
|||
|
|
setstr2 = str(key) + ":" + setstr2[:-1]
|
|||
|
|
strcom2 = strcom2 + setstr2 + ";"
|
|||
|
|
strcom2 = strcom2[:-1]
|
|||
|
|
bodystr2 = bytes(strcom2, encoding="utf-8")
|
|||
|
|
typestr = bytes(self.booltype, encoding="utf-8")
|
|||
|
|
savestr = bytes(self.saveBox2, encoding="utf-8")
|
|||
|
|
command.CreateBooLOperation(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
typestr,
|
|||
|
|
bodystr1,
|
|||
|
|
bodystr2,
|
|||
|
|
c_int(self.bool2d),
|
|||
|
|
savestr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList1 = self.bodys1.keys()
|
|||
|
|
strcom1 = ""
|
|||
|
|
for key in keyList1:
|
|||
|
|
setstr1 = ""
|
|||
|
|
values = self.bodys1.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr1 = setstr1 + str(v) + ","
|
|||
|
|
setstr1 = str(key) + ":" + setstr1[:-1]
|
|||
|
|
strcom1 = strcom1 + setstr1 + ";"
|
|||
|
|
strcom1 = strcom1[:-1]
|
|||
|
|
bodystr1 = bytes(strcom1, encoding="utf-8")
|
|||
|
|
keyList2 = self.bodys2.keys()
|
|||
|
|
strcom2 = ""
|
|||
|
|
for key in keyList2:
|
|||
|
|
setstr2 = ""
|
|||
|
|
values = self.bodys2.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr2 = setstr2 + str(v) + ","
|
|||
|
|
setstr2 = str(key) + ":" + setstr2[:-1]
|
|||
|
|
strcom2 = strcom2 + setstr2 + ";"
|
|||
|
|
strcom2 = strcom2[:-1]
|
|||
|
|
bodystr2 = bytes(strcom2, encoding="utf-8")
|
|||
|
|
typestr = bytes(self.booltype, encoding="utf-8")
|
|||
|
|
savestr = bytes(self.saveBox2, encoding="utf-8")
|
|||
|
|
command.EditBooLOperation(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
typestr,
|
|||
|
|
bodystr1,
|
|||
|
|
bodystr2,
|
|||
|
|
c_int(self.bool2d),
|
|||
|
|
savestr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class BooLCutOperation:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.bodys1 = dict()
|
|||
|
|
self.bodys2 = dict()
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def set2d(self, bool2d):
|
|||
|
|
self.bool2d = int(bool2d)
|
|||
|
|
|
|||
|
|
def appendBody1(self, setid, bodyindex):
|
|||
|
|
self.bodys1.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def appendBody2(self, setid, bodyindex):
|
|||
|
|
self.bodys2.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def SaveOrigin(self, saveBox2):
|
|||
|
|
self.saveBox2 = saveBox2
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList1 = self.bodys1.keys()
|
|||
|
|
strcom1 = ""
|
|||
|
|
for key in keyList1:
|
|||
|
|
setstr1 = ""
|
|||
|
|
values = self.bodys1.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr1 = setstr1 + str(v) + ","
|
|||
|
|
setstr1 = str(key) + ":" + setstr1[:-1]
|
|||
|
|
strcom1 = strcom1 + setstr1 + ";"
|
|||
|
|
strcom1 = strcom1[:-1]
|
|||
|
|
bodystr1 = bytes(strcom1, encoding="utf-8")
|
|||
|
|
keyList2 = self.bodys2.keys()
|
|||
|
|
strcom2 = ""
|
|||
|
|
for key in keyList2:
|
|||
|
|
setstr2 = ""
|
|||
|
|
values = self.bodys2.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr2 = setstr2 + str(v) + ","
|
|||
|
|
setstr2 = str(key) + ":" + setstr2[:-1]
|
|||
|
|
strcom2 = strcom2 + setstr2 + ";"
|
|||
|
|
strcom2 = strcom2[:-1]
|
|||
|
|
bodystr2 = bytes(strcom2, encoding="utf-8")
|
|||
|
|
savestr = bytes(self.saveBox2, encoding="utf-8")
|
|||
|
|
command.CreateBooLCutOperation(
|
|||
|
|
c_int(self.coorSysID), bodystr1, bodystr2, c_int(self.bool2d), savestr
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList1 = self.bodys1.keys()
|
|||
|
|
strcom1 = ""
|
|||
|
|
for key in keyList1:
|
|||
|
|
setstr1 = ""
|
|||
|
|
values = self.bodys1.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr1 = setstr1 + str(v) + ","
|
|||
|
|
setstr1 = str(key) + ":" + setstr1[:-1]
|
|||
|
|
strcom1 = strcom1 + setstr1 + ";"
|
|||
|
|
strcom1 = strcom1[:-1]
|
|||
|
|
bodystr1 = bytes(strcom1, encoding="utf-8")
|
|||
|
|
keyList2 = self.bodys2.keys()
|
|||
|
|
strcom2 = ""
|
|||
|
|
for key in keyList2:
|
|||
|
|
setstr2 = ""
|
|||
|
|
values = self.bodys2.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr2 = setstr2 + str(v) + ","
|
|||
|
|
setstr2 = str(key) + ":" + setstr2[:-1]
|
|||
|
|
strcom2 = strcom2 + setstr2 + ";"
|
|||
|
|
strcom2 = strcom2[:-1]
|
|||
|
|
bodystr2 = bytes(strcom2, encoding="utf-8")
|
|||
|
|
savestr = bytes(self.saveBox2, encoding="utf-8")
|
|||
|
|
command.EditBooLCutOperation(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr1,
|
|||
|
|
bodystr2,
|
|||
|
|
c_int(self.bool2d),
|
|||
|
|
savestr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class MirrorFeature:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.faceindex = 0
|
|||
|
|
self.facebody = 0
|
|||
|
|
self.method = 0
|
|||
|
|
self.planemethod = '"XOY"'
|
|||
|
|
self.basepoint0 = 0
|
|||
|
|
self.basepoint1 = 0
|
|||
|
|
self.basepoint2 = 0
|
|||
|
|
self.random0 = 0
|
|||
|
|
self.random1 = 0
|
|||
|
|
self.random2 = 0
|
|||
|
|
self.save = 0
|
|||
|
|
self.bodys = dict()
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def SaveOrigin(self, save):
|
|||
|
|
self.save = save
|
|||
|
|
|
|||
|
|
def setSymmetricPlaneMethod(self, method):
|
|||
|
|
self.method = method
|
|||
|
|
|
|||
|
|
def setFace(self, facebody, faceindex):
|
|||
|
|
self.faceindex = faceindex
|
|||
|
|
self.facebody = facebody
|
|||
|
|
|
|||
|
|
def setPlaneMethod(self, planemethod):
|
|||
|
|
self.planemethod = planemethod
|
|||
|
|
|
|||
|
|
def setFeature(self, selectFeatures):
|
|||
|
|
self.selectFeatures = selectFeatures
|
|||
|
|
|
|||
|
|
def setDir(self, random0, random1, random2):
|
|||
|
|
self.random0 = random0
|
|||
|
|
self.random1 = random1
|
|||
|
|
self.random2 = random2
|
|||
|
|
|
|||
|
|
def setBasePt(self, basepoint0, basepoint1, basepoint2):
|
|||
|
|
self.basepoint0 = basepoint0
|
|||
|
|
self.basepoint1 = basepoint1
|
|||
|
|
self.basepoint2 = basepoint2
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
savestr = bytes(self.save, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
command.CreateMirrorFeature(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
bodystr,
|
|||
|
|
methodstr,
|
|||
|
|
c_int(self.faceindex),
|
|||
|
|
c_int(self.facebody),
|
|||
|
|
planemestr,
|
|||
|
|
c_double(self.random0),
|
|||
|
|
c_double(self.random1),
|
|||
|
|
c_double(self.random2),
|
|||
|
|
c_double(self.basepoint0),
|
|||
|
|
c_double(self.basepoint1),
|
|||
|
|
c_double(self.basepoint2),
|
|||
|
|
savestr,
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
savestr = bytes(self.save, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
command.EditMirrorFeature(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr,
|
|||
|
|
methodstr,
|
|||
|
|
c_int(self.faceindex),
|
|||
|
|
c_int(self.facebody),
|
|||
|
|
planemestr,
|
|||
|
|
c_double(self.random0),
|
|||
|
|
c_double(self.random1),
|
|||
|
|
c_double(self.random2),
|
|||
|
|
c_double(self.basepoint0),
|
|||
|
|
c_double(self.basepoint1),
|
|||
|
|
c_double(self.basepoint2),
|
|||
|
|
savestr,
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class MoveFeature:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.startpt0 = 0
|
|||
|
|
self.startpt1 = 0
|
|||
|
|
self.startpt2 = 0
|
|||
|
|
self.endpt0 = 0
|
|||
|
|
self.endpt1 = 0
|
|||
|
|
self.endpt2 = 0
|
|||
|
|
self.length = 10
|
|||
|
|
self.dir0 = 0
|
|||
|
|
self.dir1 = 0
|
|||
|
|
self.dir2 = 0
|
|||
|
|
self.reverse = "false"
|
|||
|
|
self.bodys = dict()
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def TransformMethod(self, method):
|
|||
|
|
self.method = method
|
|||
|
|
|
|||
|
|
def setStartPoint(self, startpt0, startpt1, startpt2):
|
|||
|
|
self.startpt0 = startpt0
|
|||
|
|
self.startpt1 = startpt1
|
|||
|
|
self.startpt2 = startpt2
|
|||
|
|
|
|||
|
|
def setEndPoint(self, endpt0, endpt1, endpt2):
|
|||
|
|
self.endpt0 = endpt0
|
|||
|
|
self.endpt1 = endpt1
|
|||
|
|
self.endpt2 = endpt2
|
|||
|
|
|
|||
|
|
def SaveOrigin(self, saveori):
|
|||
|
|
self.saveori = saveori
|
|||
|
|
|
|||
|
|
def setReverse(self, reverse):
|
|||
|
|
self.reverse = reverse
|
|||
|
|
|
|||
|
|
def setFeature(self, selectFeatures):
|
|||
|
|
self.selectFeatures = selectFeatures
|
|||
|
|
|
|||
|
|
def setLength(self, length):
|
|||
|
|
self.length = length
|
|||
|
|
|
|||
|
|
def setDirection(self, dir0, dir1, dir2):
|
|||
|
|
self.dir0 = dir0
|
|||
|
|
self.dir1 = dir1
|
|||
|
|
self.dir2 = dir2
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
saveoristr = bytes(self.saveori, encoding="utf-8")
|
|||
|
|
reversestr = bytes(self.reverse, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateMoveFeature(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
bodystr,
|
|||
|
|
methstr,
|
|||
|
|
c_double(self.startpt0),
|
|||
|
|
c_double(self.startpt1),
|
|||
|
|
c_double(self.startpt2),
|
|||
|
|
c_double(self.endpt0),
|
|||
|
|
c_double(self.endpt1),
|
|||
|
|
c_double(self.endpt2),
|
|||
|
|
saveoristr,
|
|||
|
|
reversestr,
|
|||
|
|
c_double(self.length),
|
|||
|
|
c_double(self.dir0),
|
|||
|
|
c_double(self.dir1),
|
|||
|
|
c_double(self.dir2),
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
saveoristr = bytes(self.saveori, encoding="utf-8")
|
|||
|
|
reversestr = bytes(self.reverse, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditMoveFeature(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr,
|
|||
|
|
methstr,
|
|||
|
|
c_double(self.startpt0),
|
|||
|
|
c_double(self.startpt1),
|
|||
|
|
c_double(self.startpt2),
|
|||
|
|
c_double(self.endpt0),
|
|||
|
|
c_double(self.endpt1),
|
|||
|
|
c_double(self.endpt2),
|
|||
|
|
saveoristr,
|
|||
|
|
reversestr,
|
|||
|
|
c_double(self.length),
|
|||
|
|
c_double(self.dir0),
|
|||
|
|
c_double(self.dir1),
|
|||
|
|
c_double(self.dir2),
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TransformCopy:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.startpt0 = 0
|
|||
|
|
self.startpt1 = 0
|
|||
|
|
self.startpt2 = 0
|
|||
|
|
self.endpt0 = 0
|
|||
|
|
self.endpt1 = 0
|
|||
|
|
self.endpt2 = 0
|
|||
|
|
self.selectFeatures = 0
|
|||
|
|
self.copyCnt = 0
|
|||
|
|
self.bodys = dict()
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def setStartPoint(self, startpt0, startpt1, startpt2):
|
|||
|
|
self.startpt0 = startpt0
|
|||
|
|
self.startpt1 = startpt1
|
|||
|
|
self.startpt2 = startpt2
|
|||
|
|
|
|||
|
|
def setEndPoint(self, endpt0, endpt1, endpt2):
|
|||
|
|
self.endpt0 = endpt0
|
|||
|
|
self.endpt1 = endpt1
|
|||
|
|
self.endpt2 = endpt2
|
|||
|
|
|
|||
|
|
def setFeature(self, selectFeatures):
|
|||
|
|
self.selectFeatures = selectFeatures
|
|||
|
|
|
|||
|
|
def setCopyCnt(self, copyCnt):
|
|||
|
|
self.copyCnt = copyCnt
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
command.CreateTransformCopy(
|
|||
|
|
bodystr,
|
|||
|
|
c_double(self.startpt0),
|
|||
|
|
c_double(self.startpt1),
|
|||
|
|
c_double(self.startpt2),
|
|||
|
|
c_double(self.endpt0),
|
|||
|
|
c_double(self.endpt1),
|
|||
|
|
c_double(self.endpt2),
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
c_int(self.copyCnt),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class ProjectionOnSurface:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.faceindex = 0
|
|||
|
|
self.facebody = 0
|
|||
|
|
self.method = 0
|
|||
|
|
self.planemethod = '"XOY"'
|
|||
|
|
self.projDir0 = 0
|
|||
|
|
self.projDir1 = 0
|
|||
|
|
self.projDir2 = 0
|
|||
|
|
self.generateFace = 0
|
|||
|
|
self.bodys = dict()
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def GenerateFace(self, generateFace):
|
|||
|
|
self.generateFace = generateFace
|
|||
|
|
|
|||
|
|
def setProjPlaneMethod(self, method):
|
|||
|
|
self.method = method
|
|||
|
|
|
|||
|
|
def setFace(self, facebody, faceindex):
|
|||
|
|
self.faceindex = faceindex
|
|||
|
|
self.facebody = facebody
|
|||
|
|
|
|||
|
|
def setPlaneMethod(self, planemethod):
|
|||
|
|
self.planemethod = planemethod
|
|||
|
|
|
|||
|
|
def setFeature(self, selectFeatures):
|
|||
|
|
self.selectFeatures = selectFeatures
|
|||
|
|
|
|||
|
|
def setProjextionDirection(self, projDir0, projDir1, projDir2):
|
|||
|
|
self.projDir0 = projDir0
|
|||
|
|
self.projDir1 = projDir1
|
|||
|
|
self.projDir2 = projDir2
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
generateFacestr = bytes(self.generateFace, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
command.CreateProjectionOnSurface(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
bodystr,
|
|||
|
|
methodstr,
|
|||
|
|
c_int(self.faceindex),
|
|||
|
|
c_int(self.facebody),
|
|||
|
|
planemestr,
|
|||
|
|
c_double(self.projDir0),
|
|||
|
|
c_double(self.projDir1),
|
|||
|
|
c_double(self.projDir2),
|
|||
|
|
generateFacestr,
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
generateFacestr = bytes(self.generateFace, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
command.EditProjectionOnSurface(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr,
|
|||
|
|
methodstr,
|
|||
|
|
c_int(self.faceindex),
|
|||
|
|
c_int(self.facebody),
|
|||
|
|
planemestr,
|
|||
|
|
c_double(self.projDir0),
|
|||
|
|
c_double(self.projDir1),
|
|||
|
|
c_double(self.projDir2),
|
|||
|
|
generateFacestr,
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class RotateFeature:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.saveOri = 0
|
|||
|
|
self.rever = 0
|
|||
|
|
self.body = 0
|
|||
|
|
self.edge = 0
|
|||
|
|
self.axisx = 0
|
|||
|
|
self.axisy = 0
|
|||
|
|
self.axisz = 0
|
|||
|
|
self.axisMethod = 0
|
|||
|
|
self.bodys = dict()
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def saveOrigin(self):
|
|||
|
|
self.saveOri = 1
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def setBasicPoint(self, x, y, z):
|
|||
|
|
self.basicx = x
|
|||
|
|
self.basicy = y
|
|||
|
|
self.basicz = z
|
|||
|
|
|
|||
|
|
def setAxisFromBody(self, body, edge):
|
|||
|
|
self.axisMethod = 0
|
|||
|
|
self.body = body
|
|||
|
|
self.edge = edge
|
|||
|
|
|
|||
|
|
def setAxis(self, x, y, z):
|
|||
|
|
self.axisMethod = 1
|
|||
|
|
self.axisx = x
|
|||
|
|
self.axisy = y
|
|||
|
|
self.axisz = z
|
|||
|
|
|
|||
|
|
def reverse(self):
|
|||
|
|
self.rever = 1
|
|||
|
|
|
|||
|
|
def setAngle(self, ang):
|
|||
|
|
self.angle = ang
|
|||
|
|
|
|||
|
|
def setRotateFeature(self, selectRotateFeatures):
|
|||
|
|
self.selectRotateFeatures = selectRotateFeatures
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def rotate(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
objstr = bytes(strcom, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.RotateFeature(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
objstr,
|
|||
|
|
c_double(self.basicx),
|
|||
|
|
c_double(self.basicy),
|
|||
|
|
c_double(self.basicz),
|
|||
|
|
c_int(self.axisMethod),
|
|||
|
|
c_int(self.body),
|
|||
|
|
c_int(self.edge),
|
|||
|
|
c_double(self.axisx),
|
|||
|
|
c_double(self.axisy),
|
|||
|
|
c_double(self.axisz),
|
|||
|
|
c_int(self.rever),
|
|||
|
|
c_double(self.angle),
|
|||
|
|
c_int(self.saveOri),
|
|||
|
|
c_int(self.selectRotateFeatures),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
objstr = bytes(strcom, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditRotateFeature(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
objstr,
|
|||
|
|
c_double(self.basicx),
|
|||
|
|
c_double(self.basicy),
|
|||
|
|
c_double(self.basicz),
|
|||
|
|
c_int(self.axisMethod),
|
|||
|
|
c_int(self.body),
|
|||
|
|
c_int(self.edge),
|
|||
|
|
c_double(self.axisx),
|
|||
|
|
c_double(self.axisy),
|
|||
|
|
c_double(self.axisz),
|
|||
|
|
c_int(self.rever),
|
|||
|
|
c_double(self.angle),
|
|||
|
|
c_int(self.saveOri),
|
|||
|
|
c_int(self.selectRotateFeatures),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class MakeMatrix:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.optionindex = 0
|
|||
|
|
self.dir10 = 0
|
|||
|
|
self.dir11 = 0
|
|||
|
|
self.dir12 = 0
|
|||
|
|
self.reverse1 = 0
|
|||
|
|
self.dis1 = 15
|
|||
|
|
self.count1 = 2
|
|||
|
|
self.showdir2 = 0
|
|||
|
|
self.dir20 = 0
|
|||
|
|
self.dir21 = 0
|
|||
|
|
self.dir22 = 0
|
|||
|
|
self.reverse2 = 0
|
|||
|
|
self.dis2 = 15
|
|||
|
|
self.count2 = 2
|
|||
|
|
self.basept0 = 0
|
|||
|
|
self.basept1 = 0
|
|||
|
|
self.basept2 = 0
|
|||
|
|
self.axis0 = 0
|
|||
|
|
self.axis1 = 0
|
|||
|
|
self.axis2 = 0
|
|||
|
|
self.wirereverse = 0
|
|||
|
|
self.wirecount = 2
|
|||
|
|
self.degree = 30
|
|||
|
|
self.DistanceX = 0
|
|||
|
|
self.DistanceY = 0
|
|||
|
|
self.DistanceZ = 0
|
|||
|
|
self.CountX = 1
|
|||
|
|
self.CountY = 1
|
|||
|
|
self.CountZ = 1
|
|||
|
|
self.bodys = dict()
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def setOptionMethod(self, optionstr):
|
|||
|
|
if optionstr == "Liear Matrix":
|
|||
|
|
self.optionindex = 0
|
|||
|
|
elif optionstr == "Wire Matrix":
|
|||
|
|
self.optionindex = 1
|
|||
|
|
elif optionstr == "Large Matrix":
|
|||
|
|
self.optionindex = 2
|
|||
|
|
|
|||
|
|
def setDirection1(self, dir10, dir11, dir12):
|
|||
|
|
self.dir10 = dir10
|
|||
|
|
self.dir11 = dir11
|
|||
|
|
self.dir12 = dir12
|
|||
|
|
|
|||
|
|
def setReverseOfDirection1(self, revstr):
|
|||
|
|
if revstr == "Yes":
|
|||
|
|
self.reverse1 = 1
|
|||
|
|
elif revstr == "No":
|
|||
|
|
self.reverse1 = 0
|
|||
|
|
|
|||
|
|
def setMatrix(self, selectFeatures):
|
|||
|
|
self.selectFeatures = selectFeatures
|
|||
|
|
|
|||
|
|
def setDistance1(self, dis1):
|
|||
|
|
self.dis1 = dis1
|
|||
|
|
|
|||
|
|
def setCount1(self, count1):
|
|||
|
|
self.count1 = count1
|
|||
|
|
|
|||
|
|
def showDirection2(self, showdir2str):
|
|||
|
|
if showdir2str == "Yes":
|
|||
|
|
self.showdir2 = 1
|
|||
|
|
elif showdir2str == "No":
|
|||
|
|
self.showdir2 = 0
|
|||
|
|
|
|||
|
|
def setDirection2(self, dir20, dir21, dir22):
|
|||
|
|
self.dir20 = dir20
|
|||
|
|
self.dir21 = dir21
|
|||
|
|
self.dir22 = dir22
|
|||
|
|
|
|||
|
|
def setReverseOfDirection2(self, revstr):
|
|||
|
|
if revstr == "Yes":
|
|||
|
|
self.reverse2 = 1
|
|||
|
|
elif revstr == "No":
|
|||
|
|
self.reverse2 = 0
|
|||
|
|
|
|||
|
|
def setDistance2(self, dis2):
|
|||
|
|
self.dis2 = dis2
|
|||
|
|
|
|||
|
|
def setCount2(self, count2):
|
|||
|
|
self.count2 = count2
|
|||
|
|
|
|||
|
|
def setBasicPoint(self, basepoint0, basepoint1, basepoint2):
|
|||
|
|
self.basept0 = basepoint0
|
|||
|
|
self.basept1 = basepoint1
|
|||
|
|
self.basept2 = basepoint2
|
|||
|
|
|
|||
|
|
def setAxis(self, axis0, axis1, axis2):
|
|||
|
|
self.axis0 = axis0
|
|||
|
|
self.axis1 = axis1
|
|||
|
|
self.axis2 = axis2
|
|||
|
|
|
|||
|
|
def setWireReverse(self, wirerestr):
|
|||
|
|
if wirerestr == "Yes":
|
|||
|
|
self.wirereverse = 1
|
|||
|
|
elif wirerestr == "No":
|
|||
|
|
self.wirereverse = 0
|
|||
|
|
|
|||
|
|
def setWireCount(self, wirecount):
|
|||
|
|
self.wirecount = wirecount
|
|||
|
|
|
|||
|
|
def setDegree(self, degree):
|
|||
|
|
self.degree = degree
|
|||
|
|
|
|||
|
|
def setXYZDistance(self, dx, dy, dz):
|
|||
|
|
self.DistanceX = dx
|
|||
|
|
self.DistanceY = dy
|
|||
|
|
self.DistanceZ = dz
|
|||
|
|
|
|||
|
|
def setXYZCount(self, cx, cy, cz):
|
|||
|
|
self.CountX = cx
|
|||
|
|
self.CountY = cy
|
|||
|
|
self.CountZ = cz
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.MakeMatrix(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
bodystr,
|
|||
|
|
c_int(self.optionindex),
|
|||
|
|
c_double(self.dir10),
|
|||
|
|
c_double(self.dir11),
|
|||
|
|
c_double(self.dir12),
|
|||
|
|
c_int(self.reverse1),
|
|||
|
|
c_double(self.dis1),
|
|||
|
|
c_int(self.count1),
|
|||
|
|
c_int(self.showdir2),
|
|||
|
|
c_double(self.dir20),
|
|||
|
|
c_double(self.dir21),
|
|||
|
|
c_double(self.dir22),
|
|||
|
|
c_int(self.reverse2),
|
|||
|
|
c_double(self.dis2),
|
|||
|
|
c_int(self.count2),
|
|||
|
|
c_double(self.basept0),
|
|||
|
|
c_double(self.basept1),
|
|||
|
|
c_double(self.basept2),
|
|||
|
|
c_double(self.axis0),
|
|||
|
|
c_double(self.axis1),
|
|||
|
|
c_double(self.axis2),
|
|||
|
|
c_int(self.wirereverse),
|
|||
|
|
c_int(self.wirecount),
|
|||
|
|
c_double(self.degree),
|
|||
|
|
c_double(self.DistanceX),
|
|||
|
|
c_double(self.DistanceY),
|
|||
|
|
c_double(self.DistanceZ),
|
|||
|
|
c_int(self.CountX),
|
|||
|
|
c_int(self.CountY),
|
|||
|
|
c_int(self.CountZ),
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.EditMatrix(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr,
|
|||
|
|
c_int(self.optionindex),
|
|||
|
|
c_double(self.dir10),
|
|||
|
|
c_double(self.dir11),
|
|||
|
|
c_double(self.dir12),
|
|||
|
|
c_int(self.reverse1),
|
|||
|
|
c_double(self.dis1),
|
|||
|
|
c_int(self.count1),
|
|||
|
|
c_int(self.showdir2),
|
|||
|
|
c_double(self.dir20),
|
|||
|
|
c_double(self.dir21),
|
|||
|
|
c_double(self.dir22),
|
|||
|
|
c_int(self.reverse2),
|
|||
|
|
c_double(self.dis2),
|
|||
|
|
c_int(self.count2),
|
|||
|
|
c_double(self.basept0),
|
|||
|
|
c_double(self.basept1),
|
|||
|
|
c_double(self.basept2),
|
|||
|
|
c_double(self.axis0),
|
|||
|
|
c_double(self.axis1),
|
|||
|
|
c_double(self.axis2),
|
|||
|
|
c_int(self.wirereverse),
|
|||
|
|
c_int(self.wirecount),
|
|||
|
|
c_double(self.degree),
|
|||
|
|
c_int(self.selectFeatures),
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Extrusion:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.pt0 = 0
|
|||
|
|
self.pt1 = 0
|
|||
|
|
self.pt2 = 0
|
|||
|
|
self.distance = 10
|
|||
|
|
self.reverse = "No"
|
|||
|
|
self.solid = "Yes"
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setDistance(self, distance):
|
|||
|
|
self.distance = distance
|
|||
|
|
|
|||
|
|
def setDirection(self, pt0, pt1, pt2):
|
|||
|
|
self.pt0 = pt0
|
|||
|
|
self.pt1 = pt1
|
|||
|
|
self.pt2 = pt2
|
|||
|
|
|
|||
|
|
def appendEdge(self, geoset, index):
|
|||
|
|
self.edges.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def Reverse(self, reverse):
|
|||
|
|
self.reverse = reverse
|
|||
|
|
|
|||
|
|
def GenerateSolid(self, solid):
|
|||
|
|
self.solid = solid
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.edges.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
reversestr = bytes(self.reverse, encoding="utf-8")
|
|||
|
|
solidstr = bytes(self.solid, encoding="utf-8")
|
|||
|
|
namestr = bytes(self.name, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateExtrusion(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
namestr,
|
|||
|
|
edgestr,
|
|||
|
|
c_double(self.distance),
|
|||
|
|
c_double(self.pt0),
|
|||
|
|
c_double(self.pt1),
|
|||
|
|
c_double(self.pt2),
|
|||
|
|
reversestr,
|
|||
|
|
solidstr,
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Revol:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.basicpt0 = 0
|
|||
|
|
self.basicpt1 = 0
|
|||
|
|
self.basicpt2 = 0
|
|||
|
|
self.coor0 = 0
|
|||
|
|
self.coor1 = 0
|
|||
|
|
self.coor2 = 0
|
|||
|
|
self.degree = 90
|
|||
|
|
self.reverse = "No"
|
|||
|
|
self.solid = "Yes"
|
|||
|
|
self.axisset = -1
|
|||
|
|
self.edgeindex = -1
|
|||
|
|
self.isExists = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def setDegree(self, degree):
|
|||
|
|
self.degree = degree
|
|||
|
|
|
|||
|
|
def setBasicPoint(self, basicpt0, basicpt1, basicpt2):
|
|||
|
|
self.basicpt0 = basicpt0
|
|||
|
|
self.basicpt1 = basicpt1
|
|||
|
|
self.basicpt2 = basicpt2
|
|||
|
|
|
|||
|
|
def setAxisMethod(self, optionindex):
|
|||
|
|
self.optionindex = optionindex
|
|||
|
|
|
|||
|
|
def setCoordinate(self, coor0, coor1, coor2):
|
|||
|
|
self.coor0 = coor0
|
|||
|
|
self.coor1 = coor1
|
|||
|
|
self.coor2 = coor2
|
|||
|
|
|
|||
|
|
def selectAxisOnGeo(self, axisset, edgeindex):
|
|||
|
|
self.axisset = axisset
|
|||
|
|
self.edgeindex = edgeindex
|
|||
|
|
|
|||
|
|
def appendEdge(self, geoset, index):
|
|||
|
|
self.edges.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def Reverse(self, reverse):
|
|||
|
|
self.reverse = reverse
|
|||
|
|
|
|||
|
|
def GenerateSolid(self, solid):
|
|||
|
|
self.solid = solid
|
|||
|
|
|
|||
|
|
def setIsExistsVariableParameter(self, isExists):
|
|||
|
|
self.isExists = isExists
|
|||
|
|
|
|||
|
|
def setVariableHash(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.edges.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
reversestr = bytes(self.reverse, encoding="utf-8")
|
|||
|
|
solidstr = bytes(self.solid, encoding="utf-8")
|
|||
|
|
namestr = bytes(self.name, encoding="utf-8")
|
|||
|
|
optionindexstr = bytes(self.optionindex, encoding="utf-8")
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
command.CreateRevol(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
namestr,
|
|||
|
|
edgestr,
|
|||
|
|
c_double(self.basicpt0),
|
|||
|
|
c_double(self.basicpt1),
|
|||
|
|
c_double(self.basicpt2),
|
|||
|
|
c_double(self.degree),
|
|||
|
|
optionindexstr,
|
|||
|
|
c_int(self.axisset),
|
|||
|
|
c_int(self.edgeindex),
|
|||
|
|
c_double(self.coor0),
|
|||
|
|
c_double(self.coor1),
|
|||
|
|
c_double(self.coor2),
|
|||
|
|
reversestr,
|
|||
|
|
solidstr,
|
|||
|
|
c_bool(self.isExists),
|
|||
|
|
variableParaStr,
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Loft:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.solid = "No"
|
|||
|
|
self.secstr = ""
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setName(self, name):
|
|||
|
|
self.name = name
|
|||
|
|
|
|||
|
|
def isSolid(self, solid):
|
|||
|
|
self.solid = solid
|
|||
|
|
|
|||
|
|
def appendSection(self, sec):
|
|||
|
|
self.secstr += sec
|
|||
|
|
self.secstr += " "
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
sectionstr = bytes(self.secstr, encoding="utf-8")
|
|||
|
|
solidstr = bytes(self.solid, encoding="utf-8")
|
|||
|
|
namestr = bytes(self.name, encoding="utf-8")
|
|||
|
|
command.CreateLoft(
|
|||
|
|
c_int(self.coorSysID), c_int(self.editID), namestr, solidstr, sectionstr
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Sweep:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.edges = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.solid = "No"
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def appendEdge(self, geoset, index):
|
|||
|
|
self.edges.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setPath(self, pathset, pathedge):
|
|||
|
|
self.pathset = pathset
|
|||
|
|
self.pathedge = pathedge
|
|||
|
|
|
|||
|
|
def isSolid(self, solid):
|
|||
|
|
self.solid = solid
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.edges.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.edges.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
edgestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
solidstr = bytes(self.solid, encoding="utf-8")
|
|||
|
|
command.CreateSweep(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
edgestr,
|
|||
|
|
solidstr,
|
|||
|
|
c_int(self.pathset),
|
|||
|
|
c_int(self.pathedge),
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class GeoSplitter:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.coorSysID = 0
|
|||
|
|
self.modelTypeIndex = -1
|
|||
|
|
self.faceindex = -1
|
|||
|
|
self.facebody = -1
|
|||
|
|
self.editID = -1
|
|||
|
|
self.method = 0
|
|||
|
|
self.planemethod = '"XOY"'
|
|||
|
|
self.basepoint0 = 0
|
|||
|
|
self.basepoint1 = 0
|
|||
|
|
self.basepoint2 = 0
|
|||
|
|
self.random0 = 0
|
|||
|
|
self.random1 = 0
|
|||
|
|
self.random2 = 0
|
|||
|
|
self.bodys = dict()
|
|||
|
|
|
|||
|
|
def setCoorSysID(self, csid):
|
|||
|
|
self.coorSysID = csid
|
|||
|
|
|
|||
|
|
def setSplitterModelType(self, modelTypeIndex):
|
|||
|
|
self.modelType = modelTypeIndex
|
|||
|
|
|
|||
|
|
def appendBody(self, setid, bodyindex):
|
|||
|
|
self.bodys.setdefault(setid, set()).add(bodyindex)
|
|||
|
|
|
|||
|
|
def setSymmetricPlaneMethod(self, method):
|
|||
|
|
self.method = method
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setFace(self, facebody, faceindex):
|
|||
|
|
self.facebody = facebody
|
|||
|
|
self.faceindex = faceindex
|
|||
|
|
|
|||
|
|
def setPlaneMethod(self, planemethod):
|
|||
|
|
self.planemethod = planemethod
|
|||
|
|
|
|||
|
|
def setDir(self, random0, random1, random2):
|
|||
|
|
self.random0 = random0
|
|||
|
|
self.random1 = random1
|
|||
|
|
self.random2 = random2
|
|||
|
|
|
|||
|
|
def setBasePt(self, basepoint0, basepoint1, basepoint2):
|
|||
|
|
self.basepoint0 = basepoint0
|
|||
|
|
self.basepoint1 = basepoint1
|
|||
|
|
self.basepoint2 = basepoint2
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
command.MakeGeoSplitter(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.modelType),
|
|||
|
|
bodystr,
|
|||
|
|
methodstr,
|
|||
|
|
c_int(self.faceindex),
|
|||
|
|
c_int(self.facebody),
|
|||
|
|
planemestr,
|
|||
|
|
c_double(self.random0),
|
|||
|
|
c_double(self.random1),
|
|||
|
|
c_double(self.random2),
|
|||
|
|
c_double(self.basepoint0),
|
|||
|
|
c_double(self.basepoint1),
|
|||
|
|
c_double(self.basepoint2),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
keyList = self.bodys.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.bodys.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
bodystr = bytes(strcom, encoding="utf-8")
|
|||
|
|
methodstr = bytes(self.method, encoding="utf-8")
|
|||
|
|
planemestr = bytes(self.planemethod, encoding="utf-8")
|
|||
|
|
command.EditGeoSplitter(
|
|||
|
|
c_int(self.coorSysID),
|
|||
|
|
c_int(self.modelType),
|
|||
|
|
c_int(self.editID),
|
|||
|
|
bodystr,
|
|||
|
|
methodstr,
|
|||
|
|
c_int(self.faceindex),
|
|||
|
|
c_int(self.facebody),
|
|||
|
|
planemestr,
|
|||
|
|
c_double(self.random0),
|
|||
|
|
c_double(self.random1),
|
|||
|
|
c_double(self.random2),
|
|||
|
|
c_double(self.basepoint0),
|
|||
|
|
c_double(self.basepoint1),
|
|||
|
|
c_double(self.basepoint2),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class FillHole:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.faces = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
|
|||
|
|
def appendFace(self, geoset, index):
|
|||
|
|
self.faces.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.faces.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.faces.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
facestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
command.MakeFillHole(facestr, c_int(self.editID))
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class RemoveSurface:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.faces = dict()
|
|||
|
|
self.editID = -1
|
|||
|
|
|
|||
|
|
def appendFace(self, geoset, index):
|
|||
|
|
self.faces.setdefault(geoset, set()).add(index)
|
|||
|
|
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
keyList = self.faces.keys()
|
|||
|
|
strcom = ""
|
|||
|
|
for key in keyList:
|
|||
|
|
setstr = ""
|
|||
|
|
values = self.faces.get(key)
|
|||
|
|
for v in values:
|
|||
|
|
setstr = setstr + str(v) + ","
|
|||
|
|
setstr = str(key) + ":" + setstr[:-1]
|
|||
|
|
strcom = strcom + setstr + ";"
|
|||
|
|
strcom = strcom[:-1]
|
|||
|
|
facestr = bytes(strcom, encoding="utf-8")
|
|||
|
|
command.MakeRemoveSurface(facestr, c_int(self.editID))
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
self.create()
|
|||
|
|
|
|||
|
|
|
|||
|
|
class FillGap:
|
|||
|
|
def setEditID(self, id):
|
|||
|
|
self.editID = id
|
|||
|
|
|
|||
|
|
def setFillGapType(self, type):
|
|||
|
|
self.fillgaptype = type
|
|||
|
|
|
|||
|
|
def setIndexOfShape1(self, set1, body1Index):
|
|||
|
|
self.set1 = set1
|
|||
|
|
self.body1Index = body1Index
|
|||
|
|
|
|||
|
|
def setIndexOfShape2(self, set2, body2Index):
|
|||
|
|
self.set2 = set2
|
|||
|
|
self.body2Index = body2Index
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
typestr = bytes(self.fillgaptype, encoding="utf-8")
|
|||
|
|
command.CreateFillGap(
|
|||
|
|
typestr,
|
|||
|
|
c_int(self.set1),
|
|||
|
|
c_int(self.body1Index),
|
|||
|
|
c_int(self.set2),
|
|||
|
|
c_int(self.body2Index),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
def edit(self):
|
|||
|
|
typestr = bytes(self.fillgaptype, encoding="utf-8")
|
|||
|
|
command.EditFillGap(
|
|||
|
|
c_int(self.editID),
|
|||
|
|
typestr,
|
|||
|
|
c_int(self.set1),
|
|||
|
|
c_int(self.body1Index),
|
|||
|
|
c_int(self.set2),
|
|||
|
|
c_int(self.body2Index),
|
|||
|
|
)
|
|||
|
|
del self
|
|||
|
|
|
|||
|
|
|
|||
|
|
class ModifyVariableParameter:
|
|||
|
|
def __init__(self):
|
|||
|
|
self.value = 0
|
|||
|
|
self.variablePara = ""
|
|||
|
|
|
|||
|
|
def setVariableName(self, variableParameter):
|
|||
|
|
self.variablePara = variableParameter
|
|||
|
|
|
|||
|
|
def setVariableValue(self, val):
|
|||
|
|
self.value = val
|
|||
|
|
|
|||
|
|
def create(self):
|
|||
|
|
variableParaStr = bytes(self.variablePara, encoding="utf-8")
|
|||
|
|
variablevalueStr = bytes(self.value, encoding="utf-8")
|
|||
|
|
command.MVP_setVariablePara(variableParaStr, variablevalueStr)
|
|||
|
|
del self
|