仕事のカタマリにようこそ!  [ ログイン | ユーザ登録 ]
フォーラムから検索

機械用3D-CAD SolidWorks非公認のユーザサイトです
 
 
Web katamari.org
仕事のカタマリ
ホーム リンク集 ダウンロード フォーラム(掲示板) FAQ お問い合わせ









フォーラムニュース: 質問、相談カテゴリに「SolidWorks操作方法」に関するフォーラムを追加しました。(2003/11/27)
いらっしゃい、 ゲストさん. まずはこちら→ ログイン または 登録. 2024/05/08 - 12:31:26
ホーム ヘルプ 検索 ログイン 登録

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 3Dスケッチで点を打つマクロ 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 3Dスケッチで点を打つマクロ  (閲覧数 4073 回)
Matsu
Jr. メンバー
**

オフライン

投稿: 20





プロファイルを見る
3Dスケッチで点を打つマクロ
« 投稿日: 1970/01/01 - 09:33:22 »
引用して返信

重心の件ではお世話になりました。Matsuです。



マクロのプログラムを見ても、簡単そうに見えてなかなか難しそうです。言い出

した人が何とかしろ、と言われそうですが、日本語の、ヘルプが欲しいなぁと思

いながら、仕事の合間を見付けてサンプルマクロを探しています。



さて、重心でパーツ・アセンブリ上に点が打てるのを発展させて、マクロを実行

させると、 ダイアログボックスが開いて、XYZの数値を入力、-> 点が挿入され

る。と言うマクロを作ってもらえませんか?(アドインでAutoCADの2D何とかを

使うと、コマンドラインから点や線が数値入力で入れることも発見しましたが3D

ではできないようです。)



実際の操作は、スケッチ -> 3Dスケッチ -> 点を打つ -> プロパティボックスで

数値をマウスでクリックしてそれぞれ入力 -> スケッチ終了です。

あまり、手間は変わりませんが、数値の入力と値の渡し方のサンプルとしたいの

で参考にもしたいです。



ちょっと注文を付けるならば、

初期値が0、0,0。

入力が数値以外ならばエラーが出る。

さらに全角数字でもOK

ならば完璧なのですが・・・。



僕の今の能力では、何から手をつけていいのかわかりません。

(昔C言語と、今は秀丸のマクロしかわかりません。)



あつかましいようで、申し訳有りませんがよろしくおねがいします。

議長に報告する   記録済み
webmaster
管理人
議長
カタマリの王様!?
*****

オフライン

投稿: 649





プロファイルを見る WWW メールアドレス
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





プロファイルを見る WWW メールアドレス
3Dスケッチで点を打つマクロ
« 返信 #4 投稿日: 1970/01/01 - 09:33:22 »
引用して返信

自作マクロ完成おめでとうございます。自分で作ったプログラムが動くだけで楽しくなりますよね。しかも、使いながら気に入るまでいくらでも改良できるところが、自作のいいところです。



合致の基準に使うとの事ですが、この場合私は参照平面と2Dスケッチを使っています。やはり寸法で拘束をつけたほうが、後の修正や使い回しがやりやすいからです。

最近よく使う技は、必要な基準面やスケッチや立体形状をひとつの部品として作成し、アセンブリにエンベロープで挿入します。このエンベロープに各部品を合致させています。こうするとアセンブリ同士のつなぎ目などは、エンベロープとして各アセンブリに挿入した基準になるモデルだけを使ってアセンブリを組んで確認することができ、おもーいトップアセンブリで検討する回数を減らすことができます。
議長に報告する   記録済み

webmaster (仕事のカタマリ管理人)
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 3Dスケッチで点を打つマクロ 前のトピック 次のトピック
ジャンプします: