femagtools 1.6.5__py3-none-any.whl → 1.6.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- femagtools/__init__.py +1 -1
- femagtools/dxfsl/area.py +24 -4
- femagtools/dxfsl/areabuilder.py +152 -5
- femagtools/dxfsl/concat.py +7 -7
- femagtools/dxfsl/converter.py +20 -7
- femagtools/dxfsl/dxfparser.py +359 -0
- femagtools/dxfsl/femparser.py +78 -0
- femagtools/dxfsl/geom.py +14 -426
- femagtools/dxfsl/journal.py +15 -23
- femagtools/dxfsl/shape.py +1 -1
- femagtools/dxfsl/svgparser.py +90 -0
- femagtools/dxfsl/symmetry.py +183 -74
- femagtools/isa7.py +6 -5
- femagtools/machine/effloss.py +1 -1
- femagtools/machine/im.py +2 -1
- femagtools/machine/pm.py +71 -12
- femagtools/machine/sm.py +4 -2
- femagtools/plot/nc.py +3 -3
- femagtools/svgfsl/converter.py +74 -0
- {femagtools-1.6.5.dist-info → femagtools-1.6.6.dist-info}/METADATA +5 -1
- {femagtools-1.6.5.dist-info → femagtools-1.6.6.dist-info}/RECORD +26 -21
- {femagtools-1.6.5.dist-info → femagtools-1.6.6.dist-info}/entry_points.txt +1 -0
- tests/test_dxfsl.py +12 -0
- {femagtools-1.6.5.dist-info → femagtools-1.6.6.dist-info}/LICENSE +0 -0
- {femagtools-1.6.5.dist-info → femagtools-1.6.6.dist-info}/WHEEL +0 -0
- {femagtools-1.6.5.dist-info → femagtools-1.6.6.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
if __name__ == '__main__':
|
4
|
+
import pathlib
|
5
|
+
import argparse
|
6
|
+
import logging
|
7
|
+
import logging.config
|
8
|
+
from femagtools.dxfsl.converter import convert
|
9
|
+
|
10
|
+
logger = logging.getLogger(__name__)
|
11
|
+
argparser = argparse.ArgumentParser(
|
12
|
+
description='Process SVG file and create a plot or FSL file.')
|
13
|
+
argparser.add_argument('svgfile',
|
14
|
+
help='name of SVG file')
|
15
|
+
argparser.add_argument('--rotor',
|
16
|
+
help='rotor without airgap in/out',
|
17
|
+
dest='rotor',
|
18
|
+
default='')
|
19
|
+
argparser.add_argument('--stator',
|
20
|
+
help='stator without airgap in/out',
|
21
|
+
dest='stator',
|
22
|
+
default='')
|
23
|
+
argparser.add_argument('-p', '--plot',
|
24
|
+
help='show plots',
|
25
|
+
dest='show_plots',
|
26
|
+
action="store_true")
|
27
|
+
argparser.add_argument('--areas',
|
28
|
+
help='show all areas',
|
29
|
+
dest='show_areas',
|
30
|
+
action="store_true")
|
31
|
+
argparser.add_argument('--id',
|
32
|
+
help='write id of areas',
|
33
|
+
dest='write_id',
|
34
|
+
action="store_true")
|
35
|
+
argparser.add_argument('-f', '--fsl',
|
36
|
+
help='create fsl',
|
37
|
+
dest='write_fsl',
|
38
|
+
action="store_true")
|
39
|
+
argparser.add_argument('-v', '--view',
|
40
|
+
help='show a view only',
|
41
|
+
dest='view',
|
42
|
+
action="store_true")
|
43
|
+
args = argparser.parse_args()
|
44
|
+
|
45
|
+
loglevel = logging.INFO
|
46
|
+
logging.basicConfig(level=loglevel,
|
47
|
+
format='%(asctime)s %(message)s',
|
48
|
+
filemode='w')
|
49
|
+
part = ()
|
50
|
+
if args.stator:
|
51
|
+
if args.rotor:
|
52
|
+
logger.error("Stator or Rotor expected")
|
53
|
+
sys.exit(1)
|
54
|
+
part = ('stator', args.stator)
|
55
|
+
elif args.rotor:
|
56
|
+
part = ('rotor', args.rotor)
|
57
|
+
|
58
|
+
if not args.write_fsl:
|
59
|
+
if not (args.show_plots or args.show_areas or args.view):
|
60
|
+
args.write_fsl = True
|
61
|
+
|
62
|
+
res = convert(args.svgfile, # SVG-Filename
|
63
|
+
part=part,
|
64
|
+
view_only=args.view,
|
65
|
+
show_plots=args.show_plots,
|
66
|
+
show_areas=args.show_areas,
|
67
|
+
write_fsl=args.write_fsl,
|
68
|
+
write_id=args.write_id)
|
69
|
+
|
70
|
+
if args.write_fsl:
|
71
|
+
if res is not None:
|
72
|
+
p = pathlib.Path(args.svgfile)
|
73
|
+
basename = p.stem
|
74
|
+
pathlib.Path(basename + '.fsl').write_text('\n'.join(res['fsl']))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.6.
|
3
|
+
Version: 1.6.6
|
4
4
|
Summary: Python API for FEMAG
|
5
5
|
Author-email: Ronald Tanner <tar@semafor.ch>, Dapu Zhang <dzhang@gtisoft.com>, Beat Holm <hob@semafor.ch>, Günther Amsler <amg@semafor.ch>, Nicolas Mauchle <mau@semafor.ch>
|
6
6
|
License: Copyright (c) 2016-2023, Semafor Informatik & Energie AG, Basel
|
@@ -49,6 +49,10 @@ Provides-Extra: meshio
|
|
49
49
|
Requires-Dist: meshio ; extra == 'meshio'
|
50
50
|
Provides-Extra: mplot
|
51
51
|
Requires-Dist: matplotlib ; extra == 'mplot'
|
52
|
+
Provides-Extra: svgfsl
|
53
|
+
Requires-Dist: dxfgrabber ; extra == 'svgfsl'
|
54
|
+
Requires-Dist: networkx ; extra == 'svgfsl'
|
55
|
+
Requires-Dist: lxml ; extra == 'svgfsl'
|
52
56
|
Provides-Extra: test
|
53
57
|
Requires-Dist: pytest ; extra == 'test'
|
54
58
|
Provides-Extra: vtk
|
@@ -1,4 +1,4 @@
|
|
1
|
-
femagtools/__init__.py,sha256=
|
1
|
+
femagtools/__init__.py,sha256=lJNqlV6QzIM5MGG7uASKr5ZDeIiKRDYFtLqJu1GYyRQ,1615
|
2
2
|
femagtools/airgap.py,sha256=ZCIZTYf6BbuNYx68y9fUDBQo3taN8RuGl8q-jJ7ygiA,1577
|
3
3
|
femagtools/amazon.py,sha256=O1ICuv21XDAJi1qK1Sigs2TdS6hDZP19OzvmE2t76wU,12069
|
4
4
|
femagtools/amela.py,sha256=pHjfXzpANI-7oz8MtrqNcyDZ6PxVM91vCJuvYhHy1rk,13891
|
@@ -23,7 +23,7 @@ femagtools/gmsh.py,sha256=IKhNiviIBji4cMxAhxaYXNqBRMNAPSKsBGdnGyxkyQw,3903
|
|
23
23
|
femagtools/google.py,sha256=ugRyHY1zBjHR4aNfbA7GeF-ZU_NgleuVTZaWpi_XLT4,17144
|
24
24
|
femagtools/grid.py,sha256=s7LfKKLm2H4-cza2kSEANq6vwxq10Su3TJl3kHShHRA,1561
|
25
25
|
femagtools/hxy.py,sha256=PkiZ_-CRhtvtpkmLAP8iMtwvzh7CjKGGcAbOhFb4Nls,6275
|
26
|
-
femagtools/isa7.py,sha256=
|
26
|
+
femagtools/isa7.py,sha256=HnD_NZ5-Oj98kw8e3o3tdHt07kfEL-d0N6KmqkoeTeU,58332
|
27
27
|
femagtools/jhb.py,sha256=stJxkmzHpfUIBVcFw7jWbV5KN9_EFqzOCgacyhUqWvM,1779
|
28
28
|
femagtools/job.py,sha256=dOatzr10nIda76CjVRSS0SfEWC8_BAw0kowli523qbY,11320
|
29
29
|
femagtools/losscoeffs.py,sha256=dlSYDS13RqpPHLdv_EPWIA9liwhqjbxUiN7t7GFPZhw,5397
|
@@ -47,28 +47,31 @@ femagtools/vbf.py,sha256=9XGfhftmD9carU8ByQ5DwqoR4daq5mJ39eMqruwml0Q,2444
|
|
47
47
|
femagtools/vtu.py,sha256=Sf83dHIfCKY2km-MIUHKKoj-JKN4PDX7kkPLZXyIYY4,10723
|
48
48
|
femagtools/windings.py,sha256=6ioABZRWQ3xA4kmEz2NUkXh-C-FmW9YYkjQKs5YakQs,22197
|
49
49
|
femagtools/dxfsl/__init__.py,sha256=MywcCdpKPKs4qJBJJgeDsikJFJ2P48dbTuNk303f5pM,76
|
50
|
-
femagtools/dxfsl/area.py,sha256=
|
51
|
-
femagtools/dxfsl/areabuilder.py,sha256=
|
52
|
-
femagtools/dxfsl/concat.py,sha256=
|
50
|
+
femagtools/dxfsl/area.py,sha256=cbg3Vi3UUutiofvX9-L0OGmW4u1XmI8PjnY54Lq372M,58872
|
51
|
+
femagtools/dxfsl/areabuilder.py,sha256=gaSdJe-LImcn-rCe-9hXTVO6uJZMMEnV9hzft-MDTHs,26928
|
52
|
+
femagtools/dxfsl/concat.py,sha256=F6scwesxyOmfmKQ5kGspNCxA71Yz6QgxFL7lTj3hsaI,13385
|
53
53
|
femagtools/dxfsl/conv.py,sha256=j17gjZ7XjoP6QmEO50ZMA-jyYrcMQEgpDH0hZN26RbM,9236
|
54
|
-
femagtools/dxfsl/converter.py,sha256=
|
54
|
+
femagtools/dxfsl/converter.py,sha256=41eyMSMad8YXiYSrTGrr9YuTPXHRIczh1fGX0MT9NZ8,21322
|
55
55
|
femagtools/dxfsl/corner.py,sha256=UI1MLlVmiTBURywsOnXnXV7eBABoENc6ortkW_3GYH8,1266
|
56
56
|
femagtools/dxfsl/dumprenderer.py,sha256=n4AvInjvGIaC2iKZtQaYXXDyJVSQ3uEOFOLD4-xfKRY,1861
|
57
|
+
femagtools/dxfsl/dxfparser.py,sha256=kyXG0kZfNyOgn96MqBgP8RhOQhppfB5NbyRNNybs1C0,13451
|
58
|
+
femagtools/dxfsl/femparser.py,sha256=DKRGzrJ4LFFsaNmxl6kiRR4A2y_Xv9Wp6jGYSg0Dz10,2120
|
57
59
|
femagtools/dxfsl/fslrenderer.py,sha256=C4oonLPzKb_9IKvpm-fMvbhQZqtP_7xWG5bzpq8P1CY,23377
|
58
60
|
femagtools/dxfsl/functions.py,sha256=bQftVRqGVndG48SPkjkOIULjcnB40Voz0lgDQ4uBMk8,11705
|
59
|
-
femagtools/dxfsl/geom.py,sha256=
|
60
|
-
femagtools/dxfsl/journal.py,sha256=
|
61
|
+
femagtools/dxfsl/geom.py,sha256=m7IaejPCPDXHAaa2qE0YWLB3FjBVvnP9peeVikPdXWY,149449
|
62
|
+
femagtools/dxfsl/journal.py,sha256=7PQ4TZ5uKX1c_Xo7JvGdyw7PH_6ydqxgHdElqTBVSds,3239
|
61
63
|
femagtools/dxfsl/machine.py,sha256=a6kq7SXRp_u8sIH-aSRT_tnr3bpdvZItLvhNVm_TC5s,42548
|
62
64
|
femagtools/dxfsl/plotrenderer.py,sha256=dIOM8p3UNTlqypxuPcLCegOaK19j3-ahelZ8hneLJ6k,12710
|
63
|
-
femagtools/dxfsl/shape.py,sha256=
|
64
|
-
femagtools/dxfsl/
|
65
|
+
femagtools/dxfsl/shape.py,sha256=5M5vbT-W_nZCamlbuCixi0hlAOOUIlubsJT57TB-jS0,48608
|
66
|
+
femagtools/dxfsl/svgparser.py,sha256=R8V2V5jE6JyVfzshJVaPgsSuMlQf_pwJTFvrTrKDxZ0,2905
|
67
|
+
femagtools/dxfsl/symmetry.py,sha256=pLuGLPRCHLSQiMe7HeDcZr7IR-QJqJX49Rag_S408T8,13835
|
65
68
|
femagtools/machine/__init__.py,sha256=U8W65K7jr7jDdC1KnJh0WjYd8DFaLnIFVvlh-TKcV94,7174
|
66
69
|
femagtools/machine/afpm.py,sha256=hNyDFRLGmCuWRPZl_u1ztJ4pA-Y_mxLaVvg3UJkzRuE,24766
|
67
|
-
femagtools/machine/effloss.py,sha256=
|
68
|
-
femagtools/machine/im.py,sha256=
|
69
|
-
femagtools/machine/pm.py,sha256
|
70
|
+
femagtools/machine/effloss.py,sha256=630JZnLBCIo_XKXkhXWg74hxHv18wy4f8hXNv5xiDwc,13151
|
71
|
+
femagtools/machine/im.py,sha256=8cA7aNr-OkrMlmFaqtnZkDrCQtqSKOFYePwcmZW3oAM,37925
|
72
|
+
femagtools/machine/pm.py,sha256=CpJpZDsbVXbJZSyxByI-DH1C9CFJZQ2zCDgIuXxsmR8,58517
|
70
73
|
femagtools/machine/sizing.py,sha256=aN_OahewjTTBHnpRNfLh1AGFhqnoeZVuMBeb_3MCIVI,23096
|
71
|
-
femagtools/machine/sm.py,sha256=
|
74
|
+
femagtools/machine/sm.py,sha256=3QBnufKiQe85ELWyD9HwnXxvMmoYi-w7rpvCXAXOw10,34398
|
72
75
|
femagtools/machine/utils.py,sha256=rZNqrw0VkwEhexd_idffHyoodaID5cIDmteyIVF1MJ8,18621
|
73
76
|
femagtools/moo/__init__.py,sha256=zinmWEOrsEz6DmMX0Dbn4t6_1UR-p4bEGqyR1wUQk_Q,175
|
74
77
|
femagtools/moo/algorithm.py,sha256=lNEf0Bur4yFpIJeLtAC3oIus8sOMWTb7jepFlD28YzE,5445
|
@@ -84,9 +87,10 @@ femagtools/plot/fieldlines.py,sha256=QtKF4nhnQ_FHHGh9Qez3GVmym0CLhW1ZyIKtk4pzos4
|
|
84
87
|
femagtools/plot/fluxdens.py,sha256=NlexRJ3f_8CgKoWrV82ZIsAXPrLhwj98uOe8_fUks7A,1082
|
85
88
|
femagtools/plot/forcedens.py,sha256=37FQLViGsjCh20tSlWlVfLTsvtjzdK_pEQGC2KcQ-xI,2996
|
86
89
|
femagtools/plot/mcv.py,sha256=AKbWhJd20Kcec8Hv9dX32G5yTLPkcWorQS7-3P6m-mQ,2960
|
87
|
-
femagtools/plot/nc.py,sha256=
|
90
|
+
femagtools/plot/nc.py,sha256=yq-uYppAEUePbo1SAaBKNKla3cyqdLh5z9ArhtwPYZY,9548
|
88
91
|
femagtools/plot/phasor.py,sha256=5iqxCQi_idkdqYALJjQb6YFr_Zv5xsUayDoKL5HzsdE,4765
|
89
92
|
femagtools/plot/wdg.py,sha256=UooR1K8JDoVjKWEox_AfkBY40L87jk2L9OdIFz4O-OY,8462
|
93
|
+
femagtools/svgfsl/converter.py,sha256=EKPQZwvV-jFDOceitt_sMhF5IxbWflj-4QU1xZrkwQM,2738
|
90
94
|
femagtools/templates/FE-losses.mako,sha256=Rql5_8Q6_uthpr-uFXMUo7tdHehfZYND-7M-ohJXVU8,874
|
91
95
|
femagtools/templates/afm_rotor.mako,sha256=fY-dlZvRLN9UAy5V6Q_inWghkSUe8pzrCYjJdNgfNXs,3112
|
92
96
|
femagtools/templates/afm_stator.mako,sha256=l1xEwxffZ1jyx5wuJ3rhVbVlZirJzD2K8n4i5Dvbxuc,5344
|
@@ -164,6 +168,7 @@ tests/test_asm.py,sha256=NAMJ2Km4zi6byhooq5E7GZbkFeSNSTaLpJWt-jQF5cE,1398
|
|
164
168
|
tests/test_bchreader.py,sha256=byqjDa_329cCgQFhLHLOgxiwZ0UMzvWb-rVjvN9wFQA,15497
|
165
169
|
tests/test_conductor.py,sha256=T7bmuSdI2Fowwm2Ht-8D0Qnfs1_lx1aoi9RhC2p5nYU,332
|
166
170
|
tests/test_convert.py,sha256=oseuhm3Iw-9b4WzBjA_Og2lgXPqKYicLUnfadq5Yick,6497
|
171
|
+
tests/test_dxfsl.py,sha256=DBAjtwNAwcB7VYZBjul7xf4ovu14n3Z0fxyreVzAW4A,383
|
167
172
|
tests/test_effloss.py,sha256=-kJJNgS5c6saHXjNuhAe5GdWfr9mEYpPo8fE8OtjsNA,1142
|
168
173
|
tests/test_erg.py,sha256=kRVzpXa6JDdbxTss18HUWKny9Dx8IMx9uGTrbQCnHwg,523
|
169
174
|
tests/test_femag.py,sha256=55cCx90tJ1BEeu_-DOit37y26hFGVSYwkT81s9-p28E,1934
|
@@ -204,9 +209,9 @@ tests/moo/__init__.py,sha256=l8HD-AY8EwxOoo_VrG3HgEZb2MaHypvnhKCVSkR-DTA,808
|
|
204
209
|
tests/moo/test_algorithm.py,sha256=Em8sFm2vzPmuIzRrBBnUQLU_TYuJHSf-kEeozw0XeX4,2563
|
205
210
|
tests/moo/test_population.py,sha256=FvX9LRCxQx0_E2GxHQ5vKwOYFBQiNbT6Lmv5GmNWjTQ,5471
|
206
211
|
tests/moo/test_problem.py,sha256=ALeP4u7g-dFhfwWL8vxivdrrYzVKPjHMCAXzzgyNZbs,467
|
207
|
-
femagtools-1.6.
|
208
|
-
femagtools-1.6.
|
209
|
-
femagtools-1.6.
|
210
|
-
femagtools-1.6.
|
211
|
-
femagtools-1.6.
|
212
|
-
femagtools-1.6.
|
212
|
+
femagtools-1.6.6.dist-info/LICENSE,sha256=V5OED7AzEaOtvbfgNheKOSUeNtijvKQuo84FtSJNkJU,1316
|
213
|
+
femagtools-1.6.6.dist-info/METADATA,sha256=cBqOE9Ki2As_lrqQtRRHaOlUzo8FqxihyLNB7SdGjxU,5838
|
214
|
+
femagtools-1.6.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
215
|
+
femagtools-1.6.6.dist-info/entry_points.txt,sha256=jrvOkZPiN44u1sASeu271VRaVIv5V-uRpN0_N5U_R8c,248
|
216
|
+
femagtools-1.6.6.dist-info/top_level.txt,sha256=Ri4YWtU8MZTzNje9IKyXhTakNbsrCynuWdon4Yq94Dc,17
|
217
|
+
femagtools-1.6.6.dist-info/RECORD,,
|
tests/test_dxfsl.py
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
import pathlib
|
2
|
+
from femagtools.dxfsl.converter import convert
|
3
|
+
|
4
|
+
def test_convert():
|
5
|
+
p = pathlib.Path(__file__).parent / 'data' / 'IPM-130-4.dxf'
|
6
|
+
r = convert(str(p))
|
7
|
+
|
8
|
+
assert r['num_poles'] == 4
|
9
|
+
assert r['tot_num_slot'] == 12
|
10
|
+
totnumsl = [l for l in r['fsl'] if l.startswith('m.tot_num_slot')]
|
11
|
+
assert len(totnumsl) == 1
|
12
|
+
assert totnumsl[0].split()[-1] == '12'
|
File without changes
|
File without changes
|
File without changes
|