この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

1ヶブロック名変更と連続回転複写で
お世話になります
2件アドバイスお願いいたします。
下記2件は LT2014で使用させていただいたコマンドです
AutoCAD2023で使用出来ないでしょうか アドバイスよろしくお願いいたします。
TdMacros.lspとLISPには対応しています。

1ヶブロック名変更(ブロックが複数あり1ヶのブロックの名前を変更する)
'_AI_STARTAPP "C:/TOFOLDER/AUTOCA~1/ACAD-R~1/ブロッ~4/1ヶブ~1.VBS";

連続回転複写(連続で複写後回転する)
*^C^C$m=setenv;to;0;$(nth,$(getenv,to),_select;\_copybase;\p;;,_pasteblock;\_rotate;l;;@;\_explode;l;)setenv;to;1;
  • THIG
  • 2026/06/29 (Mon) 09:34:41
Re: 1ヶブロック名変更と連続回転複写で
ブロック名変更については、VBSの内容が分からないので、なんとも・・・
基点などそのままで、複数ある同じブロックのうち、指示した1個だけ名前変更ということでしょうか?

連続回転複写については、どういうコマンドラインで動かなくなるのか、教えていただけますか?
他の質問を見ると、setenv・getenvは使用できているようなので、TdMacros.lspのロードに問題はなさそうです。
それなのに、動かないと書かれているマクロに共通点がなく、原因が分かりません。
2024バージョンでは、問題なく動くのですが。
  • LUNE
  • 2026/07/01 (Wed) 09:32:10
Re: 1ヶブロック名変更と連続回転複写で
お世話になります
長文ですみません
1ヶブロック名変更のVBSを開いて 下記に表示しました。
LT2014でお世話になりました AutoCAD2023で使用できないかと思いまして。

連続回転複写については すみません動作いたしました。

Dim Acad
'このステートメントは必ずCreateObjectよりも
'前の位置に挿入する。
'========== ***** ↓↓↓↓↓ ***** ==========
If MustRun Then WScript.Quit '二重起動しているか?
'========== ***** ↑↑↑↑↑ ***** ==========

'Set Acad = CreateObject("AcadRemocon.Body")
'以下何らかの処理をするコード
Call Main

Sub Main()
Set Acad = CreateObject("AcadRemocon.Body") 'AcadRemoconオブジェクト作成
If Not Acad.acSelect("ブロックを選択", Cnt) Then Er: Exit Sub
If Cnt = 0 Then Exit Sub
If Not Acad.acDxfOut("", "PREV", , , "2000") Then Er: Exit Sub
If Not Acad.DxfExtract(Cnt, Arr, "ENTITIES", "", "INSERT", "2") Then Er: Exit Sub
If Cnt = 0 Then Exit Sub
ReDim Aft(Cnt)
For i = 1 To Cnt
Nashi = True
If i > 1 Then
For j = 1 To i - 1
If Arr(1, j) = Arr(1, i) Then Nashi = False: Exit For
Next
End If
If Nashi Then
If Not Acad.GetString("変更後のブロック名を入力してください" & vbCrLf & "変更前の名前 = [ " & Arr(1, i) & " ]", Aft(i), Arr(1, i)) Then Er: Exit Sub
End If
Next
If Not Acad.acPostCommand("undo be ") Then Er: Exit Sub
If Not Acad.acPostCommand("-LAYER a d BAKUBAKU^M ^C^C^C") Then Er: Exit Sub
If Not Acad.acPostCommand("-LAYER a s BAKUBAKU^M ^C^C^C") Then Er: Exit Sub
If Not Acad.acPostCommand("-LAYER U *^MT *^MON *^M ") Then Er: Exit Sub
If Not Acad.acPostCommand("GRAPHSCR ") Then Er: Exit Sub
If Not Acad.acPostCommand("zoom e ") Then Er: Exit Sub
If Not Acad.acPostCommand("copybase non 0,0 all r p ") Then Er: Exit Sub
If Not Acad.acPostCommand("erase p ") Then Er: Exit Sub
Mukou = False
For i = 1 To Cnt
If Not Arr(1, i) = Aft(i) Then
Nashi = True
If i > 1 Then
For j = 1 To i - 1
If Arr(1, j) = Arr(1, i) Then Nashi = False: Exit For
Next
End If
If Nashi Then
If Not Acad.acPostCommand("-rename b " & Arr(1, i) & "^M" & Aft(i) & "^M") Then Er: Exit Sub
If Not Acad.acGetHistory(His, "-rename") Then Er: Exit Sub
If InStr(His, "無効") > 0 Then Mukou = True
End If
End If
Next
If Not Acad.acPostCommand("pasteclip non 0,0 ") Then Er: Exit Sub
If Not Acad.acPostCommand("-LAYER a r BAKUBAKU^M ^C^C^C") Then Er: Exit Sub
If Not Acad.acPostCommand("-LAYER a d BAKUBAKU^M ^C^C^C") Then Er: Exit Sub
If Not Acad.acPostCommand("zoom p undo e ") Then Er: Exit Sub

If Mukou Then Acad.acShowMessage "幾つかのブロック名を変更できませんでした。" & vbCrLf & "コマンドラインで確認して下さい", vbExclamation

End Sub
'エラー処理
Sub Er()
'ユーザーによるキャンセル
If Acad.ErrNumber = vbObjectError + 1000 Then
'ここにキャンセル時の処理を追加
Else
'エラー内容表示
Acad.ShowError
End If
End Sub
Public Function MustRun()
'実行している環境が64ビット環境か、32ビット環境か判断し、
'64ビット環境であれば、32ビット環境で自身の再起動を試みる。
'そして、Trueを返す。32ビット環境であれば、Falseを返す。
Const WSHOST = "wscript.exe"
Dim objWshShell 'WshShell オブジェクト
Dim ExecCmd '実行するコマンドライン

Set objWshShell = WScript.CreateObject("WScript.Shell")
If objWshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") = "AMD64" Then
ExecCmd = objWshShell.ExpandEnvironmentStrings("%WINDIR%") & _
"\SysWOW64\" & WSHOST & " " & _
WScript.ScriptFullName
objWshShell.Exec(ExecCmd)
MustRun = True
Else 'x86
MustRun = False
End If

Set objWshShell = Nothing
Set ExecCmd = Nothing

End Function
  • THIG
  • 2026/07/01 (Wed) 10:36:42
Re: 1ヶブロック名変更と連続回転複写で
ブロックの件、別の件名にて書き込みました。
https://totthi.bbs.fc2bbs.net/?act=reply&tid=16966007#25021542

〇全く違う質問内容を同時に書くのは好ましくないです。
(別の件名で書き込みましょう)

〇縺ゅ≠縲√%繧後 ッ譁 ュ怜喧縲 縺代 ョ繧オ繝ウ繝 繝ォ縲 縺ァ縺吶 ュ シ ∵ ュ」縺 縺 繧ィ繝ウ繧 ウ繝シ繝 縺ァ隱ュ縺ソ霎シ縺セ縺ェ縺 縺ィ縲 縺薙 ョ繧医 ≧縲 縺ォ シ 托 シ 撰 シ 仙 ュ 励 ョ ケ 繧 ッ 繧 ソ 繧 ャ 繝 ャ 縺 ョ 闌 ォ 縲 縺 ッ 繧 ゅ 縺 ッ 隱 ソ 縺 ケ 繧 医 ≧ 縺 鯉 縺 ェ 縺 縺 輔 縺 ゅ ∵ 嚊 繧 峨 縺 ョ 荳 world 縺 ク シ チ
  • Hamu
  • 2026/07/01 (Wed) 17:31:04
Re: 1ヶブロック名変更と連続回転複写で
Hamuさま ありがとうございます 確認いたします。

ご指摘いただいた件 申し訳ありません。
  • THIG
  • 2026/07/01 (Wed) 17:44:33
Re: 1ヶブロック名変更と連続回転複写で
Hamuさま 動作を確認しました ご教授ありがとうございました。

不備な点 申し訳ありません。
  • THIG
  • 2026/07/02 (Thu) 09:34:07

返信フォーム






プレビュー (投稿前に内容を確認)