Random Thoughts |
A Nobel Peace Prize? I would KILL for one of those.
|
言語 |
|
|
|
フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27) |
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/11/23 - 19:49:51 |
|
|
|
著者
|
トピック: 3Dスケッチで点を打つマクロ (閲覧数 4153 回) |
|
Matsu
Jr. メンバー
オフライン
投稿: 20
|
|
3Dスケッチで点を打つマクロ
« 投稿日: 1970/01/01 - 09:33:22 » |
|
重心の件ではお世話になりました。Matsuです。
マクロのプログラムを見ても、簡単そうに見えてなかなか難しそうです。言い出
した人が何とかしろ、と言われそうですが、日本語の、ヘルプが欲しいなぁと思
いながら、仕事の合間を見付けてサンプルマクロを探しています。
さて、重心でパーツ・アセンブリ上に点が打てるのを発展させて、マクロを実行
させると、 ダイアログボックスが開いて、XYZの数値を入力、-> 点が挿入され
る。と言うマクロを作ってもらえませんか?(アドインでAutoCADの2D何とかを
使うと、コマンドラインから点や線が数値入力で入れることも発見しましたが3D
ではできないようです。)
実際の操作は、スケッチ -> 3Dスケッチ -> 点を打つ -> プロパティボックスで
数値をマウスでクリックしてそれぞれ入力 -> スケッチ終了です。
あまり、手間は変わりませんが、数値の入力と値の渡し方のサンプルとしたいの
で参考にもしたいです。
ちょっと注文を付けるならば、
初期値が0、0,0。
入力が数値以外ならばエラーが出る。
さらに全角数字でもOK
ならば完璧なのですが・・・。
僕の今の能力では、何から手をつけていいのかわかりません。
(昔C言語と、今は秀丸のマクロしかわかりません。)
あつかましいようで、申し訳有りませんがよろしくおねがいします。
|
|
|
|
webmaster 管理人
議長 カタマリの王様!?
オフライン
投稿: 649
|
|
3Dスケッチで点を打つマクロ
« 返信 #1 投稿日: 1970/01/01 - 09:33:22 » |
|
> 実際の操作は、スケッチ -> 3Dスケッチ -> 点を打つ -> プロパティボックスで
> 数値をマウスでクリックしてそれぞれ入力 -> スケッチ終了です。
> あまり、手間は変わりませんが、数値の入力と値の渡し方のサンプルとしたいの
> で参考にもしたいです。
マクロ記録は使ったことありませんか?
ツール - マクロ - 記録
としてから上記の操作を実際に行います。点を打つ位置は適当で構いません。
操作が終わったら、マクロツールバーの停止ボタン(黒い四角)を押します。
するとマクロの保存ダイアログが出るので適当な名前で保存します。
さらに ツール - マクロ - 編集
として、さっきのファイルを選択すると記録したマクロが表示されます。この中の Part.CreatePoint2の行を Part.CreatePoint2 x, y, z に変更します。これは点の座標を任意に設定するために変数に置き換えただけです。
最後にPart.CreatePoint2の前の行(どこでも良い)に
x = inputbox("X座標", "点の座標入力", 0) / 1000
y = inputbox("Y座標", "点の座標入力", 0) / 1000
z = inputbox("Z座標", "点の座標入力", 0) / 1000
の行を追加して完成です。inputboxという関数はVBAが標準で持っている入力フォームです(詳しくはVBAのヘルプに*日本語で*載ってます)。"/ 1000"が後ろについているのはCreatePoint2がメートル単位で座標を受け付けるからです。
このように作図系のマクロはマクロ記録を使うのがポイントです。この程度であればAPIのヘルプを見る必要もありません。あとはinputboxとmsgboxくらいと基本的なBASICの文法を知っていれば、結構色々作れます。ぜひ挑戦してみてください。
|
webmaster (仕事のカタマリ管理人)
|
|
|
Matsu
Jr. メンバー
オフライン
投稿: 20
|
|
3Dスケッチで点を打つマクロ
« 返信 #2 投稿日: 1970/01/01 - 09:33:22 » |
|
webmasterさま。とても親切にありがとうございました。
マクロの記録を使えば良かったのですね。 基本的なことを忘れていました。VBA
のプログラムは全く初めてなんですが、エディターが素晴らしいですね。かゆい
ところに手が届く感じです。もっと、いろんなことがしたいと思うのですが、サ
ンプルマクロを見てもすごいなぁと感心するばかりです。
さて、早速、マクロを完成させました。後でアップしようと思います。皆さんに
はあまり役立たないかもしれませんが、勉強中の確認ということで許してくださ
い。
2DCAD的な書き方ですが、 僕は、アセンブリで点を打って、その点を利用して合
致をかけたりする時に使います。でも、後で点が邪魔になって仕方なくなるので
すが・・・。
それと、いちいち確認のMsgBoxが出るので、この行を削除するとスムーズに作業
できると思います。
これからもよろしくお願いします。
|
|
|
|
Matsu
Jr. メンバー
オフライン
投稿: 20
|
|
3Dスケッチで点を打つマクロ
« 返信 #3 投稿日: 1970/01/01 - 09:33:22 » |
|
こんな感じのマクロです。暇を見付けて勉強したいです。
Attribute VB_Name = "Draw_3D_Point"
Dim X, Y, Z
Dim Title As String
Sub main()
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc
Part.Insert3DSketch
Title = "3Dスケッチで点を挿入するマクロ"
X = InputBox("X軸の数値を入力" & Chr(13) & Chr(13) & "X : Y : Z :", Title, 0)
Y = InputBox("Y軸の数値を入力" & Chr(13) & Chr(13) & "X : " & X & " Y : Z :", Title, 0)
Z = InputBox("Z軸の数値を入力" & Chr(13) & Chr(13) & "X : " & X & " Y : " & Y & " Z :", Title, 0)
Part.CreatePoint2 X / 1000, Y / 1000, Z / 1000
Part.ClearSelection
Part.InsertSketch
MsgBox "X : " & X & " Y : " & Y & " Z : " & Z & " に点を追加しました。", 64, Title
End Sub
|
|
|
|
webmaster 管理人
議長 カタマリの王様!?
オフライン
投稿: 649
|
|
3Dスケッチで点を打つマクロ
« 返信 #4 投稿日: 1970/01/01 - 09:33:22 » |
|
自作マクロ完成おめでとうございます。自分で作ったプログラムが動くだけで楽しくなりますよね。しかも、使いながら気に入るまでいくらでも改良できるところが、自作のいいところです。
合致の基準に使うとの事ですが、この場合私は参照平面と2Dスケッチを使っています。やはり寸法で拘束をつけたほうが、後の修正や使い回しがやりやすいからです。
最近よく使う技は、必要な基準面やスケッチや立体形状をひとつの部品として作成し、アセンブリにエンベロープで挿入します。このエンベロープに各部品を合致させています。こうするとアセンブリ同士のつなぎ目などは、エンベロープとして各アセンブリに挿入した基準になるモデルだけを使ってアセンブリを組んで確認することができ、おもーいトップアセンブリで検討する回数を減らすことができます。
|
webmaster (仕事のカタマリ管理人)
|
|
|
|
|
|
|