AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
【Jw_cad 外部変形】線の作図(3)
前回の外部変形「線の作図」を更にもう少し機能を追加したいと思います。ある線に対しての平行線・垂直線・傾き線の作図を行いたいとします。
しかし前回で項目数は既に8個使用しており、項目数の最大は9まで。3個追加すると11個になってしまいますので最大数を超えてしまいます。そういった場合には、バッチファイルを分けてしまえば良いのではないかと思います。[その他]ボタンを追加し、それを選択すると別のバッチファイルへ移行。移行した先に新しく機能を追加して[戻る]ボタンも追加していれば、バッチファイルの行き来が出来ると思いますので機能はたくさん作れるのではないかと思います。余りやり過ぎるとどうかとは思いますが・・・。
 
それではバッチファイルから。
p037_線の作図.bat
REM p037:線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)2点指定 実行プログラム -----
:EXE-1
start /w p037.exe /R0
GOTO END
REM
REM ----- 2)複数点指定 実行プログラム -----
:EXE-2
start /w p037.exe /R1
GOTO END
REM
REM ----- 3)終点指定 実行プログラム -----
:EXE-3
start /w p037.exe /R2
GOTO END
REM
REM ----- 4)座標入力 実行プログラム -----
:EXE-4
start /w p037.exe /R3 %2 %3 %4 %5
GOTO END
REM
REM ----- 5)水平線 実行プログラム -----
:EXE-5
start /w p037.exe /R4
GOTO END
REM
REM ----- 6)垂直線 実行プログラム -----
:EXE-6
start /w p037.exe /R5
GOTO END
REM
REM ----- 7)角度線 実行プログラム -----
:EXE-7
start /w p037.exe /R6 %2
GOTO END
REM
REM ----- 8)その他 -----
:EXE-8
REM
GOTO END
REM
REM ----- 9)設定 実行プログラム -----
:EXE-9
start /w p037.exe
GOTO END
REM
REM
REM ----- ----- ----- ----- ----- -----
REM #jww
REM #cd
REM #hc 線を作図する外部変形です。機能を選択して下さい(1〜9)
REM #hm線の作図|1)2点指定|2)複数点指定|3)終点指定|4)座標入力|5)水平線|6)垂直線|7)角度線|8)その他|9)設定|
REM
REM #:1 -----2点指定-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1-始点を指示して下さい。(L)free (R)Read
REM #2終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:2 -----複数点指定-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1-%d点を指示して下さい。(L)free (R)Read
REM #99#
REM #hr
REM #e
REM
REM #:3 -----終点指定-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:4 -----座標入力-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #c 始点座標を入力して下さい。(X座標,Y座標)
REM #c 終点座標を入力して下さい。(X座標,Y座標)
REM #hr
REM #e
REM
REM #:5 -----水平線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1 通過点を指示して下さい。(L)free (R)Read
REM #2 始点を指示して下さい。(L)free (R)Read
REM #3 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:6 -----垂直線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1 通過点を指示して下さい。(L)free (R)Read
REM #2 始点を指示して下さい。(L)free (R)Read
REM #3 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:7 -----角度線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #c 角度を入力して下さい。[°]
REM #1 通過点を指示して下さい。(L)free (R)Read
REM #2 始点を指示して下さい。(L)free (R)Read
REM #3 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:8 -----その他-----
REM #h/p037a_線の作図.bat
REM #e
REM
REM #:9 -----設定-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #hr
REM #e
REM
:END
REM 終了
p037a_線の作図.bat
REM p037a:線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)平行線 実行プログラム -----
:EXE-1
start /w p037.exe /R7
GOTO END
REM
REM ----- 2)直交線 実行プログラム -----
:EXE-2
start /w p037.exe /R8
GOTO END
REM
REM ----- 3)傾き線 実行プログラム -----
:EXE-3
start /w p037.exe /R9 %2
GOTO END
REM
REM ----- 4)戻る -----
:EXE-4
REM
GOTO END
REM
REM
REM ----- ----- ----- ----- ----- -----
REM #jww
REM #cd
REM #hc 線を作図する外部変形です。機能を選択して下さい(1〜4)
REM #hm線の作図|1)平行線|2)直交線|3)傾き線|4)戻る|
REM
REM #:1 -----平行線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #3 始点を指示して下さい。(L)free (R)Read
REM #4 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:2 -----直交線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #3 始点を指示して下さい。(L)free (R)Read
REM #4 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #hr
REM #e
REM
REM #:3 -----傾き線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #c 傾き角度を入力して下さい。[°]
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #3 始点を指示して下さい。(L)free (R)Read
REM #4 終点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:4 -----戻る-----
REM #h/p037_線の作図.bat
REM #e
REM
:END
REM 終了
 
 
プロジェクト「p037」の準備を行います。「C:\DelphiProgram\jww」フォルダの中に「p037」というフォルダを作成し、Windowsのエクスプローラ等で「p036」内のファイルを「p037」の中へコピーします。(※移動しないよう注意)
Delphi6を起動します。メニュー「ファイル」→「プロジェクトを開く」を実行し、「C:\DelphiProgram\jww\p037」内の「p036.dpr」を開きます。メニュー「プロジェクト」→「オプション」を実行し、下記の設定を行います。
[アプリケーション]頁
 タイトル
p037−線の作図
[ディレクトリ/条件]頁
 パス及びディレクトリ
C:\DelphiProgram\jww\p037

メニュー「ファイル」→「プロジェクトに名前を付けて保存」
「C:\DelphiProgram\jww\p037」の中に「p037.dpr」として保存
「C:\DelphiProgram\jww\p037」の中に「p036.〜」のファイルが残っていますので、Windowsのエクスプローラ等で削除します。
プロジェクトマネージャを表示しコード画面の左側にドッキングしておきます。

「/R7」オプション起動=平行線
「/R8」オプション起動=垂直線
「/R9」オプション起動=傾き線
という具合で実行しています。傾き線の場合はその次に入力角度が入っています。ある線に対して云々という機能ですので軸角を考慮する必要はありません。但し、指定した基準線を読み取り、その線の傾き角度を取得して(既に作成してある関数 Angle を使用)、その角度に対して、+0°、+90°、+入力角度、の算出を行います。なお、取得した基準線の傾き角度は、始点・終点が逆になると+180°になりますので、180°以上の場合は 180°を引き算しておくと、始点・終点が逆の場合を考えなくて済みます。それ以外は、既に作成した水平線・垂直線・角度線とほぼ同じです。
 
ここでは行いませんが、あるCADソフトでは、指定した基準線と同じレイヤ・線色・線種・線幅で作図する、というパターンがあります。そのようにしたい場合には、読み取った線分データの線属性を参照すれば良いと思います。
 
Unit1.pas
(・・・前略・・・)
// 起動時
procedure TForm1.FormShow(Sender: TObject);
(・・・)
  w1,w2,w3,w4,w5,w6,w7,w8,w9 : double ;
begin
(・・・)
  else if (ParamStr(1) = '/R4')
     or(ParamStr(1) = '/R5')
     or(ParamStr(1) = '/R6') then begin
  (・・・)
  end
  else if (ParamStr(1) = '/R7')
     or(ParamStr(1) = '/R8')
     or(ParamStr(1) = '/R9') then begin
   // 平行線・直交線・傾き線
   if (JW_EntLineN = 0) then Close ;
   with JW_EntLine[0] do
    w9 := Angle(x2-x1,y2-y1)*180.0/Pi;
   if (w9 >= 180.0) then
    w9 := w9 - 180.0;
   if   (ParamStr(1) = '/R8') then w9 := w9 + 90.0
   else if (ParamStr(1) = '/R9') then w9 := w9 + SDbl(ParamStr(2)) ;
   // 通過点
   Rev(w7,w8, JG_IPoints[2].x,JG_IPoints[2].y, 0.0,0.0, -w9);
   // 始点
   Rev(w5,w6, JG_IPoints[3].x,JG_IPoints[3].y, 0.0,0.0, -w9);
   w6 := w8 ;
   Rev(w1,w2, w5,w6, 0.0,0.0, w9);
   // 終点
   Rev(w5,w6, JG_IPoints[4].x,JG_IPoints[4].y, 0.0,0.0, -w9);
   w6 := w8 ;
   Rev(w3,w4, w5,w6, 0.0,0.0, w9);
   S_Line(w1,w2, w3,w4);
   px := w3 ;
   py := w4 ;
  end;
  SaveDatFile ;
  Close ;
end
(・・・後略・・・)
メニュー「ファイル」→「すべて保存」を行い
メニュー「プロジェクト」→「再構築」を行いエラー表示されない事を確認して下さい。
Windowsのエクスプローラ等で、「C:\DelphiProgram\jww\p037」内に作成された「p037.exe」をフォルダ「Gapp」内へコピーします。外部変形を実行して動作確認をしてみて下さい。
 


設定画面

 
[その他]を選択すると…

 
 
今回のバッチファイルと実行ファイル、及び、ソースファイルについては、Pcataサイトに置いておきますので必要な方はそちらからダウンロードして下さい。
 
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
M7
Jw_cad
 [BACK]
 [NEXT]
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.