Re: はじめたばかりの超初心者です 長さの単位について ( No.2 ) |
- 日時: 2005/04/24 01:59
- 名前: Jun
- こんばんは。
>shadeからのDXFデータを基にCAMで形状を切削 これは、具体的に何をされたいのですか?もしも、スクリプト等のプログラミングを使って実行しようとしているのなら、以下のコマンドのどれかを実行するだけです。
1, tell application "Shade Professional R5" to move object around {拡大する中心のx座標, 拡大する中心のy座標, 拡大する中心のz座標} scale {x方向の倍率, y方向の倍率, z方向の倍率, }
2, xshade.scene.move_object([拡大する中心のx座標, 拡大する中心のy座標, 拡大する中心のz座標], [x方向の倍率, y方向の倍率, z方向の倍率], None, )
3, move_object around { 拡大する中心のx座標 拡大する中心のy座標 拡大する中心のz座標 } scale { [x方向の倍率 y方向の倍率 z方向の倍率 }
このうち1番のスクリプトはMac 専用です。2, 3はMac でもWindows でも動くと思います。また、これを使って拡大縮小する倍率を聞くようなダイアログを出したいなら、以下のようにします。(すいません。Mac しか分かりません)
tell application "Shade Professional R5" --ここからの命令はすべてShade で実行。
activate --前面に持ってくる。
begin dialog --ダイアログを作り始める。
append vec3 dialog item "X方向の倍率" --倍精度のテキストボックスを作る。名前は"X方向の倍率"。
set vec3 property value 0 to {1,1,1} --デフォルトを1,1,1にする。
set is_ok to ask dialog --ダイアログを表示する。
if (is_ok) then --OKボタンが押されていれば以下のコマンドを実行。
set theList to (get vec3 property value 0) --変数theListに、ユーザーが入力した値を代入。
set theCenter to get center --変数theCenterに選択されている物体の重心を代入。←完璧な重心とは限りません。
move object around theCenter scale theList --拡大縮小
else --キャンセルされたら以下のコマンドを実行。
return --Shade に命令するのを終わる。
end if
end tell --命令終わり。
これにコードを追加して、”もしも、値が0だったら、エラーを出す”、等、いろいろな拡張版ができます。
>レンダリングすると小さすぎてゴミにしか見えません 単に、レンダリングしたときの見かけのサイズを大きくしたいなら、Shade のカメラウィンドウから、ズームを選択して、上か右にドラッグしてレンダリングします。これによって見かけのサイズが大きくなります。また、レンダリングサイズを上げるという方法もあります。
長くなってすいません。
 |
Re: はじめたばかりの超初心者です 長さの単位について ( No.3 ) |
- 日時: 2005/04/24 03:11
- 名前: 宮田
- DXFのVerが判りませんが、DXFには次元(mm、cm、m等)の情報がなかったと思います。
つまりDXFの最小単位には次元がなく、単にユニットとして記載されるので 最小単位が1mmであれば1単位は1mmですし、1mであれば1単位は1mになります。 1mmで書き出してもDXFは1単位として判断するので、読み込む側の設定で大きさが 変わるわけです。 ですので最初からそれを考慮して描くか、読み込み側で調整するしかないです(多分)。 CAMに持って行く場合にはDXFは厳しいと思います。他の形式は使えないかを考えるのも 一つの手だと思います。CAMの装置側の読み込みデータ形式を確認した方が良いかも。
Shade側の三面図では「特別(S)」→「図面にあわせる(F)」で形状がそのとき三面図上で 表示できる最大の大きさで表示されます。
|
Re: はじめたばかりの超初心者です 長さの単位について ( No.4 ) |
- 日時: 2005/04/24 14:44
- 名前: Jun
- こんにちは。
CAMって、ソフト名なんですね。知りませんでした。そこで、もしやと思い、別の解決策を提案します。
Shade のサイトの仕様変更のページhttp://shade.e-frontier.co.jp/support/75fixed.htmlによると、古いバージョンのShade のDXF 出力に問題があるようです。そこで、DXF のデータをじかに書き換えてはどうでしょう。これまたMac しか分かりませんが、一応コードを載せます。このスクリプトは、Shade から出力したDXF ファイルをFinder で選択した状態のみ動作します。
tell application "Finder" set dxfFile to selection set thePath to dxfFile as text end tell
set theDataSource to open for access thePath set dxfData to (read theDataSource as text) close access theDataSource
set dlm to AppleScript's text item delimiters set AppleScript's text item delimiters to "/" set newDxfData1 to every text item of dxfData
set newDxfData2 to ""
repeat with n from 1 to (newDxfData1 count) if n = (newDxfData1 count) then set newDxfData2 to newDxfData2 & (item n of newDxfData1) else set newDxfData2 to newDxfData2 & (item n of newDxfData1 & "_") end if end repeat
set AppleScript's text item delimiters to dlm
return newDxfData2
これを実行すると、修正されたDXF データが結果ウィンドウに表示されますから、それをコピーして、適当に名前をつけ、拡張子を”.dxf”にしてディスクに保存してください。これで、解決できる可能性があります。
>DXFには次元(mm、cm、m等)の情報がなかったと思います。 もしそうなら、これでは解決できません。
がんばってください。
 |
Re: はじめたばかりの超初心者です 長さの単位について ( No.5 ) |
- 日時: 2005/04/24 16:27
- 名前: 宮田
- > CAMって、ソフト名なんですね。
Computer associated manufacuture の略で、コンピュータ支援製造とか言われます。 CAD の design が manufacuture になった略語ですね。
設計系CADのデータを製造装置に渡すことによりデザインから製造まで一貫して 行うことのできるシステムです。 ボルトの絵を描いて製造装置に渡すとその通りのボルトが出来上がるわけです。
|
Re: はじめたばかりの超初心者です 長さの単位について ( No.6 ) |
- 日時: 2005/04/24 17:22
- 名前: Jun
- >ボルトの絵を描いて製造装置に渡すとその通りのボルトが出来上がるわけです。
これは便利ですね。なんだか使ってみたくなりました。そのようなシステムはどうやらスクリプタブルではなさそうですね。それを考えると、この問題はなんとかしてShade側から解決する必要があると思います。
肝心のデータのエクスポートですが、先ほどのスクリプトを使用する際の注意点について説明します。
Shade のページによると、Shade の出力するDXF データの ”/” を ”_” に変更すると互換性が高まるそうです。そこで、今回のスクリプトでは、DXF データをテキストにして、その中に含まれる ”/” を全て ”_” に書き換える、というかなり荒っぽい方法を使用しています。よって、書き換えるべきではないところまで書き換えている可能性があります。それによって、データが不正になる場合が考えられます。また、形状名に ”/” を使用していると、100%の確率で ”_” に変換されてしまいます。DXF の仕様は全く分からない素人が作成しているということを念頭に置いて、使用してください。以上の理由から、データは必ずバックアップをとってください。
|
JUNさん 宮田さん ありがとうございます。 ( No.7 ) |
- 日時: 2005/04/25 05:37
- 名前: wes
- 遅れてすみませんでした。
本当に参考になるプログラムまで書いていただきありがとうございます。
やっと切削したいモデルが出来たのでDXFに書き出してやってみようと思っております。 どうなるのか解りませんが・・・ とにかくShadeについては丸っきりのど素人で時間が掛かってしまいます、ご両者には本当に感謝いたしますご教授どおりやってみたいと思います時間はかかりますが結果を後日お知らせしたいと思います。
因みにCAMと書いたのは ローランドのCAM−3という3次元切削マシンのとこです。
|
DXFを書き出して・・・ ( No.8 ) |
- 日時: 2005/04/25 22:55
- 名前: wes
- 今日ShadeからDXFを書き出したのですが、穴に設定してあるところまで表示されてしまいます。
頭の中ではレンダリングした状態がDXFとして吐き出されると思っていたのでCAMにかけることも出来ず弱りました、どうすればレンダリングした状態のDXFが吐き出されるのでしょうか? 教えていただければありがたいのですが。 よろしくお願いいたします。
|
Re: はじめたばかりの超初心者です 長さの単位について ( No.9 ) |
- 日時: 2005/04/25 23:32
- 名前: Jun
- JR福知山線脱線で被害をお受けになった方やご家族の方に、心よりお悔やみ申し上げます。
>穴に設定してあるところまで表示されてしまいます。 ”穴”とは、形状に特殊記号をつけて作成した物ですか。もしそうなら、簡単に解決できるかもしれません。
まず、この現象の原因ですが、Shade が穴のある形状をレンダリングする際の仕組みによる物だと思います。と言うのも、いくら形状名に”-”をつけても、四面図上では、穴として認識されないからです。Shade がレンダリングする際に初めて穴として認識し、レンダラーの中で仮想的に穴の開いた形状を作り出しているのです。よって、エクスポートの際にはレンダラーの情報ではなく、四面図の情報を使うため、うまくエクスポートができなくなってしまうのです。そこで、四面図上でも穴をあけられるような、別の方法を使用する必要があります。そのために方法を以下に示します。
ツールメニューから、作成サブメニューを選び、下の方にある”ブーリアンモデリング”を選択します。すると、分割の精度と5角以上のポリゴンの使用について聞いてくるので、適当に設定します。CPUのパワーやメモリが十分ある環境では、分割の精度を”最も高い”に設定するとよいでしょう。5角以上については、はじめはオフにしておいて、不都合があればオンにするようにします。すると、”BooleanResult”というパートが作成され、その中に”PolygonMesh”というオブジェクトが自動生成されます。このオブジェクトをDXF 出力すれば、レンダリングした状態そっくりそのまま出力できます。
このブーリアンモデリングは、複雑な形状を作成するのにとても便利なので、覚えておくと、作成できる形状がぐっと増えますよ。
|
ありがとうございます できました。 ( No.10 ) |
- 日時: 2005/04/26 00:07
- 名前: wes
- 出来ました出来ました! ありがとうございます。
でもあるパーツを書き出してくれません、マークなんですがこれはFlashで輪郭線を書かせてそれをFlashからDXFで書き出してShadeにインポートして加工したものです(掃引などで)。
このパーツを書き出してくれません、何か方法がありますでしょうか。
|
Re: はじめたばかりの超初心者です 長さの単位について ( No.11 ) |
- 日時: 2005/04/26 00:24
- 名前: Jun
- >出来ました出来ました!
良かったですね。これからもがんばって下さい。
>マークなんですがこれはFlashで輪郭線を書かせてそれをFlashからDXFで書き出してShadeにインポートして加工したものです(掃引などで)。 この部分の意味がよくわかりません。具体的に、どのようなことをされたいのか、教えていただけますか。
>このパーツを書き出してくれません 他に3Dソフトはお持ちですか。もしお持ちでしたら、Shade からobj等の別のフォーマットを使用して他の3Dソフトにエクスポートして、その3DソフトからDXF 出力をしてみるのも一つの方法だと思います。それから、もしもMac をお使いでしたら、先日書かせていただいたスクリプトを実行してみて下さい。どうしても解決できそうになかったら、差し支えがなければ出力したDXF ファイルをご自分のHPに掲載していただけないでしょうか。こちらでダウンロードして、CINEMA 4D, LightWave, Maya, Cheetah 3D, Shade 6でインポートを試みます。
|