法面記号(Vectorscriptプラグイン)
役所からもらった敷地図が紙ベースだったので(CADデータがどこかにあるはずだけど・・・)スキャンデータを下敷きにとりあえずの敷地図を起こすことになったのですが、法面記号がないと間が抜けるし、一つ一つコピペして向きとサイズ調整して、というのは面倒くさすぎるので初めての2点型オブジェクトをつくることに挑戦。
作り方はこれを参考にしました。
2点型オブジェクトにすると、作図原点と角度は勝手に調整してくれるので、基本的にはLineLength(2点間の距離)を受け取ってそれを利用して作図させるだけです。
コードはこちら(プラグイン化したので最初のCONSTはコメントアウトしてます。)
PROCEDURE DrawNorimen;
{ CONST
PLineLength = 100.0;
PPropotion = 0.6;
PBunkatu=12;}
VAR
AWidth ,LL: Real ;
BEGIN
AWidth := PLineLength *PPropotion /8;
LL := PLineLength/PBunkatu;
MoveTo( LL, -AWidth*4 );
LineTo( LL, AWidth*4 );
MoveTo( LL*2, -AWidth*3 );
LineTo( LL*2, AWidth*3 );
MoveTo( LL*3, -AWidth*2 );
LineTo( LL*3, AWidth*2 );
MoveTo( LL*4, -AWidth*1 );
LineTo( LL*4, AWidth*1 );
MoveTo( LL*4,0 );
LineTo( PLineLength-LL, 0 );
END;
Run( DrawNorimen );
長さに対する幅の比率(PPropotion:初期設定0.8)と分割数(PBunkatu:初期設定ではラインを12分割して、1番目の点から4番目の点まで4本の横棒を描いて、4番目から11番目まで縦線を描いています。両端はクリアランス。)の2つのパラメーターを設定。
コードで使う変数名には頭に"P"を追加してるようですが、そういう仕様なのかな。(解説文を見つけられず、よく分かっていません。)
横棒の本数も設定できるようにしようとも思いましたが、今回はこれでいいや。
さくさく描けます。
プラグインに登録してオブジェクト化する方法は、バージョンが少し古いですが先にリンクしたVS手習い帖を参考にしてください。
2点型オブジェクト、思ったより簡単でした。もっと早く作ればよかったなー。(これ、VWのツールにデフォルトでありそうな気もしましたが。)
ちなみにツールアイコンは26×20ピクセルで作れば読み込めるようなので、キャプチャしてサイズ調整しました。とりあえずはこれで。
プラグインとサンプルファイルはここに置いておきます。
この記事が気に入ったらサポートをしてみませんか?