★から★までのコードがどうしても成立しません、★以外は線分としてコードが成立するのですが
★から★を入れると成立しません。どう構築したいいのでしょうか、宜しくお願いします。
エクセルでCVSファイルの数値を線分として図面に記入するためのコードになります。
説明不足ですが、宜しくお願いします。
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
' LineData用の変数です。
Dim cadLineData As New zwDrawCAD.LineData
Dim cadStartPoint As zwDrawCAD.DPoint = cadLineData.Start
Dim cadEndPoint As zwDrawCAD.DPoint = cadLineData.End
'とりあえず線のスタート点は(100,100)にしてます。
Const X As Integer = 100 'cadStartPoint.x = 100
Const Y As Integer = 100 'cadStartPoint.y = 100
Const xx As Integer = 5
Const yy As Integer = 6
Dim len As Integer 'TextBox1に入力された線の長さ
Dim angle As Double 'TextBox2に入力された角度 単位は度
Dim ansx As Integer '計算された、xの座標
Dim ansy As Integer '計算された、yの座標
★ Dim ddd(5, 6) As Integer 'TEXTの階数
xx = 5
yy = 6
FILETIME = "c:\DummyData.csv"
Open Filename For Input As #1
For i = 1 To yy
For j = 1 To xx
Input #1, ddd(xx, yy)
Next j
Next i
★ Close #1
len = CDbl(TextBox5.Text / 2)
angle = CDbl(TextBox2.Text + 90)
ansx = X + len * (Math.Cos(angle / 180 * Math.PI)) '終点のx座標
ansy = Y + len * (Math.Sin(angle / 180 * Math.PI)) '終点のy座標
cadStartPoint.x = 100
cadStartPoint.y = 100
cadEndPoint.x = ansx
cadEndPoint.y = ansy
' 参照したオブ ジェクトを解放します。
System.Runtime.InteropServices.Marshal.ReleaseComObject(cadStartPoint)
' アクティブなDocumentを参照します。
Dim cadDocument As zwDrawCAD.Document = cadApplication.ActiveDocument
' 現在の作図属性を参照します。
Dim cadCurrentDraw As zwDrawCAD.DrawData = cadDocument.CurrentDraw
' 現在のレイヤ、線種、線幅、線色を設定します。
cadLineData.LayerNo = cadCurrentDraw.LayerNo
cadLineData.PenStyle = cadCurrentDraw.PenStyle
cadLineData.PenWidth = cadCurrentDraw.PenWidth
cadLineData.PenColor = cadCurrentDraw.PenColor
' 参照したオブジェクトを解放します。
System.Runtime.InteropServices.Marshal.ReleaseComObject(cadCurrentDraw)
' データベースを参照します。
Dim cadDataBase As zwDrawCAD.CADDB = cadDocument.DataBase
' Undo情報を設定します。
cadDataBase.SetDelimitter("始点座標(100,100) 終点座標((ansx,ansy) の線分")
' 追加した要素の参照用変数です。
Dim cadAddPrimitive As zwDrawCAD.Primitive
' 要素を追加します。
cadAddPrimitive = cadDataBase.Add(cadLineData)
' 参照したオブジェクトを解放します。
System.Runtime.InteropServices.Marshal.ReleaseComObject(cadAddPrimitive)
System.Runtime.InteropServices.Marshal.ReleaseComObject(cadLineData)
System.Runtime.InteropServices.Marshal.ReleaseComObject(cadDataBase)
System.Runtime.InteropServices.Marshal.ReleaseComObject(cadDocument)
プログラムは見ていません、気になった点だけ....
No1さんが既に指摘していますがxx,yyは定数として宣言されていますので値の代入はできません。
xx = 5
yy = 6
For~Next文について
For i = 1 To yy
For j = 1 To xx
Input #1, ddd(xx, yy)
Next j
Next i
この場合のループカウンタはiとjとなりますxxとyyはループ中も変化しません(定数宣言されてるし...)
また、変数iとjがどこにも宣言されていません。
↓↓↓↓↓
dim i As Integer
dim j As Integer
For i = 1 To yy
For j = 1 To xx
Input #1, ddd(i, j)
Next j
Next i