長谷川: 2006.7.16 04:06:30 |
AutoCAD VBAプログラミング講座 ありがとうございました。
感謝感謝です。
和書でAutoCAD VBAプログラミングの解説書は皆無に近く、本当に参考になりました。
洋書ですと、多くの分厚いAutoCAD VBAプログラミング解説書があるにもかかわらず、翻訳されたもの、和書では見あたりません。
悲しむべき事態だと思います。
そういう事態の中で、今回のAutoCAD VBAプログラミング講座記事は、貴重で、大変参考となるものです。
できればより詳しい解説書として出版されますよう願うしだいです。
ありがとうございました。 |
SeaGate: 2006.7.17 19:24:47 |
長谷川さん、コメントありがとうございます。
AutoCAD VBAプログラミング講座では
AutoCAD特有の処理はあまり書けませんでしたので、
続編はいかがですか? > CAD&CGマガジン編集部(^^ゞ
それよりも私の体力が持つのだろうか... |
親方: 2007.2.27 22:47:51 |
はじめまして。
仕事で急遽autocadを扱うことなり、
検索で辿りつきました。
autocad vba講座参考にさせていただいております。ぜひ書籍化してほしい。
質問等あったら、書き込んでいいですか? |
SeaGate: 2007.2.28 22:53:53 |
親方様(何か響きが格好いいですね)、はじめまして。何がしかのお役に立てたなら幸いです。質問ですか?...最近はあまりAutoCAD使ってないので...(^^ゞ |
親方: 2007.4.13 19:34:30 |
初心者的な質問かもしれません。
autocad上に半径40の円を
excelからexcel座標どおりに配置します。
どのコマンドを使用したらよいのでしょうか。
教えていただきたいです。
|
SeaGate: 21:47:08 |
親方さん、こんにちわ。VBAで、って言うことですよね。別館の「第6回 図形の作成と編集」
http://sigbox2.web.fc2.com/
vba06.html
辺りで説明しているのですが、Excelから座標値 x, y, zを取得し、半径をrとすると、以下のような感じになります。
Dim center(0 To 2) As Double
center(0) = x
center(1) = y
center(2) = z
Dim objCircle As AcadCircle
Set objCircle = ThisDrawing.ModelSpace.AddCircle(center(), r) |
親方: 2007.4.14 07:40:00 |
excelのvbaエディタ上から実行すると、
ThisDrawingが定義されてません、というメッセが
出るんだす(;;
参照設定が欠けてるんかなあ。 |
SeaGate: 08:59:48 |
ExcelからAutoCADをコントロールしようとされているのですか?なら、「第14回 Microsoft Excelとの連携(2)」のページです。
http://sigbox2.web.fc2.com/
vba14.html
Excelと連携する場合は、AutoCAD VBA単独で完結するプログラムよりも少し難易度が上がりますね。PlotAcadプロシージャを、先のコメントのようにAddCircleメソッドを使用して以下のように書き換えればいいのではないかと思います。
Dim objCircle As AutoCAD.AcadCircle
Set objCircle = AcadDoc.ModelSpace.AddCircle(p(), r)
第14回のサンプルではポリラインを作図しているため、z座標や円の半径rがありませんので、プログラム中で付け加える必要があります。 |
親方: 2007.4.15 21:00:59 |
丁寧な回答、ありがとうございます。
明日会社にいったら、さっそく試してみます。
今後ともよろしくお願い致します。 |
親方: 21:04:28 |
丁寧な回答、ありがとうございます。
明日会社にいったら、さっそく試してみます。
今後ともよろしくお願い致します。 |
親方: 2007.4.16 19:40:03 |
エラーが出てしまいます。
下記の誤りを指摘して頂きたいと思います。
PlotAcad(p() As Double)の中で円を描くため、
3要素の数字が必要と思い
GetCellの中を以下のような記述に変えてみました。
Dim p() As Double
<途中略>
ReDim Preserve p(0 To i * 3 + 2)
p(i * 3) = x
p(i * 3 + 1) = y
p(i * 3 + 2)=0 'p(i * 3 + 2)=0をzにしようと思って書いてみました。
<途中略>
PlotAcad(p() As Double)以下は、
上記教えて下さったとおりに書いてみました。
ちなみにエクセルに入力されている座標は、2次元です。
|
SeaGate: 2007.4.17 00:41:32 |
サンプルはポリラインなので、For...Nextの中で座標値を蓄えて、For...Nextを抜けてから1つの配列変数で複数のX,Y座標を一括してPlotAcadプロシージャに引き渡しているのですが、円の場合はFor...Nextの中でセルを読み取るたびにX,Y,Z座標値をPlotAcadプロシージャに引き渡すような感じになると思います。(第6回 図形の作成と編集参照)
Dim p(0 To 2)
For row = 2 To 65536
cell = Sheet1.Cells(row, 1).Value
If IsEmpty(cell) Then
Exit For
Else
x = CDbl(Sheet1.Cells(row, 1).Value)
y = CDbl(Sheet1.Cells(row, 2).Value)
z = CDbl(Sheet1.Cells(row, 3).Value)
Call PlotAcad(p())
End If
Next row |
おやかた: 20:19:55 |
円の配置、うまくいきました。
ブロックを上記の座標値どおりに配置したいと思っています。
違うファイルであらかじめ描画したモデルを(例えば釘)、
座標値どおりに円を配置したファイルに、同じ座標値に釘を配置したいと思っています。
こんなことって、できるのでしょうか。。。 |
SeaGate: 22:42:56 |
親方さん、こんにちわ。取り敢えず出来たようで何よりです。ブロックを配置できるか?と聞かれたら、私自身はやったことはないのですが、出来ないはずはないだろうと思います。まずはExcelとの連携は考えずに、1つのブロックを挿入する方法をAutoCADのヘルプなどで調べてマスターし、徐々に機能を膨らませていくのがよいと思います。
|
親方: 2007.5.1 21:39:39 |
勉強を続ければわかることかもしれませんが、
autocad vbaとvisual lispのちがいをあげるとすれば、
どういうことがいえるのでしょうか・・・
それぞれの特徴は?といったほうがエエのかな。 |
SeaGate: 2007.5.2 22:42:15 |
一言では言い表わせないですが(^^ゞLISPは普通の人ならAutoCAD以外でお目にかかることはほとんどないでしょう。VBAはExcelやWordでも勉強したことが活かせるかも知れません。ただし、VBAの将来は不透明です。後継環境は提供されるでしょうけど。LISPはそんなことは超越してますが。 |
オヤカタ: 2007.5.22 21:11:05 |
以下のオペレーティングを、VBAで置き換えようと考えています。
挿入→ブロック→名前→挿入位置指定
* 挿入位置指定は上記関数から読み込もうとしています。
ヘルプ機能を読み進めているのですが、
それらしいところにたどり着きません・・・
なにかアドバイスを御願いします。 |
SeaGate: 2007.5.26 02:37:11 |
オヤカタさん、こんにちわ。ヘルプなどを見ればある程度はお答えできるかもしれないのですが、このブログで書いている通り、PCが壊れて現在新しいPCのセットアップのためAutoCADが使用できません。Excelみたいにマクロを記録できればいいんですけど。でも、Excel 2007にしたらVBAマクロがどこに行ったのかわかりません...(^^ゞ |
おやかた: 2007.6.19 21:58:34 |
こんばんは、
いつもほんまにお世話になっております。
またまた質問なんですが、
insertblockコマンドについて、
使用ブロックname欄にstring型の文字列を引っ張ってこようとしたのですが、
エラーがでてしまいます。
なぜでしょうか…
|
SeaGate: 2007.6.20 21:02:05 |
おやかたさん、こんにちわ。それだけでは何とも判断のしようがないですね。ステップ実行などで文字列変数の値がどうなっているか確認するなど、デバッグモードを有効に活用してみてください。 |
oenkdtxc6: 2013.8.9 12:31:38 |
あなたは単に将来ジェーン、2 つのグッチ ブーツであるその時間のストレッチ。貴様スタイル提供する、あなたのニーズに最適を選択することも可能だが多数します。サブリミナル電源: 強力なラップトップまたはコンピューターを提供していますターボ充電とを変更するあなたの人生の良い !-ダウンロードが完了 !サブリミナル オーディオ化成功コーチもアンソニー ・ ロビンズ、Derren の灰色の手段によって心の達人と世界トップクラスのスポーツ選手、タイガー意味で普及しています。それがどんなに長くかかるの pharmicudical 対応します。今日、敦煌、設定、基本的な観光がさらに、正規の考古学的な雑用になるし始めています。
PARKER 万年筆
, parker ボールペン
, parker 万年筆
現在このように風邪で販売状況であなたの住民は通常一人でいる。ラックにはボッテガヴェネタ、プラスチック製のキャリアバッグ、組織の準備をきれいにするためのスペース、および/または毎週数取得、すぐに開始、ブルガリ着色プラダメガネは、春シーズンの結果に完成選択。バーバリーのファッションバーバリーコンセントが長い皇族として、推定長寿さらにタイプのほとんどの人々の狩猟によって望まれています。先に行くと、あなた自身の健康やあなたの率直の適性に関する心配は、あなたは、医師と異なる医療カウンセラーに相談してください。あなたが興味がある場合は最低のダイヤモンドは明らかに大人に見える。
parker ボールペン
, プラダ 財布
, ダコタバッグ
実際に、コーチのハンドバッグ彼らした得た網状、ジャーナル 30million ドルについては、ここで。フレンドリーなインスタンスのアルバム、倉庫のサーブへあなたの一度供給を取る。さらに、革新的な医療の土台が何丁度動作同じように、にきびのための証明された適切な治療は、実際の皮膚皮は言います。外科医の医療専門家。多様なブーツや靴驚くべき回職業を通じて、また地域と容易に非常に重要な外観の個人的な技術の様々 なも存在の期間。ロレンツォ ・ ギアンマーコ。Themse 表現する誰かの典型的な傾斜です。
ダコタバッグ
, プラダメンズ
2012 教育無視する手首、その印象的な信念と大丈夫の需要を得ての最新のデザインを起動します。あなたが言うとき私は「スニーカー」自動的に使い古されたウェルネスとフィットネス シューズのいくつか想像してください。しかし、通常中真実と遠くない話の完全な LV の多くを感じることがあります。あなた自身のため根黒状態のボーダー経験 8 の後部のトンを裁判所、最初の約 500 の十年月下地は舟状骨の骨から造られました。歴史的な人々 を全体の世界、アフリカの内部のような (サハラ以南、すべて黒コスチュームの人々) このインスピレーションも所有している、世代を得るいくつかの時間を割くを通って天性の才能と認識 <>] それ成してに係る星である招待畏敬の念を正当化するマップ、有名人と自分の仕事との深刻な関係を彫る。
|
感謝感謝です。
和書でAutoCAD VBAプログラミングの解説書は皆無に近く、本当に参考になりました。
洋書ですと、多くの分厚いAutoCAD VBAプログラミング解説書があるにもかかわらず、翻訳されたもの、和書では見あたりません。
悲しむべき事態だと思います。
そういう事態の中で、今回のAutoCAD VBAプログラミング講座記事は、貴重で、大変参考となるものです。
できればより詳しい解説書として出版されますよう願うしだいです。
ありがとうございました。
AutoCAD VBAプログラミング講座では
AutoCAD特有の処理はあまり書けませんでしたので、
続編はいかがですか? > CAD&CGマガジン編集部(^^ゞ
それよりも私の体力が持つのだろうか...
仕事で急遽autocadを扱うことなり、
検索で辿りつきました。
autocad vba講座参考にさせていただいております。ぜひ書籍化してほしい。
質問等あったら、書き込んでいいですか?
autocad上に半径40の円を
excelからexcel座標どおりに配置します。
どのコマンドを使用したらよいのでしょうか。
教えていただきたいです。
http://sigbox2.web.fc2.com/ vba06.html
辺りで説明しているのですが、Excelから座標値 x, y, zを取得し、半径をrとすると、以下のような感じになります。
Dim center(0 To 2) As Double
center(0) = x
center(1) = y
center(2) = z
Dim objCircle As AcadCircle
Set objCircle = ThisDrawing.ModelSpace.AddCircle(center(), r)
ThisDrawingが定義されてません、というメッセが
出るんだす(;;
参照設定が欠けてるんかなあ。
http://sigbox2.web.fc2.com/ vba14.html
Excelと連携する場合は、AutoCAD VBA単独で完結するプログラムよりも少し難易度が上がりますね。PlotAcadプロシージャを、先のコメントのようにAddCircleメソッドを使用して以下のように書き換えればいいのではないかと思います。
Dim objCircle As AutoCAD.AcadCircle
Set objCircle = AcadDoc.ModelSpace.AddCircle(p(), r)
第14回のサンプルではポリラインを作図しているため、z座標や円の半径rがありませんので、プログラム中で付け加える必要があります。
明日会社にいったら、さっそく試してみます。
今後ともよろしくお願い致します。
明日会社にいったら、さっそく試してみます。
今後ともよろしくお願い致します。
下記の誤りを指摘して頂きたいと思います。
PlotAcad(p() As Double)の中で円を描くため、
3要素の数字が必要と思い
GetCellの中を以下のような記述に変えてみました。
Dim p() As Double
<途中略>
ReDim Preserve p(0 To i * 3 + 2)
p(i * 3) = x
p(i * 3 + 1) = y
p(i * 3 + 2)=0 'p(i * 3 + 2)=0をzにしようと思って書いてみました。
<途中略>
PlotAcad(p() As Double)以下は、
上記教えて下さったとおりに書いてみました。
ちなみにエクセルに入力されている座標は、2次元です。
Dim p(0 To 2)
For row = 2 To 65536
cell = Sheet1.Cells(row, 1).Value
If IsEmpty(cell) Then
Exit For
Else
x = CDbl(Sheet1.Cells(row, 1).Value)
y = CDbl(Sheet1.Cells(row, 2).Value)
z = CDbl(Sheet1.Cells(row, 3).Value)
Call PlotAcad(p())
End If
Next row
ブロックを上記の座標値どおりに配置したいと思っています。
違うファイルであらかじめ描画したモデルを(例えば釘)、
座標値どおりに円を配置したファイルに、同じ座標値に釘を配置したいと思っています。
こんなことって、できるのでしょうか。。。
autocad vbaとvisual lispのちがいをあげるとすれば、
どういうことがいえるのでしょうか・・・
それぞれの特徴は?といったほうがエエのかな。
挿入→ブロック→名前→挿入位置指定
* 挿入位置指定は上記関数から読み込もうとしています。
ヘルプ機能を読み進めているのですが、
それらしいところにたどり着きません・・・
なにかアドバイスを御願いします。
いつもほんまにお世話になっております。
またまた質問なんですが、
insertblockコマンドについて、
使用ブロックname欄にstring型の文字列を引っ張ってこようとしたのですが、
エラーがでてしまいます。
なぜでしょうか…
PARKER 万年筆
, parker ボールペン
, parker 万年筆
現在このように風邪で販売状況であなたの住民は通常一人でいる。ラックにはボッテガヴェネタ、プラスチック製のキャリアバッグ、組織の準備をきれいにするためのスペース、および/または毎週数取得、すぐに開始、ブルガリ着色プラダメガネは、春シーズンの結果に完成選択。バーバリーのファッションバーバリーコンセントが長い皇族として、推定長寿さらにタイプのほとんどの人々の狩猟によって望まれています。先に行くと、あなた自身の健康やあなたの率直の適性に関する心配は、あなたは、医師と異なる医療カウンセラーに相談してください。あなたが興味がある場合は最低のダイヤモンドは明らかに大人に見える。
parker ボールペン
, プラダ 財布
, ダコタバッグ
実際に、コーチのハンドバッグ彼らした得た網状、ジャーナル 30million ドルについては、ここで。フレンドリーなインスタンスのアルバム、倉庫のサーブへあなたの一度供給を取る。さらに、革新的な医療の土台が何丁度動作同じように、にきびのための証明された適切な治療は、実際の皮膚皮は言います。外科医の医療専門家。多様なブーツや靴驚くべき回職業を通じて、また地域と容易に非常に重要な外観の個人的な技術の様々 なも存在の期間。ロレンツォ ・ ギアンマーコ。Themse 表現する誰かの典型的な傾斜です。
ダコタバッグ
, プラダメンズ
2012 教育無視する手首、その印象的な信念と大丈夫の需要を得ての最新のデザインを起動します。あなたが言うとき私は「スニーカー」自動的に使い古されたウェルネスとフィットネス シューズのいくつか想像してください。しかし、通常中真実と遠くない話の完全な LV の多くを感じることがあります。あなた自身のため根黒状態のボーダー経験 8 の後部のトンを裁判所、最初の約 500 の十年月下地は舟状骨の骨から造られました。歴史的な人々 を全体の世界、アフリカの内部のような (サハラ以南、すべて黒コスチュームの人々) このインスピレーションも所有している、世代を得るいくつかの時間を割くを通って天性の才能と認識 <>] それ成してに係る星である招待畏敬の念を正当化するマップ、有名人と自分の仕事との深刻な関係を彫る。