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

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

選択したブロックの名前をクリップボードにコピーするマクロ
いつもお世話になっております。
画面上で選択したブロックの名前を、クリップボードにコピーするマクロの作成をお願いできますでしょうか?
使用バージョンはacad2019です。
よろしくお願いいたします。
  • みかん
  • 2019/01/17 (Thu) 13:51:38
Re: 選択したブロックの名前をクリップボードにコピーするマクロ
lispが使えるのなら直接エクセルやワードにブロック名を書き出せますが、
そういうことを想定していますか?
マクロではブロックの名前を取り出すこともクリップボードを扱うことができません。
  • zukki-
  • 2019/01/17 (Thu) 15:20:58
Re: 選択したブロックの名前をクリップボードにコピーするマクロ
lispだとこんな感じ

;エクセルの場合
(defun bn2xl (/ xl bn ename)
(vl-load-com)
(setq xl (vlax-create-object "EXCEL.Application"))
(vlax-put-property xl 'visible :vlax-true)
(vlax-invoke-method (vlax-get-property xl 'workbooks) 'add)

(while
(progn
(setvar 'errno 0)
(setq ename (car (entsel "\nr-click is exit.")))
(cond
((= (getvar 'errno) 52)
nil
)
((= (getvar 'errno) 7)
(prompt "\nnothig is selected.")
t
)
((not (setq bn (cdr (assoc 2 (entget ename)))))
(prompt "\nnot block is selected.")
t
)
(bn
(vlax-put-property (vlax-get-property xl 'activecell)
'value2
bn
)
(vlax-invoke-method (vlax-get-property (vlax-get-property xl 'activecell)
'offset
1
0
)
'activate
)
)
)
)
)

(vlax-release-object xl)
)


;クリップボードの場合
(defun bn2cb (/ cb bn ename)
(vl-load-com)
(setq cb (vlax-get-property
(vlax-get-property
(vlax-create-object "htmlfile")
'ParentWindow
)
'ClipBoardData
)
)

(while
(progn
(setvar 'errno 0)
(setq ename (car (entsel "\nr-click is exit.")))
(vlax-invoke-method cb 'cleardata "text")
(cond
((= (getvar 'errno) 52)
nil
)
((= (getvar 'errno) 7)
(prompt "\n...")
(prompt "\nnothig is selected.")
(prompt "\nclipboard is cleared.")
(prompt "\n...")
t
)
((not (setq bn (cdr (assoc 2 (entget ename)))))
(prompt "\n...")
(prompt "\nnot block is selected.")
(prompt "\nclipboard is cleared.")
(prompt "\n...")
t
)
(bn
(vlax-invoke-method cb 'setdata "text" bn)
(prompt "\n...")
(prompt (strcat "\nblock name is " bn "."))
(prompt "\nclipboard data is setted.")
(prompt "\n...")
t
)
)
)
)

(vlax-release-object cb)
)
  • zukki-
  • 2019/01/17 (Thu) 19:04:07
Re: 選択したブロックの名前をクリップボードにコピーするマクロ
返信遅れてしまい申し訳ありません。
lispを使えばできるんですね。

しかし、現時点ではlispに関しては勉強不足のため使用は想定しておらず、
今後lispに関して学ぶ機会があれば参考にさせて頂きたく思っております。

お教え頂きありがとうございました。
  • みかん
  • 2019/01/21 (Mon) 09:45:36

返信フォーム






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