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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
【Jw_cad 外部変形】補助線の作図(3)
補助線作図にてグリッド線(目盛線)の要望がありましたので、前回の補助線の作図に追加したいと思います。それではバッチファイルを用意します。
p041_補助線の作図.bat
REM p041:補助線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)2点指定 実行プログラム -----
:EXE-1
start /w p041.exe /R1
GOTO END
REM
REM ----- 2)水平線 実行プログラム -----
:EXE-2
start /w p041.exe /R2
GOTO END
REM
REM ----- 3)垂直線 実行プログラム -----
:EXE-3
start /w p041.exe /R3
GOTO END
REM
REM ----- 4)角度線 実行プログラム -----
:EXE-4
start /w p041.exe /R4 %2
GOTO END
REM
REM ----- 5)平行線 実行プログラム -----
:EXE-5
start /w p041.exe /R5
GOTO END
REM
REM ----- 6)直交線 実行プログラム -----
:EXE-6
start /w p041.exe /R6
GOTO END
REM
REM ----- 7)傾き線 実行プログラム -----
:EXE-7
start /w p041.exe /R7 %2
GOTO END
REM
REM ----- 8)その他 -----
:EXE-8
REM
GOTO END
REM
REM ----- 9)設定 実行プログラム -----
:EXE-9
start /w p041.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/p041a_補助線の作図.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 終了
p041a_補助線の作図.bat
REM p041a:補助線の作図
@echo off
GOTO EXE-%1
REM
REM ----- 1)点 実行プログラム -----
:EXE-1
start /w p041.exe /R8
GOTO END
REM
REM ----- 2)円1 実行プログラム -----
:EXE-2
start /w p041.exe /R9
GOTO END
REM
REM ----- 3)円2 実行プログラム -----
:EXE-3
start /w p041.exe /R10
GOTO END
REM
REM ----- 4)分割点 実行プログラム -----
:EXE-4
start /w p041.exe /R11
GOTO END
REM
REM ----- 5)同心円 実行プログラム -----
:EXE-5
start /w p041.exe /R12
GOTO END
REM
REM ----- 6)連続角度線 実行プログラム -----
:EXE-6
start /w p041.exe /R13
GOTO END
REM
REM ----- 7)連続傾き線 実行プログラム -----
:EXE-7
start /w p041.exe /R14
GOTO END
REM
REM ----- 8)グリッド線 実行プログラム -----
:EXE-8
start /w p041.exe /R15
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)連続傾き線|8)グリッド線|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 #:8 -----グリッド線-----
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/p041_補助線の作図.bat
REM #e
REM
:END
REM 終了
 
プロジェクト「p041」の準備を行います。「C:\DelphiProgram\jww」フォルダの中に「p041」というフォルダを作成し、Windowsのエクスプローラ等で「p040」内のファイルを「p041」の中へコピーします。(※移動しないよう注意)
Delphi6を起動します。メニュー「ファイル」→「プロジェクトを開く」を実行し、「C:\DelphiProgram\jww\p041」内の「p040.dpr」を開きます。メニュー「プロジェクト」→「オプション」を実行し、下記の設定を行います。
[アプリケーション]頁
 タイトル
p041−補助線の作図
[ディレクトリ/条件]頁
 パス及びディレクトリ
C:\DelphiProgram\jww\p041

メニュー「ファイル」→「プロジェクトに名前を付けて保存」
「C:\DelphiProgram\jww\p041」の中に「p041.dpr」として保存
「C:\DelphiProgram\jww\p041」の中に「p040.〜」のファイルが残っていますので、Windowsのエクスプローラ等で削除します。
プロジェクトマネージャを表示しコード画面の左側にドッキングしておきます。
Unit1.pas
(・・・前略・・・)
type
  TForm1 = class(TForm)
 (・・・)
  private
  (・・・)
   c14_a,c14_d : double ;
   c15_d : double ;
   c15_n : integer ;
   procedure OpenDatFile ;
(・・・)
// データファイルを読み込む
procedure TForm1.OpenDatFile ;
(・・・)
  c14_n := 2;
  c15_d := 10.0;
  c15_n := 10;
 (・・・)
   ReadLn(F, s);  c14_n:= SInt(s);
   ReadLn(F, s);  c15_d:= SDbl(s);
   ReadLn(F, s);  c15_n:= SInt(s);
(・・・)
// データファイルを保存する
procedure TForm1.SaveDatFile ;
(・・・)
   WriteLn(F, IntToStr(c14_n));
   WriteLn(F, FloatToStr(c15_d));
   WriteLn(F, IntToStr(c15_n));
(・・・)
// 起動時
procedure TForm1.FormShow(Sender: TObject);
(・・・)
  LabelA3.Visible := False; EditA3.Visible := False;
  if (ParamCount >= 1) then begin
   (・・・)
   else if (ParamStr(1) = '/R14') then begin
   (・・・)
   end
   else if (ParamStr(1) = '/R15') then begin
    // グリッド線
    LabelA1.Visible := True; EditA1.Visible := True;
    LabelA2.Visible := True; EditA2.Visible := True;
    LabelA1.Caption := '間 隔';
    LabelA2.Caption := '作図数(+片側)';
    EditA1.Text := FloatToStr(c15_d);
    EditA2.Text := IntToStr(c15_n);
    PageControl1.ActivePage := TabSheet1 ;
    sflag := True ;
   end;
(・・・)
// [OK]
procedure TForm1.Button1Click(Sender: TObject);
(・・・)
  if (ParamCount >= 1) then begin
   (・・・)
   else if (ParamStr(1) = '/R14') then begin
   (・・・)
   end
   else if (ParamStr(1) = '/R15') then begin
    c15_d := SDbl(EditA1.Text);
    c15_n := SInt(EditA2.Text);
    if (Abs(c15_d) <= _LIMIT) then exit;
    if (c15_n < 1)or(c15_n > 10000) then exit;
    flag := True;
   end;
   //
   if (flag) then begin
    if (ParamStr(1) = '/R10') then begin
    (・・・)
    end
    else if (ParamStr(1) = '/R14') then begin
    (・・・)
    end
    else if (ParamStr(1) = '/R15') then begin
     w7 := JG_Jikukaku/180.0*Pi ;
     w5 := JG_IPoints[1].x + c15_n*c15_d*Cos(w7-0.5*Pi);
     w6 := JG_IPoints[1].y + c15_n*c15_d*Sin(w7-0.5*Pi);
     for i:=-c15_n to c15_n do begin
      w1 := w5 + c15_n*c15_d*Cos(w7);
      w2 := w6 + c15_n*c15_d*Sin(w7);
      w3 := w5 + c15_n*c15_d*Cos(w7+Pi);
      w4 := w6 + c15_n*c15_d*Sin(w7+Pi);
      if ((i mod 5) = 0) then
       S_Ltp(ltp,1)
      else
       S_Ltp(9,0); // 5個毎に指定線種/その他補助線種
      S_Line(w1,w2, w3,w4);
      w5 := w5 + c15_d*Cos(w7+0.5*Pi);
      w6 := w6 + c15_d*Sin(w7+0.5*Pi);
     end;
     w7 := w7 + 0.5*Pi ;
     w5 := JG_IPoints[1].x + c15_n*c15_d*Cos(w7-0.5*Pi);
     w6 := JG_IPoints[1].y + c15_n*c15_d*Sin(w7-0.5*Pi);
     for i:=-c15_n to c15_n do begin
      w1 := w5 + c15_n*c15_d*Cos(w7);
      w2 := w6 + c15_n*c15_d*Sin(w7);
      w3 := w5 + c15_n*c15_d*Cos(w7+Pi);
      w4 := w6 + c15_n*c15_d*Sin(w7+Pi);
      if ((i mod 5) = 0) then
       S_Ltp(ltp,1)
      else
       S_Ltp(9,0); // 5個毎に指定線種/その他補助線種
      S_Line(w1,w2, w3,w4);
      w5 := w5 + c15_d*Cos(w7+0.5*Pi);
      w6 := w6 + c15_d*Sin(w7+0.5*Pi);
     end;
    end;
(・・・後略・・・)
メニュー「ファイル」→「すべて保存」を行い
メニュー「プロジェクト」→「再構築」を行いエラー表示されない事を確認して下さい。
Windowsのエクスプローラ等で、「C:\DelphiProgram\jww\p041」内に作成された「p041.exe」をフォルダ「Gapp」内へコピーします。外部変形を実行して動作確認をしてみて下さい。
 
グリッド線は、軸角を考慮します。
グリッド線は、5個毎に設定した線種で作図し、それ以外は補助線種で作図するようにしています。全て同じ線種であると何個目の線なのか分からなくなってしまいますのでこのようにしています。
 
 


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


 
設定画面

 
補助線の作図についてはこれで終了とします。
 
今回のバッチファイルと実行ファイル、及び、ソースファイルについては、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.