Output for VectorWorks Script

例:

FFS;
SetElement["P","MARK"];
SetElement["L1","DRIFT",{"L"->1}];
SetElement["B1","BEND",{"L"->1,"ANGLE"->0.1,"E1"->0,"E2"->0,"ROTATE"->Pi/4}];
SetElement["B2","BEND",{"L"->1,"ANGLE"->.1,"E1"->.5,"E2"->.5,"ROTATE"->-Pi/4}];
SetElement["Q1","QUAD",{"L"->.5,"ROTATE"->Pi/4}];
USE BeamLine[P,L1,B1,L1,Q1,L1,B2,L1]; 
(* ここまではビームラインの定義 *)

(* まずBeam Line上のそれぞれの電磁石(Q,Bのみ)に対してMagnetTypeを定義します*)

MagnetType["B1"]="OldWiggler";
MagnetType["B2"]="TestBend";
MagnetType["Q1"]="OldBTQuad";

(*次にMagnetTypeで指し示されたものに対してMagnetSpecを定義します。*)

MagnetSpec["OldWiggler"]={Width->.63,Height->.406,PoleWidth->.13,Gap->.04,
CoilGap->.05,CoilWidth->.15,CoilHeight->.083,Type->Htype,CurvedPole->False,
CoilExtension->.2,FlatCoil->True,EndPlate->0,PhysicalLength->.8,DrawCoils->True};

MagnetSpec["TestBend"]={Width->.63,Height->.406,PoleWidth->.13,Gap->.04,
CoilGap->.05,CoilWidth->.15,CoilHeight->.083,Type->Htype,CurvedPole->False,
CoilExtension->.2,FlatCoil->True,EndPlate->0,PhysicalLength->.8,DrawCoils->True};

(* 上はBendの場合。右辺のパラメータの意味は名前から推量される通りです。
ちなみにDrawCoils->Trueとするとコイルの絵も描いてくれますが、VectorWorks@Rがアホなのでちゃんとは描きません。
あしからず。EndPlateはエンドプレートの厚みです。*)

MagnetSpec["OldBTQuad"]={Width->.45,Height->.45,CrossSection->{Circle[.45/2]}};

(* 上はQuadの場合。右辺のパラメータは断面形状を指定します。
CrossSection->{...}を指定するとWidth, Heightにかかわらず、...の中のGraphics Primitive(Line, Circle 等)
で指定されるgraphicsを断面形状として絵を描いてくれます*)

Get["/users/kikuchim/KEKB/BT/drawmagvw3d.sad"]; (* SAD Scriptの読み込み*)
DrawMagnets3D["a"]; (* ファイル名 "a"にVectorScriptを書き出します*)

(* ちなみにMagnetSpec, MagnetTypeを定義しなくてもデフォルトのパラメータを使って適当に絵を描きます。
バグ情報はご遠慮なくお寄せ下さい。*)

尚ここで用いているdrawmagvw3d.sadは以下の様なものです。ファイルとして添付してあります。


添付ファイル: filedrawmagvw3d.sad 34件 [詳細]

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-09-07 (木) 21:23:23