AUTOCAD LT2007にコマンドを送る方法は?

解決


cherry  2008-08-21 00:23:23  No: 145113

VB2008にてAUTOCADのコマンドプロンプトにコマンドを送りたいのですがつまづいてます。
以前VB6で作成したものをVB2008にバージョンアップをしました。
AppActivate ("AutoCAD")
このあとどのようにしてコマンドを送ったらよいかわかりません。
VB6の時は
SendKeysで以下コマンドを送っていました。
よろしくお願いします。


やじゅ  2008-08-21 01:18:14  No: 145114

そこらへんは変更しなくてもいけるかと・・・
SendKeys.Send(xxxx)

VB6のSendKeysと同じ事を行うには?
http://dobon.net/vb/dotnet/vb6/sendkeys.html


魔界の仮面弁士  2008-08-21 01:19:51  No: 145115

> VB2008にてAUTOCADのコマンドプロンプトにコマンドを送りたいのですがつまづいてます。
「AutoCAD」であれば、New AcadApplication して、そこから操作できそうですが、
「AutoCAD LT」だと、そうした操作には対応していないでしょうね。

> SendKeys
対応するのは、SendKeys.Send() / SendKeys.SendWait() メソッドです。


cherry  2008-08-21 01:50:26  No: 145116

CADはLT2007。OSはXP。最近PCを新しくしたのですが以前のXPで動いていました。VB6も手元になくなり、仕方なく2008 Expressでバージョンアップしたものが下記です。ポリラインを選択してボタンをクリックすると面積と坪数が表示するというものです。
現在はボタンを押しても反応がなく、直後にCADコマンドに"script"を入力し、スクリプトファイルを指定してもう一度ボタンをおすと一応面積、坪数は表示するのですが。以前はポリラインをクリックしてボタンを押しただけで面積、坪数が表示できていました。
初心者なので対処の仕方がわかりません。

Private Sub kyuseki_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles kyuseki.Click
        Dim Sname As String
        Dim Mname As String
        Dim Menseki As String
        Dim zoku As String

        'UPGRADE_WARNING: オブジェクト Mname の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        Mname = "c:\myprogram\面積表示\面積表示.mpr"
        Sname = "c:\myprogram\面積表示\面積表示.scr"

        'UPGRADE_WARNING: オブジェクト Sname の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        FileOpen(1, Sname, OpenMode.Output)

        PrintLine(1, "region p ")
        'UPGRADE_WARNING: オブジェクト Mname の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        PrintLine(1, "massprop l  y " & Mname)
        PrintLine(1, "u")
        PrintLine(1, "u")
        PrintLine(1, "filedia 1")
        FileClose(1)

        AppActivate("AutoCad")
        System.Windows.Forms.SendKeys.SendWait("filedia 0" & Chr(13) & "script" & Chr(13) & Sname & Chr(13))

        'UPGRADE_WARNING: オブジェクト Mname の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        FileOpen(1, Mname, OpenMode.Input)
        While VB.Left(zoku, 2) <> "面積"
            Input(1, zoku)

        End While
        FileClose(1)

        'UPGRADE_WARNING: オブジェクト Menseki の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        Menseki = VB.Right(zoku, 17)
        'UPGRADE_WARNING: オブジェクト Menseki の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        Menseki = LTrim(Menseki)

        'UPGRADE_WARNING: オブジェクト Menseki の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        menseki_kekka.Text = CStr(System.Math.Round(Menseki * 0.000001, 2))
        'UPGRADE_WARNING: オブジェクト Menseki の既定プロパティを解決できませんでした。 詳細については、'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"' をクリックしてください。
        tubo_kekka.Text = CStr(System.Math.Round(System.Math.Round(Menseki * 0.000001, 2) * 0.3025, 2))


魔界の仮面弁士  2008-08-21 03:15:53  No: 145117

元の VB6 コードを見せてもらった方が、話が早いかな…。

*.frm (あるいは *.bas) をメモ帳等で開いて、上記 .NET コードに
該当する箇所を提示してみてください。


やじゅ  2008-08-21 04:27:24  No: 145118

Chr(13)  → vbCrlf としてみたらどうでしょうか?
VB.NETでは、Chr(13) & Chr(10)と2つで改行を見なすから


cherry  2008-08-21 20:18:06  No: 145119

皆さん、いろいろとありがとうございました。
皆さんから教えていただいたことを参考に修正し、無事動くことができました。
不安定なとこもありますがLTなのでこれが限度かと・・・。
助かりました!


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加