

今回は、外変の続きNO3です。
点を1つ指定したらどうなるのかを試してみたいと思います。
与えられたJWC_TEMP.txtのデータの読み方、加工方法
AutoHotkeyで一行目の「hq」を削除
Loop, Read, JWC_TEMP.TXT, temp.txt
{
if (A_LoopReadLine <> "hq")
FileAppend, %A_LoopReadLine%`n
}
hs レイヤーの縮尺
hs 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 100 1
New: C#で平行四辺形を描く
namespace JW_para
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//get Data
string[] xy;
double x, y;
xy = get_XY();
x = Convert.ToDouble(xy[1]);
y = Convert.ToDouble(xy[2]);
double A = Convert.ToDouble(textBox1.Text);
double B = Convert.ToDouble(textBox2.Text);
double C = Convert.ToDouble(textBox3.Text);
double px = B / Math.Tan(Math.PI * C / 180);
string p0=string.Format("{0} {1}",x ,y);
string p1=string.Format("{0} {1}",x+px ,y+B);
string p2=string.Format("{0} {1}",x+px+A ,y+B);
string p3=string.Format("{0} {1}",x+A ,y);
string s0 = p0+" "+p1;
string s1 = p1+" "+p2;
string s2 = p2+" "+p3;
string s3 = p3+" "+p0;
File.WriteAllText(@"JWC_TEMP.TXT", s0 + Environment.NewLine); //File上書き
File.AppendAllText(@"JWC_TEMP.TXT", s1 + Environment.NewLine);
File.AppendAllText(@"JWC_TEMP.TXT", s2 + Environment.NewLine);
File.AppendAllText(@"JWC_TEMP.TXT", s3 + Environment.NewLine);
//アプリケーションを終了する
Application.Exit();
}
//座標取得 hp1
private string[] get_XY()
{
string str = "";
string[] arr;
StreamReader sr = new StreamReader(@"temp.txt");
while ((str = sr.ReadLine()) != null)
{
if (str.Contains("hp1"))
{
arr = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
return arr;
}
}
sr.Close();
return null;
}
}
}
1点を指示して、図形を描く
AutoHotkeyで円・四角・3角
Batのコード:
REM テスト用のMainBat
REM #jww
REM #cd
REM #0配置点を指示して下さい。(L)free (R)Read
REM #e
start /w G:\App\Autohotkey\AutoHotkeyU64.exe jww.ahk
Copy TEMP.txt JWC_TEMP.txt
REM #0配置点を指示して下さい。(L)free (R)Read
REM #0が点を指示しろという命令です。
start /w G:\App\Autohotkey\AutoHotkeyU64.exe jww.ahk
これが、AutoHotkyの「Jww.ahk」を動かせという命令です。
AutoHotkeyのコード:
FileDelete,TEMP.txt
i := 0
Loop, Read, JWC_TEMP.txt, TEMP.txt
{
i++
if(i<>1){ ;一行目削除
FileAppend, %A_LoopReadLine%`n
}
}
FileAppend, ci 0 0 30`n, TEMP.txt
;Rec
FileAppend, 30 -30 30 30`n, TEMP.txt
FileAppend, 30 30 -30 30`n, TEMP.txt
FileAppend, -30 30 -30 -30`n, TEMP.txt
FileAppend, -30 -30 30 -30`n, TEMP.txt
;Triangle
FileAppend, 0 30 -25.981 -15`n, TEMP.txt
FileAppend, -25.981 -15 25.981 -15`n, TEMP.txt
FileAppend, 25.981 -15 0 30`n, TEMP.txt
直角に曲がった線描く
:線を引く @echo off REM #jww REM #e (echo 0 0 50 0 echo 50 0 50 50 ) > jwc_temp.txt
複数行のEchoを( )でくくれば、すべてTxtに書き込みできました。


コメント