某所で見つけた質問で、LT2019でも動くマクロ + VBS with AcadRemocon を持ってるので、公開するです。
大したVBSじゃないですが、「マクロと組み合わせることでLT2019でも使える」がウリです。
※LT2019では、VBS単体でのAcadRemoconの使用は非常に困難ですが、マクロで補助すれば、使えるパターンもあります。
①AcadRomoconをインストールしておく。
(バージョンは3.2で大丈夫)
②下記のVBSのコードを「文字入れ替え.vbs」という名前のファイルにして、
AutoCADのサポートフォルダに保存(サポートフォルダの場所はオプションで確認)
③AutoCADに起動用マクロを登録
^C^Cselect;$M=$(if,$(getvar,cmdactive),\)AI_STARTAPP "文字入れ替え.vbs"^M
使用方法
マクロを実行して、文字を2つ選択し、確定。
※文字を1個づつ確定してはダメ。2個選択して確定。
※選択した文字が2個以外なら、何も起こらない。
※連続モードは不可。
以下がVBSのコード
Dim Acad
If MustRun Then WScript.Quit 'MustRun制作者の極楽鳥さんに感謝
Call Main
Sub Main()
Set Acad = CreateObject("AcadRemocon.Body")
fileName = Acad.GetWindowsTemp() & "AcadRemocon.dxf"
Acad.Wait (150)
Acad.acPostCommand "justifytext^Mp^M^M^C^Cfiledia 0 dxfout^M" & fileName & "^Mo^Mp^M^Mv^M2000^M16^My^M^C^Cfiledia^M1^M"
Acad.Wait (1000)
Acad.DxfExtract Cnt, Arr, "ENTITIES", "", "TEXT", "1"
If Not Cnt = 2 Then Exit Sub
Temp = Arr(1, 1)
Arr(1, 1) = Arr(1, 2)
Arr(1, 2) = Temp
Acad.DxfUpdate(Arr)
Acad.Wait (150)
Acad.acPostCommand "^C^Cerase^MP^M^Mucs^Mw^M-insert^M*" & fileName & "^Mnon 0,0^M1^M0^Mucs^Mp^M"
End Sub
Public Function MustRun()
Const WSHOST = "wscript.exe"
Dim objWshShell
Dim ExecCmd
Set objWshShell = WScript.CreateObject("WScript.Shell")
If objWshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") = "AMD64" Then
ExecCmd = objWshShell.ExpandEnvironmentStrings("%WINDIR%") & _
"\SysWOW64\" & WSHOST & " " & _
Chr(34) & WScript.ScriptFullName & Chr(34)
objWshShell.Exec(ExecCmd)
MustRun = True
Else
MustRun = False
End If
Set objWshShell = Nothing
Set ExecCmd = Nothing
End Function
文字入れ替え(マクロ+VBS)
- Lon
- 2019/08/07 (Wed) 19:49:47