flyingmind 发表于 2009-2-15 16:16

magnet 6.11.2中分析结果后,如何取得气隙磁密空间分布图?

本帖最后由 flyingmind 于 2009-2-16 20:04 编辑

请问magnet求解结束后,如何取得气隙磁密的空间分布图?或者数据也行
真心求教
PS:软件版本:6.11.2

zjuzgz 发表于 2009-2-15 17:53

Project bar有个Field tab可画各种分布图


要输出数据的话,Tools菜单下有Field probe
Field line graph等工具

flyingmind 发表于 2009-2-15 22:57

本帖最后由 flyingmind 于 2009-2-15 23:04 编辑

谢谢,field tab我知道的,但我的是6.11.2版本,tools菜单下只有field probe只能选择点,并无field line graph工具,我需要画的是气隙磁密随空间位置变化的曲线,不知道你有没有建议?谢谢

PS:我的气隙是一条直线,所谓的field probe只能一个点一个点在图中点,坐标好像无法准确控制,我没有找到像maxwell那么方便的画图方法

thwfei 发表于 2009-2-16 15:44

你这个问题只能通过脚本实现,也就是你要将你要采样的直线离散成很多点,然后你采样各点场量即可。具体说明如下:

Field values in a shaded or arrow plot can be probed through a script. You can copy and paste the sample script below to a text file and then edit the script as necessary to suit your model.
The sample script gets the |B| field value at point (0,0,0). The field value is written to a message box that is displayed in the MagNet main window and is also written to a text file called FieldProbing.txt located in the folder C:\temp.
The lines beginning with an apostrophe (') and displayed in blue are comments to the script.

Sample script

'The |B| field for Problem ID 1 is loaded into memory. The Field ID is returned
?infoScalarField).

fieldId= getDocument().loadMagnetostaticField(1, "|B|", fieldType)

'The scalar field value at the specified point is returned.

CALL getDocument().getScalarFieldAtPoint(fieldId, 0, 0, 0, value)

'The field value is appended to the specified message.

Message= "The scalar field value of |B| at (0, 0, 0) is " & value

'A message box containing the message is displayed.

MsgBox(Message)

'The contents of the message box are written to the specified file.

CALL writeTextFile("c:\temp\FieldProbing.txt", Message)

'If the Field ID is greater than 0, the script continues and the memory used by the field is freed. If the Field ID is less than 0, the value was not obtained (so unloading is not necessary).

If (fieldId > 0) Then
   getDocument().unloadField(fieldId)
End If

?Copyright 2002, Infolytica Corporation
有啥问题再讨论。

flyingmind 发表于 2009-2-16 20:03

本帖最后由 flyingmind 于 2009-2-17 13:14 编辑

4# thwfei

谢谢,你一句点醒我梦中人,哈哈
经过一番研究,特将代码贴如下(注,我的是瞬态场分析,气隙线取的(-1050,-5.5,0)与(1050,-5.5,0)之间的线段,取2101个点):
NN=2101   
Dim abc(2101)   
Dim x(2101)
y=-5.5
z=0   
ReDim solution(1)   
solution(0)= 1   
solution(1)= 140   
Set Field=getDocument().getSolution().getTransientField(solution, "|B| smoothed")   
Dim value
Redim value(0)
mytxt="x" & vbTab & "y" & vbTab & "z" & vbTab & "'|B| smoothed'" & vbCrLf
for i=1 To NN
k=i-1
x(k)=-1*(NN-1)/2+k
Call Field.getFieldAtPoint(x(k),y,z,value)   
mytxt=mytxt & x(k) & vbTab & y & vbTab & z & vbTab & value(0) & vbCrLf
next
Call writeTextFile("abccc.txt",mytxt)
则将结果写入abccc.txt文件中,用电子表格打开,绘图即可
气隙磁密空间分布图如下:

感谢thwfei,我一开始也想着通过脚本实现,但苦于不了解脚本,没办法,只要硬着头皮看帮助了

thwfei 发表于 2009-2-17 08:17

不客气,有什么问题可以一起研究研究。

小牛牛不产奶 发表于 2009-3-16 11:26

顶,好贴,我刚遇到同样的问题,有的救了。
只不过脚本好麻烦啊,没学过

flyingmind 发表于 2009-3-16 19:38

脚本就只能看帮助和自己摸索了,调程序需要耐心的

shuixiansong 发表于 2009-5-8 14:35

刚学习magner,没想到要看线上的磁密这么麻烦··但还得学呀··

shuixiansong 发表于 2009-5-8 14:58

脚本学习中···{:1_436:}

杰森玛耶斯 发表于 2009-5-24 15:12

要用脚本 这是什么语言啊?

ah_thunder 发表于 2010-1-4 13:32

要用脚本,,真复杂。。。

gongxiao228 发表于 2010-1-16 08:41

脚本看起来真复杂。

zjh274 发表于 2010-2-10 17:14

感觉是VB。

mikepang2002 发表于 2010-2-24 23:53

谢谢楼上的讨论,小弟这两天正为这个烦恼。

如果有6。27版本就好了,可以直接取磁场。

kyq2009 发表于 2010-3-3 09:03

想问一下,程序从哪里输入

aice2001 发表于 2010-3-3 09:50

回复 16# kyq2009


    scripting 菜单下,你可以新建和编辑程序。
   6。22版本以上的应该是提供。
建模时可以先打开“start recording uer script”,他会纪录你所有建模的过程以及计算过程,下次再建相同模型时,可以直接调用他,修改一下参数就可以用了。省的记那么多命令。
by the way 问一下 版主,有没有在使用magnet 批处理软件时,可以直接让他把计算完的 结果放到EXEle里面。

xiaosu305 发表于 2012-3-20 21:34

NN=2101   
Dim abc(2101)   
Dim x(2101)
y=-5.5
z=0   
ReDim solution(1)   
solution(0)= 1   
solution(1)= 140   
Set Field=getDocument().getSolution().getTransientField(solution, "|B| smoothed")   
Dim value
Redim value(0)
mytxt="x" & vbTab & "y" & vbTab & "z" & vbTab & "'|B| smoothed'" & vbCrLf
for i=1 To NN
k=i-1
x(k)=-1*(NN-1)/2+k
Call Field.getFieldAtPoint(x(k),y,z,value)   
mytxt=mytxt & x(k) & vbTab & y & vbTab & z & vbTab & value(0) & vbCrLf
next
Call writeTextFile("abccc.txt",mytxt)

有几个问题请教一下:
1
ReDim solution(1)   
solution(0)= 1   
solution(1)= 140   这个数组干什么用的?

xiaosu305 发表于 2012-3-20 21:35

2
getTransientField(solution, "|B| smoothed")   你不是静态场吗,gettransientfield

xiaosu305 发表于 2012-3-20 21:36

thwfei有联系方式没,有几个问题想请教您一下
页: [1] 2
查看完整版本: magnet 6.11.2中分析结果后,如何取得气隙磁密空间分布图?