纽特滴嗅嗅 发表于 2019-12-17 16:50

python编写ansys maxwell中脚本 画电机转子画弧画线程序语句


```
#绘制转子外轮廓
def _rotor(self, funcLib, OD, YD, Le, Poles, NA, NOA1, NOA2, ND, NFL1,NFL2,NFL3):               
                thePointArray = []
                #pp = Poles/2
                point0_x = 0.0
                point0_y = 0.5*OD
               
                point1_x = 0.5*OD*sin(pi*((NA-NOA1)/180.0)/Poles/2.0)
                point1_y = 0.5*OD*cos(pi*((NA-NOA1)/180.0)/Poles/2.0)

                point2_x = 0.5*OD*sin(pi*((NA-NOA1)/180.0)/Poles)
                point2_y = 0.5*OD*cos(pi*((NA-NOA1)/180.0)/Poles)
               
                point3_x = 0.5*(OD-2.0*ND)*sin(pi*(NA/180.0)/Poles)
                point3_y = 0.5*(OD-2.0*ND)*cos(pi*(NA/180.0)/Poles)
               
                point4_x = 0.5*OD*sin(pi*((NA+NOA2)/180.0)/Poles)
                point4_y = 0.5*OD*cos(pi*((NA+NOA2)/180.0)/Poles)       
               
                point5_x = 0.5*OD*sin((pi*((NA+NOA2)/180.0)/Poles+pi/Poles)/2.0)
                point5_y = 0.5*OD*cos((pi*((NA+NOA2)/180.0)/Poles+pi/Poles)/2.0)       

                point6_x = 0.5*OD*sin(pi/Poles)
                point6_y = 0.5*OD*cos(pi/Poles)
       
                point7_x = 0.5*YD*sin(pi/Poles)
                point7_y = 0.5*YD*cos(pi/Poles)       
               
                point8_x = 0.5*YD*sin(pi/Poles/2.0)
                point8_y = 0.5*YD*cos(pi/Poles/2.0)       
               
                point9_x = 0.0
                point9_y = 0.5*YD       
                #生成点阵列
                thePointArray = []
                thePointArray.append(UDPPosition(point0_x,point0_y,0.0))
                thePointArray.append(UDPPosition(point1_x,point1_y,0.0))
                thePointArray.append(UDPPosition(point2_x,point2_y,0.0))
                thePointArray.append(UDPPosition(point3_x,point3_y,0.0))
                thePointArray.append(UDPPosition(point4_x,point4_y,0.0))
                thePointArray.append(UDPPosition(point5_x,point5_y,0.0))               
                thePointArray.append(UDPPosition(point6_x,point6_y,0.0))
                thePointArray.append(UDPPosition(point7_x,point7_y,0.0))
                thePointArray.append(UDPPosition(point8_x,point8_y,0.0))
                thePointArray.append(UDPPosition(point9_x,point9_y,0.0))
                thePointArray.append(UDPPosition(point0_x,point0_y,0.0))       
                #把点连起来,生成线阵列
                theSegArray = []
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.ArcSegment,0,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.LineSegment,2,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.LineSegment,3,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.ArcSegment,4,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.LineSegment,6,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.ArcSegment,7,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
                theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.LineSegment,9,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
                theSegArray.append(theSegDefinition)
```
程序大概意思明白,是先生成点阵列,x y坐标表示出来,但不明白连线的语句是什么意思,如:
theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.ArcSegment,0,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)



画的是蓝线圈出的轮廓,的确是七个点连起来,用到的是point0,2,3,4,6,7,9

这是画弧的语句,其中0,0,0.0第一个0是point0的意思的话,后两个0,0.0是什么意思呢,UDPPosition(0,0,0)代表什么呢,而且画弧需要三个点吧,这三个点分别是什么呢

herrwitz 发表于 2019-12-17 16:50

你这应该去class外面找找UDPPosition函数和UDPPolylineSegmentDefinition函数的定义啊

大熊弟 发表于 2019-12-17 19:02

{:1_556:}你这是打算写py脚本来自动画模型么

纽特滴嗅嗅 发表于 2019-12-18 15:36

大熊弟 发表于 2019-12-17 19:02
你这是打算写py脚本来自动画模型么

是的是的 这是maxwell脚本的一个示例

纽特滴嗅嗅 发表于 2019-12-18 15:44

herrwitz 发表于 2019-12-18 05:01
你这应该去class外面找找UDPPosition函数和UDPPolylineSegmentDefinition函数的定义啊

嗯嗯 找了 但是没有定义

herrwitz 发表于 2019-12-18 23:54

纽特滴嗅嗅 发表于 2019-12-18 15:44
嗯嗯 找了 但是没有定义

这种全局函数有可能是以库的形式import进来的,看看import的库里面有没有定义

大熊弟 发表于 2019-12-19 10:15

纽特滴嗅嗅 发表于 2019-12-18 15:36
是的是的 这是maxwell脚本的一个示例

用脚本画模型好用么

纽特滴嗅嗅 发表于 2019-12-19 10:59

大熊弟 发表于 2019-12-19 10:15
用脚本画模型好用么

是任务没有办法 难啊

纽特滴嗅嗅 发表于 2019-12-19 15:24

herrwitz 发表于 2019-12-18 23:54
这种全局函数有可能是以库的形式import进来的,看看import的库里面有没有定义

找到了在maxwell帮助文档里
theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.ArcSegment,0,0,0.0,UDPPosition(0,0,0),CoordinateSystemPlane.XYPlane)
但这个语句里画弧没看出来怎么确定的角度或者对应的半径,好迷

大熊弟 发表于 2019-12-21 16:57

{:1_521:}这也太难了

herrwitz 发表于 2019-12-21 18:22

纽特滴嗅嗅 发表于 2019-12-19 15:24
找到了在maxwell帮助文档里
theSegDefinition = UDPPolylineSegmentDefinition(PolylineSegmentType.A ...

那就只能试出来了。。。
页: [1]
查看完整版本: python编写ansys maxwell中脚本 画电机转子画弧画线程序语句