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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
【Jw_cad 外部変形】線の作図(2)
前回の外部変形「線の作図」をもう少し機能を追加していきます。
 
まずは、水平線・垂直線・角度線の作図を行えるようにします。軸角を考慮しますので、実質これらは同じプログラムになりますが、分けておいた方が迷わないので分けておく事にします(水平線=0°+軸角、垂直線=90°+軸角、角度線=任意角度+軸角)。角度線の場合には起動オプション指定で角度入力を行う事になります。基本操作としては、通過点指定→始点指定→終点指定→作図、という感じです。
 
それではまずバッチファイルから。
p036_線の作図.bat
REM p036:線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)2点指定 実行プログラム -----
:EXE-1
start /w p036.exe /R0
GOTO END
REM
REM ----- 2)複数点指定 実行プログラム -----
:EXE-2
start /w p036.exe /R1
GOTO END
REM
REM ----- 3)終点指定 実行プログラム -----
:EXE-3
start /w p036.exe /R2
GOTO END
REM
REM ----- 4)座標入力 実行プログラム -----
:EXE-4
start /w p036.exe /R3 %2 %3 %4 %5
GOTO END
REM
REM ----- 5)水平線 実行プログラム -----
:EXE-5
start /w p036.exe /R4
GOTO END
REM
REM ----- 6)垂直線 実行プログラム -----
:EXE-6
start /w p036.exe /R5
GOTO END
REM
REM ----- 7)角度線 実行プログラム -----
:EXE-7
start /w p036.exe /R6 %2
GOTO END
REM
REM ----- 8)設定 実行プログラム -----
:EXE-8
start /w p036.exe
GOTO END
REM
REM
REM ----- ----- ----- ----- ----- -----
REM #jww
REM #cd
REM #hc 線を作図する外部変形です。機能を選択して下さい(1〜8)
REM #hm2点間線|1)2点指定|2)複数点指定|3)終点指定|4)座標入力|5)水平線|6)垂直線|7)角度線|8)設定|
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 #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #hr
REM #e
REM
:END
REM 終了
 
 
プロジェクト「p036」の準備を行います。「C:\DelphiProgram\jww」フォルダの中に「p036」というフォルダを作成し、Windowsのエクスプローラ等で「p035」内のファイルを「p036」の中へコピーします。(※移動しないよう注意)
Delphi6を起動します。メニュー「ファイル」→「プロジェクトを開く」を実行し、「C:\DelphiProgram\jww\p036」内の「p035.dpr」を開きます。メニュー「プロジェクト」→「オプション」を実行し、下記の設定を行います。
[アプリケーション]頁
 タイトル
p036−線の作図
[ディレクトリ/条件]頁
 パス及びディレクトリ
C:\DelphiProgram\jww\p036

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

「/R4」オプション起動=水平線
「/R5」オプション起動=垂直線
「/R6」オプション起動=角度線
という具合で実行しています。角度線の場合はその次に入力角度が入っています。軸角も考慮します。通過点を通る線分で、始点から垂直に下ろした点から、終点から垂直に下ろした点まで、の線分を作図します。

プログラムのアルゴリズムとしては、線分の傾き角度(水平線=0°+軸角、垂直線=90°+軸角、角度線=入力角度+軸角)逆向きに原点を中心に回転すると考えて、線分が水平であると考え、逆回転した始点のX座標,逆回転通過点Y座標 及び 終点のX座標,逆回転通過点Y座標 を算出し、再度、角度分回転を掛けた座標によって作図を行います。(各座標値は軸角による処理を施された後の値ですので注意してプログラミングします)
 
Unit1.pas
(・・・前略・・・)
// 起動時
procedure TForm1.FormShow(Sender: TObject);
(・・・)
  w1,w2,w3,w4,w5,w6,w7,w8,w9 : double ;
begin
(・・・)
  else if (ParamStr(1) = '/R3') then begin
  (・・・)
  end
  else if (ParamStr(1) = '/R4')
     or(ParamStr(1) = '/R5')
     or(ParamStr(1) = '/R6') then begin
   // 水平線・垂直線・角度線
   w9 := JG_Jikukaku ;
   if (ParamStr(1) = '/R5') then w9 := w9 + 90.0
   else if (ParamStr(1) = '/R6') then w9 := w9 + SDbl(ParamStr(2)) ;
   // 通過点
   Rev(w7,w8, JG_IPoints[1].x,JG_IPoints[1].y, 0.0,0.0, -w9);
   // 始点
   Rev(w5,w6, JG_IPoints[2].x,JG_IPoints[2].y, 0.0,0.0, -w9);
   w6 := w8 ;
   Rev(w1,w2, w5,w6, 0.0,0.0, w9);
   // 終点
   Rev(w5,w6, JG_IPoints[3].x,JG_IPoints[3].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\p036」内に作成された「p036.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.