見出し画像

法面記号(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つのパラメーターを設定。

画像1

コードで使う変数名には頭に"P"を追加してるようですが、そういう仕様なのかな。(解説文を見つけられず、よく分かっていません。)
横棒の本数も設定できるようにしようとも思いましたが、今回はこれでいいや。

画像2

さくさく描けます。

プラグインに登録してオブジェクト化する方法は、バージョンが少し古いですが先にリンクしたVS手習い帖を参考にしてください。

2点型オブジェクト、思ったより簡単でした。もっと早く作ればよかったなー。(これ、VWのツールにデフォルトでありそうな気もしましたが。)

ちなみにツールアイコンは26×20ピクセルで作れば読み込めるようなので、キャプチャしてサイズ調整しました。とりあえずはこれで。

画像3

プラグインとサンプルファイルはここに置いておきます。


この記事が気に入ったらサポートをしてみませんか?