|
前回の補助線の作図にもう少し追加を行っていきたいと思います。まずは既に作成した分割点の作図を補助線用として追加します。それではバッチファイルを用意します。
|
p040_補助線の作図.bat |
REM p040:補助線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)2点指定 実行プログラム -----
:EXE-1
start /w p040.exe /R1
GOTO END
REM
REM ----- 2)水平線 実行プログラム -----
:EXE-2
start /w p040.exe /R2
GOTO END
REM
REM ----- 3)垂直線 実行プログラム -----
:EXE-3
start /w p040.exe /R3
GOTO END
REM
REM ----- 4)角度線 実行プログラム -----
:EXE-4
start /w p040.exe /R4 %2
GOTO END
REM
REM ----- 5)平行線 実行プログラム -----
:EXE-5
start /w p040.exe /R5
GOTO END
REM
REM ----- 6)直交線 実行プログラム -----
:EXE-6
start /w p040.exe /R6
GOTO END
REM
REM ----- 7)傾き線 実行プログラム -----
:EXE-7
start /w p040.exe /R7 %2
GOTO END
REM
REM ----- 8)その他 -----
:EXE-8
REM
GOTO END
REM
REM ----- 9)設定 実行プログラム -----
:EXE-9
start /w p040.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 通過点を指示して下さい。(L)free (R)Read
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 角度を入力して下さい。[°]
REM #1 通過点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:5 -----平行線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:6 -----直交線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #hr
REM #e
REM
REM #:7 -----傾き線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #c 傾き角度を入力して下さい。[°]
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:8 -----その他-----
REM #h/p040a_補助線の作図.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 終了 |
p040a_補助線の作図.bat |
REM p040a:補助線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)点 実行プログラム -----
:EXE-1
start /w p040.exe /R8
GOTO END
REM
REM ----- 2)円1 実行プログラム -----
:EXE-2
start /w p040.exe /R9
GOTO END
REM
REM ----- 3)円2 実行プログラム -----
:EXE-3
start /w p040.exe /R10
GOTO END
REM
REM ----- 4)分割点 実行プログラム -----
:EXE-4
start /w p040.exe /R11
GOTO END
REM
REM ----- 9)戻る -----
:EXE-9
REM
GOTO END
REM
REM
REM ----- ----- ----- ----- ----- -----
REM #jww
REM #cd
REM #hc 補助線を作図する外部変形です。機能を選択して下さい(1〜9)
REM #hm補助線の作図|1)点|2)円1|3)円2|4)分割点|##|##|##|##|9)戻る|
REM
REM #:1 -----点-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1 配置点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:2 -----円1-----
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 #:3 -----円2-----
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 #bz
REM #gn
REM #h1
REM #hc 範囲選択をして下さい。
REM #g1
REM #hr
REM #e
REM
REM #:9 -----戻る-----
REM #h/p040_補助線の作図.bat
REM #e
REM
:END
REM 終了 |
|
プロジェクト「p040」の準備を行います。「C:\DelphiProgram\jww」フォルダの中に「p040」というフォルダを作成し、Windowsのエクスプローラ等で「p039」内のファイルを「p040」の中へコピーします。(※移動しないよう注意)。
Delphi6を起動します。メニュー「ファイル」→「プロジェクトを開く」を実行し、「C:\DelphiProgram\jww\p040」内の「p039.dpr」を開きます。メニュー「プロジェクト」→「オプション」を実行し、下記の設定を行います。
[アプリケーション]頁
タイトル | p040−補助線の作図 |
[ディレクトリ/条件]頁
パス及びディレクトリ | C:\DelphiProgram\jww\p040 |
メニュー「ファイル」→「プロジェクトに名前を付けて保存」
「C:\DelphiProgram\jww\p040」の中に「p040.dpr」として保存
「C:\DelphiProgram\jww\p040」の中に「p039.〜」のファイルが残っていますので、Windowsのエクスプローラ等で削除します。
プロジェクトマネージャを表示しコード画面の左側にドッキングしておきます。
◆
それでは、以前の分割点のプログラムを見ながら追加していきます。
|
Unit1.pas |
(・・・前略・・・)
type
TForm1 = class(TForm)
(・・・)
private
(・・・)
c10_r,c10_h,c10_a : double ;
c11_n : integer ;
procedure OpenDatFile ;
(・・・)
// データファイルを読み込む
procedure TForm1.OpenDatFile ;
(・・・)
c10_a := 0.0;
c11_n := 2;
(・・・)
ReadLn(F, s); c10_a:= SDbl(s);
ReadLn(F, s); c11_n:= SInt(s);
(・・・)
// データファイルを保存する
procedure TForm1.SaveDatFile ;
(・・・)
WriteLn(F, FloatToStr(c10_a));
WriteLn(F, IntToStr(c11_n));
(・・・)
// 起動時
procedure TForm1.FormShow(Sender: TObject);
(・・・)
LabelA3.Visible := False; EditA3.Visible := False;
if (ParamCount >= 1) then begin
if (ParamStr(1) = '/R10') then begin
(・・・)
sflag := True ;
end
else if (ParamStr(1) = '/R11') then begin
// 分割点
LabelA1.Visible := True; EditA1.Visible := True;
LabelA1.Caption := '分割数';
EditA1.Text := FloatToStr(c11_n);
PageControl1.ActivePage := TabSheet1 ;
sflag := True ;
end;
(・・・)
// [OK]
procedure TForm1.Button1Click(Sender: TObject);
var
flag : Boolean ;
w1,w2,w3,w4,w5,w6 : double ;
i,j,k : integer ;
begin
(・・・)
if (ParamCount >= 1) then begin
flag := False;
if (ParamStr(1) = '/R10') then begin
(・・・)
flag := True;
end
else if (ParamStr(1) = '/R11') then begin
c11_n := SInt(EditA1.Text);
if (c11_n < 2)or(c11_n > 10000) then exit;
flag := True;
end;
//
if (flag) then begin
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
SendMem('bz'); // 図寸モード
S_PCol(9,0);
// 線データの分割
for i:=0 to JW_EntLineN-1 do begin
with JW_EntLine[i] do begin
w1 := Dist(x1,y1,x2,y2)/c11_n;
w2 := Angle(x2-x1,y2-y1);
w3 := x1;
w4 := y1;
for j:=1 to c11_n-1 do begin
w3 := w3 + w1*Cos(w2);
w4 := w4 + w1*Sin(w2);
S_Ten(w3,w4);
end;
end;
end;
// 円データの分割
for i:=0 to JW_EntCircN-1 do begin
with JW_EntCirc[i] do begin
w2 := 0.0;
for j:=1 to c11_n do begin
w3 := cx + cr*Cos(w2);
w4 := cy + cr*Sin(w2);
S_Ten(w3,w4);
w2 := w2 + 2.0*Pi/c11_n ;
end;
end;
end;
// 弧・楕円データの分割
for i:=0 to JW_EntArcN-1 do begin
with JW_EntArc[i] do begin
w1 := sa/180.0*Pi ;
w2 := ea - sa ;
while (w2 <= 0.0) do w2 := w2 + 360.0;
while (w2 > 360.0) do w2 := w2 - 360.0;
k := c11_n - 1 ;
if (Abs(w2-360.0) <= _LIMITN) then begin
k := c11_n;
w1:= 0.0;
end;
w2 := w2/c11_n/180*Pi ;
for j:=1 to k do begin
w1 := w1 + w2 ;
w3 := cr *Cos(w1);
w4 := cr*he*Sin(w1);
Rev(w5,w6,w3,w4,0.0,0.0,ka);
w3 := cx + w5 ;
w4 := cy + w6 ;
S_Ten(w3,w4);
end;
end;
end;
end;
(・・・後略・・・) |
|
メニュー「ファイル」→「すべて保存」を行い
メニュー「プロジェクト」→「再構築」を行いエラー表示されない事を確認して下さい。
Windowsのエクスプローラ等で、「C:\DelphiProgram\jww\p040」内に作成された「p040.exe」をフォルダ「Gapp」内へコピーします。外部変形を実行して動作確認をしてみて下さい。
◆
次に、同心円の作図を行うようにします。幾つかパターンはあると思いますが、ここでは、開始半径・増分・作図数の入力を行うようにします。まずはバッチファイルから。
|
p040a_補助線の作図.bat |
REM p040a:補助線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)点 実行プログラム -----
:EXE-1
start /w p040.exe /R8
GOTO END
REM
REM ----- 2)円1 実行プログラム -----
:EXE-2
start /w p040.exe /R9
GOTO END
REM
REM ----- 3)円2 実行プログラム -----
:EXE-3
start /w p040.exe /R10
GOTO END
REM
REM ----- 4)分割点 実行プログラム -----
:EXE-4
start /w p040.exe /R11
GOTO END
REM
REM ----- 5)同心円 実行プログラム -----
:EXE-5
start /w p040.exe /R12
GOTO END
REM
REM ----- 9)戻る -----
:EXE-9
REM
GOTO END
REM
REM
REM ----- ----- ----- ----- ----- -----
REM #jww
REM #cd
REM #hc 補助線を作図する外部変形です。機能を選択して下さい(1〜9)
REM #hm補助線の作図|1)点|2)円1|3)円2|4)分割点|5)同心円|##|##|##|9)戻る|
REM
REM #:1 -----点-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1 配置点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:2 -----円1-----
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 #:3 -----円2-----
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 #bz
REM #gn
REM #h1
REM #hc 範囲選択をして下さい。
REM #g1
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 #hr
REM #e
REM
REM #:9 -----戻る-----
REM #h/p040_補助線の作図.bat
REM #e
REM
:END
REM 終了 |
|
次にプログラム追加修正です。
|
Unit1.pas |
(・・・前略・・・)
type
TForm1 = class(TForm)
(・・・)
private
(・・・)
c11_n : integer ;
c12_r,c12_d : double ;
c12_n : integer ;
procedure OpenDatFile ;
(・・・)
// データファイルを読み込む
procedure TForm1.OpenDatFile ;
(・・・)
c11_n := 2;
c12_r := 100.0;
c12_d := 10.0;
c12_n := 2;
(・・・)
ReadLn(F, s); c11_n:= SInt(s);
ReadLn(F, s); c12_r:= SDbl(s);
ReadLn(F, s); c12_d:= SDbl(s);
ReadLn(F, s); c12_n:= SInt(s);
(・・・)
// データファイルを保存する
procedure TForm1.SaveDatFile ;
(・・・)
WriteLn(F, IntToStr(c11_n));
WriteLn(F, FloatToStr(c12_r));
WriteLn(F, FloatToStr(c12_d));
WriteLn(F, IntToStr(c12_n));
(・・・)
// 起動時
procedure TForm1.FormShow(Sender: TObject);
(・・・)
LabelA3.Visible := False; EditA3.Visible := False;
if (ParamCount >= 1) then begin
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
(・・・)
end
else if (ParamStr(1) = '/R12') then begin
// 同心円
LabelA1.Visible := True; EditA1.Visible := True;
LabelA2.Visible := True; EditA2.Visible := True;
LabelA3.Visible := True; EditA3.Visible := True;
LabelA1.Caption := '開始半径';
LabelA2.Caption := '半径増分';
LabelA3.Caption := '作図数';
EditA1.Text := FloatToStr(c12_r);
EditA2.Text := FloatToStr(c12_d);
EditA3.Text := IntToStr(c12_n);
PageControl1.ActivePage := TabSheet1 ;
sflag := True ;
end;
(・・・)
// [OK]
procedure TForm1.Button1Click(Sender: TObject);
(・・・)
if (ParamCount >= 1) then begin
flag := False;
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
(・・・)
end
else if (ParamStr(1) = '/R12') then begin
c12_r := SDbl(EditA1.Text);
c12_d := SDbl(EditA2.Text);
c12_n := SInt(EditA3.Text);
if (c12_r <= _LIMIT) then exit;
if (Abs(c12_d) <= _LIMIT) then exit;
if (c12_n < 1)or(c12_n > 10000) then exit;
flag := True;
end;
//
if (flag) then begin
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
(・・・)
end
else if (ParamStr(1) = '/R12') then begin
w1 := JG_IPoints[1].x ;
w2 := JG_IPoints[1].y ;
w3 := c12_r ;
for i:=1 to c12_n do begin
S_Circle(w1,w2,w3);
w3 := w3 + c12_d ;
if (w3 <= _LIMIT) then break;
end;
end;
(・・・後略・・・) |
|
メニュー「ファイル」→「すべて保存」を行い
メニュー「プロジェクト」→「再構築」を行いエラー表示されない事を確認して下さい。
◆
次に、水平線・垂直線・角度線の連続版と平行線・直交線・傾き線の連続版を追加します。しかし項目は残り3つ。6つも入りませんし、これ以上メニューを増やしたくないので、水平線・垂直線・角度線をまとめて連続角度線、平行線・直交線・傾き線をまとめて連続傾き線、とします。水平線・平行線の場合は角度を「0」に、垂直線・直交線の場合は角度を「90」にしてもらうようにします。それではバッチファイルから。
|
p040a_補助線の作図.bat |
REM p040a:補助線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)点 実行プログラム -----
:EXE-1
start /w p040.exe /R8
GOTO END
REM
REM ----- 2)円1 実行プログラム -----
:EXE-2
start /w p040.exe /R9
GOTO END
REM
REM ----- 3)円2 実行プログラム -----
:EXE-3
start /w p040.exe /R10
GOTO END
REM
REM ----- 4)分割点 実行プログラム -----
:EXE-4
start /w p040.exe /R11
GOTO END
REM
REM ----- 5)同心円 実行プログラム -----
:EXE-5
start /w p040.exe /R12
GOTO END
REM
REM ----- 6)連続角度線 実行プログラム -----
:EXE-6
start /w p040.exe /R13
GOTO END
REM
REM ----- 7)連続傾き線 実行プログラム -----
:EXE-7
start /w p040.exe /R14
GOTO END
REM
REM ----- 9)戻る -----
:EXE-9
REM
GOTO END
REM
REM
REM ----- ----- ----- ----- ----- -----
REM #jww
REM #cd
REM #hc 補助線を作図する外部変形です。機能を選択して下さい(1〜9)
REM #hm補助線の作図|1)点|2)円1|3)円2|4)分割点|5)同心円|6)連続角度線|7)連続傾き線|##|9)戻る|
REM
REM #:1 -----点-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1 配置点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:2 -----円1-----
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 #:3 -----円2-----
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 #bz
REM #gn
REM #h1
REM #hc 範囲選択をして下さい。
REM #g1
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 #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 #hr
REM #e
REM
REM #:7 -----連続傾き線-----
REM #hf
REM #zs
REM #zc
REM #zz
REM #zw
REM #gn
REM #1ln 基準線を指示して下さい。
REM #2 通過点を指示して下さい。(L)free (R)Read
REM #hr
REM #e
REM
REM #:9 -----戻る-----
REM #h/p040_補助線の作図.bat
REM #e
REM
:END
REM 終了 |
|
次にプログラム追加修正です。
|
Unit1.pas |
(・・・前略・・・)
type
TForm1 = class(TForm)
(・・・)
private
(・・・)
c12_n : integer ;
c13_a,c13_d : double ;
c13_n : integer ;
c14_a,c14_d : double ;
c14_n : integer ;
procedure OpenDatFile ;
(・・・)
// データファイルを読み込む
procedure TForm1.OpenDatFile ;
(・・・)
c12_n := 2;
c13_a := 0.0;
c13_d := 10.0;
c13_n := 2;
c14_a := 0.0;
c14_d := 10.0;
c14_n := 2;
(・・・)
ReadLn(F, s); c12_n:= SInt(s);
ReadLn(F, s); c13_a:= SDbl(s);
ReadLn(F, s); c13_d:= SDbl(s);
ReadLn(F, s); c13_n:= SInt(s);
ReadLn(F, s); c14_a:= SDbl(s);
ReadLn(F, s); c14_d:= SDbl(s);
ReadLn(F, s); c14_n:= SInt(s);
(・・・)
// データファイルを保存する
procedure TForm1.SaveDatFile ;
(・・・)
WriteLn(F, IntToStr(c12_n));
WriteLn(F, FloatToStr(c13_a));
WriteLn(F, FloatToStr(c13_d));
WriteLn(F, IntToStr(c13_n));
WriteLn(F, FloatToStr(c14_a));
WriteLn(F, FloatToStr(c14_d));
WriteLn(F, IntToStr(c14_n));
(・・・)
// 起動時
procedure TForm1.FormShow(Sender: TObject);
(・・・)
LabelA3.Visible := False; EditA3.Visible := False;
if (ParamCount >= 1) then begin
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
(・・・)
end
else if (ParamStr(1) = '/R12') then begin
(・・・)
end
else if (ParamStr(1) = '/R13') then begin
// 連続角度線
LabelA1.Visible := True; EditA1.Visible := True;
LabelA2.Visible := True; EditA2.Visible := True;
LabelA3.Visible := True; EditA3.Visible := True;
LabelA1.Caption := '角度[°]';
LabelA2.Caption := '距離増分';
LabelA3.Caption := '作図数';
EditA1.Text := FloatToStr(c13_a);
EditA2.Text := FloatToStr(c13_d);
EditA3.Text := IntToStr(c13_n);
PageControl1.ActivePage := TabSheet1 ;
sflag := True ;
end
else if (ParamStr(1) = '/R14') then begin
// 連続傾き線
LabelA1.Visible := True; EditA1.Visible := True;
LabelA2.Visible := True; EditA2.Visible := True;
LabelA3.Visible := True; EditA3.Visible := True;
LabelA1.Caption := '角度[°]';
LabelA2.Caption := '距離増分';
LabelA3.Caption := '作図数';
EditA1.Text := FloatToStr(c14_a);
EditA2.Text := FloatToStr(c14_d);
EditA3.Text := IntToStr(c14_n);
PageControl1.ActivePage := TabSheet1 ;
sflag := True ;
end;
(・・・)
// [OK]
procedure TForm1.Button1Click(Sender: TObject);
var
flag : Boolean ;
w1,w2,w3,w4,w5,w6,w7 : double ;
(・・・)
if (ParamCount >= 1) then begin
flag := False;
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
(・・・)
end
else if (ParamStr(1) = '/R12') then begin
(・・・)
end
else if (ParamStr(1) = '/R13') then begin
c13_a := SDbl(EditA1.Text);
c13_d := SDbl(EditA2.Text);
c13_n := SInt(EditA3.Text);
while (c13_a < 0.0) do c13_a := c13_a + 360.0;
while (c13_a >= 360.0) do c13_a := c13_a - 360.0;
if (Abs(c13_d) <= _LIMIT) then exit;
if (c13_n < 1)or(c13_n > 10000) then exit;
flag := True;
end
else if (ParamStr(1) = '/R14') then begin
c14_a := SDbl(EditA1.Text);
c14_d := SDbl(EditA2.Text);
c14_n := SInt(EditA3.Text);
while (c14_a < 0.0) do c14_a := c14_a + 360.0;
while (c14_a >= 360.0) do c14_a := c14_a - 360.0;
if (Abs(c14_d) <= _LIMIT) then exit;
if (c14_n < 1)or(c14_n > 10000) then exit;
if (JW_EntLineN = 0) then exit ;
flag := True;
end;
//
if (flag) then begin
if (ParamStr(1) = '/R10') then begin
(・・・)
end
else if (ParamStr(1) = '/R11') then begin
(・・・)
end
else if (ParamStr(1) = '/R12') then begin
(・・・)
end
else if (ParamStr(1) = '/R13') then begin
w7 := (JG_Jikukaku + c13_a)/180.0*Pi ;
w5 := JG_IPoints[1].x ;
w6 := JG_IPoints[1].y ;
for i:=1 to c13_n do begin
w1 := w5 + SENLEN/2.0*Cos(w7);
w2 := w6 + SENLEN/2.0*Sin(w7);
w3 := w5 + SENLEN/2.0*Cos(w7+Pi);
w4 := w6 + SENLEN/2.0*Sin(w7+Pi);
S_Line(w1,w2, w3,w4);
w5 := w5 + c13_d*Cos(w7+0.5*Pi);
w6 := w6 + c13_d*Sin(w7+0.5*Pi);
end;
end
else if (ParamStr(1) = '/R14') then begin
with JW_EntLine[0] do
w7 := Angle(x2-x1,y2-y1)*180.0/Pi;
if (w7 >= 180.0) then
w7 := w7 - 180.0;
w7 := (w7 + c14_a)/180.0*Pi ;
w5 := JG_IPoints[2].x ;
w6 := JG_IPoints[2].y ;
for i:=1 to c14_n do begin
w1 := w5 + SENLEN/2.0*Cos(w7);
w2 := w6 + SENLEN/2.0*Sin(w7);
w3 := w5 + SENLEN/2.0*Cos(w7+Pi);
w4 := w6 + SENLEN/2.0*Sin(w7+Pi);
S_Line(w1,w2, w3,w4);
w5 := w5 + c14_d*Cos(w7+0.5*Pi);
w6 := w6 + c14_d*Sin(w7+0.5*Pi);
end;
end;
(・・・後略・・・) |
|
メニュー「ファイル」→「すべて保存」を行い
メニュー「プロジェクト」→「再構築」を行いエラー表示されない事を確認して下さい。
Windowsのエクスプローラ等で、「C:\DelphiProgram\jww\p040」内に作成された「p040.exe」をフォルダ「Gapp」内へコピーします。外部変形を実行して動作確認をしてみて下さい。
今回のバッチファイルと実行ファイル、及び、ソースファイルについては、Pcataサイトに置いておきますので必要な方はそちらからダウンロードして下さい。
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
M7
Jw_cad
[BACK]
[NEXT]
|