各位大佬,我的代码想实现通过两点确定一个圆柱体实例,但是问题可能是出在abaqus的旋转语句上,希望各位大佬给出修改意见。
point1 = (1,1,2) point2 = (2,2,3) x = point1[0] y = point1[1] z = point1[2] fibre_radius = 0.1 part_name = 'matrix' length = sqrt((point2[0] - point1[0]) ** 2 + (point2[1] - point1[1]) ** 2 + (point2[2] - point1[2]) ** 2) # create in Abaqus myAssembly = myModel.rootAssembly # create solid fibre myPart3 = myModel.Part(name=part_name, dimensionality=THREE_D, type=DEFORMABLE_BODY) mySketch3 = myModel.ConstrainedSketch(name="sketch-3", sheetSize=200) mySketch3.CircleByCenterPerimeter(center=(0, 0), point1=(fibre_radius, 0)) myPart3.BaseSolidExtrude(sketch=mySketch3, depth=length) instance_name='glue' angle_y =atan2((point2[1]-point1[1]),(point2[0]-point1[0])) angle_z =acos((point2[2]-point1[2])/length) myAssembly.Instance(name=instance_name, part=myPart3, dependent=ON) myAssembly.rotate(instanceList=(instance_name,), axisPoint=(0,0,0), axisDirection=(0, 0, 1),angle = angle_z) myAssembly.rotate(instanceList=(instance_name,), axisPoint=(0,0,0), axisDirection=(1, 0, 0),angle = angle_y) myAssembly.translate(instanceList=(instance_name, ), vector=(x,y,z))