3D-CADで描いた形状を、C言語の例えばOPEN-GLのようなグラフィックライブラリをつかって表示することはできますか?
できるとしたら、画像として移動できるのか、それともパラメータだけを移動して、新たにC言語上で描画する必要性があるのでしょうか。
3D-CADのSolid Edgeは、Cとリンクをはっているという話は聞いたことがあるのですが、詳しいことがわかりません。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

No.3の「補足要求」でも言いましたが、問題点を整理すると、要は、



1)図形か画像か?

3D-CADでも表示された絵そのものは、2次元です。これを利用するとしても画面のハードコピーと同じこと。キーボードの「ctrl+PrintScreen」で切り貼りすれば、Wordに貼り付けることも出来ます。

そうではなくて、マウスを使ってグルグル回したりしたいんですか?それなら図形データを取り出さなくてはいけません。図形データには、

イ)幾何情報(点、線分、トリム曲面..)
ロ)位相情報(面や稜線などの相互的位置関係)

があります。CADシステム内部のデータでは、ロ)を持ちますが、汎用的な形式に掃き出すと、イ)だけになる場合が多いです。絵を描くだけなら相互の関係などなくてもいい場合が殆どです。

#以下、「図形」と仮定した場合...、

2)面は平面形状か、それとも、2次曲面、3次曲面(=NURBSなど)か?

通常の製品形状で平面形状だけなんて殆どないですが、この場合、

3)平面形状ではないとした時、面と面との繋ぎ目は以下の何れか?
3a)全てフィレットなどのRが付いている。
3b)一部鋭角的なところがある。

Open-GLなどで表示する場合、多角形毎以下の何れかを選択しなくてはなりません。
A) Flat Shading (滑らかでない陰影付け)
B)Smooth Shading(滑らかな陰影付け)

B)の場合、位相情報が失われていたり、STL形式のように自由曲面でもなんでも3角形のポリゴンになっちゃうと、幾何情報を頼りに、近い点同士を探して、「面法線ベクトル」を共有化させることにより、面同士が滑らかに繋がったように見せなくてはなりません。

この時、全てRが付いているなら、機械的に近い点同士を1-Groupにまとめちゃえばいいのです。しかし、一部鋭角的なところがあると、面同士
・滑らか
・滑らかでない
を自動的に判別しなくてはなりません。

と言うと難しそうですが、最近も弊社の若手でOpen-GLも数学知識もない者に、方法だけ教えたら、1週間で作りあげました。

原理は上のとおりですが、ポリゴンの数が数10万規模になると、近い点同士を探すのでも上手くやらないと計算時間がかかってしまいます。Octreeなど空間を階層的に管理した方がいいです。
    • good
    • 0

補足です。



a)IGES
b)DXF
c)STL

のような代表的なものでしたら、Viewerがありますが、Viewer使って見るくらいなら、CAD使って見ても同じです。

要は何をやりたいかということです。その辺がイマイチ分かりません。

OPEN-GLは例題を見れば初心者や数学的知識のない者でも簡単に組めます。
    • good
    • 0

mnabeさんが言われていることにほぼ間違いはないです。



1)3D-CADの内部フォーマットは独自ですが、各出力フォーマットにExportできるのが普通です。たとえば、

a)IGES
b)DXF
c)STL

これはフォーマットが分かっていますから、これを読んで、

イ)OPEN-GL
ロ)Direct-X

などのライブラリを使って描画すればいいのです。

「画像として移動できるのか?」:「画像」と言うからには、「bmp」や、「Iris-rgb」、更には、「JPEG」,「GIFF」などの形式でなくてはなりません。そのCADシステムが、これら画像ファイルに掃き出す機能を持っているかどうかでしょう。但し、これは「画像」ですから2次元です。3次元データとして扱いたいなら、上で述べたような方法を使わなくてはなりません。
    • good
    • 0

3D-CADのファイルのフォーマット形式が公開されているか、表示用のライブラリが公開されていれば、C言語で表示可能です。


 また、OPEN GLとの連携は難しいと考えるべきです。OPEN GL自身がライブラリですので、別のファイルフォーマットのライブラリがあったとしても読込むのは少々難儀すると思います。できないとは思いませんが...。

 描画する必要性は
 何を持って描画と言うのかがわかりませんが、画面上に表示するのに必要です。しかし、それをライブラリで行ってくれる可能性もあります。
 まずは、3D-CADで確認してみて下さい。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAutoCADに適したPDF変換フリーソフト

AutoCAD LT2000,2008で図面作成しております。
最近、PDFで送って欲しいと言われるようになってきました。
アドビのPDF作成ソフトは、結構高価なのでフリーソフトを利用しようと思っております。
CAD図面に適したPDF作成フリーソフトをご存知の方、
ご回答よろしくお願い致します。

Aベストアンサー

2007以降のAutoCADは標準でpdf出力ドライバが搭載されているでしょう。
DWG TrueViewにもDWG To PDF.pc3があります。

QC言語C++言語アセンブラ言語の就職先

自分は以前Javaプログラマをやってました。

あまりに、便利なライブラリばかりで、「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」とおもってしまい、すきになれませんでした。正直、苦痛でした。

今、上記言語を勉強しているのですが、コンピュータの根本からプログラムをしている実感が沸き、とても面白いです。

でも、これらの言語を習得したところでどんなところに就職できるのかさっぱりわかりませんし、需要があるのかもしりません。いわゆる組み込み系統は就職できるんでしょうが、私としてはアルゴリズムでUNIXのプログラムをシコシコ書いているような作業がすきなのです。いってみれば、私はクラシックな人間だとおもいます。

そんな僕ですが、就職先はあるのでしょうか?よろしくお願いします。

Aベストアンサー

 勉強熱心ですね。
 実際に、kamkamkam3-san の言われている、
「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」というのは的を得ています。
 
 経験からなんですが、ソフトウェア会社では、ノウハウとしてライブラリをもっています。ちょうど、Java のクラス・ライブラリーなようなものです。ですから、それらを使って製品を効率良く製品をつくれるかが重要です。実際のソフトウェア・エンジニアは、それをうまく使って効率良くコーディングすることを要求されます。

 ソフトウェア業界は、1人で閉じた製品を開発することは、まずないです。製品=プロジェクトだとすると、最低3名~100人以上が同時進行となります。そうなると、割り当てられたノルマを効率良く行うかが評価のポイントになります。つまり、「ソフトウェアの振る舞いを書いているだけ」ということにもなります。

 コンピュータ言語は、あくまでもツール(道具)です。
 kamkamkam3-san が、今後どういった分野の仕事を希望している(興味がある)かが重要だと思います。
 その答えとして、「C言語C++言語アセンブラ言語」を勉強することで実感できると思います。ですので、ぜひ、勉強を続けてください。

 勉強熱心ですね。
 実際に、kamkamkam3-san の言われている、
「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」というのは的を得ています。
 
 経験からなんですが、ソフトウェア会社では、ノウハウとしてライブラリをもっています。ちょうど、Java のクラス・ライブラリーなようなものです。ですから、それらを使って製品を効率良く製品をつくれるかが重要です。実際のソフトウェア・エンジニアは、それをうまく使って効率良くコーディングすることを要求さ...続きを読む

QCADのおすすめフリーソフト

自宅で高級なCADソフトを扱うのは気がひけるので手軽につかえるおすすめなCADフリーソフトがあれば教えていただけたら幸いです。ちなみに自分は電気系です。

学校で使用してるのは「Auto CAD electrical 2007」ですので、できればこれに近いものがいいのですが、贅沢いいませんのでおすすめフリーソフトの紹介お願いします。

Aベストアンサー

フリーのCADソフトっていったらこれしかありません。
「JW CAD」
http://www.jwcad.net/

QC言語のライブラリ

C言語の初心者でただいま勉強中です。
今ちょうど、関数のところでライブラリについて
勉強しているのですが
ライブラリのソースがどうなっているのか気になっております。
どうにかしてライブラリのソースを見る方法はないでしょうか?

Aベストアンサー

★『標準Cライブラリの実装』という記事を書いているブログ?を紹介します。
・strncmp、strncat、strncpy、strspnなどいろいろな関数を実装レポートしています。
 つまり、C99 に対応した標準 C ライブラリの実装レポートを書いているようです。
・このブログの左側『カテゴリー』は
 未分類 (4)
 開発環境 (5)
 処理系の特性 (7)
 プログラム診断 (1)
 入出力 (0)
 文字種別 (6)
 文字列操作 (22)
 時間操作 (0)
 数値演算 (0)
 一般ユーティリティ (21)
 シグナル処理 (4)
 文化圏固有動作 (3)
 その他のライブラリ (3)
 システムコール (0)
・となっています。
 まだ、Cライブラリの関数をすべて実装してはいないようです。途中ですね。
・以上。おわり。→下の『参考URL』から上記のブログへ移動できます。

参考URL:http://libc.blog47.fc2.com/blog-category-8.html

QDXFなどを読み込める「フリーソフト」AUTO CADありますか?

DXFなどを読み込める「フリーソフト」AUTO CADありますか?
他のCADを使っていますが、プロテクターがなく、プリントできません。DXFなどには変換できるので、
フリーソフトを使って出力したいです。

Aベストアンサー

個人的には、次の二つを使っています。どちらも無料です。

DWG TrueView(オートデスク純正ビューア)
http://www.autodesk.co.jp/adsk/servlet/pc/index?siteID=1169823&id=14936772

Solid Edge 2D Drafting(シーメンス製CADソフト:編集可能)
http://www.forest.impress.co.jp/docs/review/20100519_367944.html

これは個人的には使っていませんが、フリーCADの定番で、DXFを読み込めます。

Jw-CAD
http://www.jwcad.net/

QC言語のファイル処理 C言語

指定したファイルのなかの文字列を表示させたいです。
最後の2行だけ表示させたいのですが、どうやっていいのかわかりません。。。また、それ2行を、入力した出力ファイルに書き込みたいのですが・・、どうやって指定したらいいのでしょうか??
わかる方よろしくです(><)

Aベストアンサー

>最後の2行だけ表示させたいのですが
2行文のバッファを用意し、ファイルを一行ずつ読みバッファの内容を更新していけば良いのでは?

なんとなくなフロー
char buffer[],last[],last2[];
FILE *fp;
fp = fopen(・・・)
while(fgets(buffer, sizeof(buffer), fp) != NULL){
strcpy(last2, last);
strcpy(last, buffer);
}
printf("%s\n%s\n", last2, last);

>また、それ2行を、入力した出力ファイルに書き込みたいのですが・・
もう少し具体的に書いていただいた方がわかりやすいと思いますが・・・

QAutoCADに適したPDF変換フリーソフト

AutoCAD LT2002で図面作成しております。
最近、A2原図を手渡しするより、
PDFで送って欲しいと言われるようになってきました。
アドビのPDF作成ソフトは、結構高価なのでフリーソフトを利用しようと思っております。
CAD図面に適したPDF作成フリーソフトをご存知の方、
ご回答よろしくお願い致します。

Aベストアンサー

No3です 補足
「いきなりPDF」の用紙サイズはA3までです。
解像度600dpiまで。

事務所が買ってくれるなら、もう1000円プラスして、
「いきなりPDF pro」を買っちゃいましょう。
現場ごとに一つのファイルにまとめれるらしいです。
図面枚数と同じPDFファイル数だと、面倒です。

QC言語もしくはC++言語プログラマになれますか?

私は30歳になったばかりです。諸事情によりずっと家にいます(母親の病気などです)。

5年ほど前JavaでWebシステムを作っていましたが、やめました。それ以降もJavaやPHP、VB.NETなどやってはいるんですが、なかなか腰を落ち着けられません。

私は本来の性格として基礎固めが大好きというか基礎がしっかりしていないと意味がないと考えてしまうタイプです。こと、プログラムに関しても、コンピュータの仕組みから理解してアセンブラやらの書物を読み、C言語を勉強したりするとコンピュータを根本から理解できて、やっと自分の役に立つという思考しかできないものです。いきなり高級言語のJavaやらC#やら.NETやらやっても、うわべだけさすってるようで、根本的な理解を得られないので(コンピュータに対する)、無駄だなあとどうしても感じてしまうのです。また、それよりも基礎からしっかり積み重ねた方が後々、新しい言語ができても理解の度合いというかどっしりと理解できるとおもうのです。

しかし、就職のことを考え、PHPやらC#やらJavaやらVB.NETやらを優先してきてどれもどっちつかずになってしまいました。当然Cなども合間をぬってやっていました。

で、私は、そのどっちつかずな状態がいやなので、CとC++に絞って勉強することにしました。で、低級コンパイラの中身やアセンブラも勉強していこうと決心しました。しかし、就職のことを考えると不安です。

あと、1年みっちり勉強するとして、CやC++の就職先はあるのでしょうか?自分としては、働ける限り年齢がいくつになってもがんばりたいとおもうのですが、なにしろ世間的にいうと全く遅い年齢です。もし、励ましになるような事もありましたら、ご回答していただければ、うれしいです。よろしくお願いします。

私は30歳になったばかりです。諸事情によりずっと家にいます(母親の病気などです)。

5年ほど前JavaでWebシステムを作っていましたが、やめました。それ以降もJavaやPHP、VB.NETなどやってはいるんですが、なかなか腰を落ち着けられません。

私は本来の性格として基礎固めが大好きというか基礎がしっかりしていないと意味がないと考えてしまうタイプです。こと、プログラムに関しても、コンピュータの仕組みから理解してアセンブラやらの書物を読み、C言語を勉強したりするとコンピュータを根本から理解で...続きを読む

Aベストアンサー

ゲームメーカーに勤めているものです。
Windowsを含め市販のパッケージゲームはほとんどがC/C++で作られています。
(ゲームがハードよりだとは思いません)
この業界は学歴とかは関係なく実力オンリーの世界です。
MIT卒も専門卒も同じ土俵です。うちは大手ですが中途採用で学歴を見る事はありません。
>私は零細企業くらいにしか入れないとおもっていますので(学歴がないので)、
何かコンプレックスをお持ちのようですが、逆にそういうオーラがでていると
面接で悪い印象を与えてしまうと思います。
>仕事を選らべる年齢とは思っていないので
もう少し欲を持った方が良いと思います。
40歳で新しい業界に転進しようとしている人がいたとしても
努力が伴っていれば、誰もおかしいとは思わないでしょう。

C言語というのはゲームに限らず性質的に下位層のものを作る事が多いです。
既に話が上がっているようにモジュールを作る仕事もあるわけですが
例えば圧縮や暗号化等のモジュールを作ろうとすると数学の知識も必要です。
C/C++の言語仕様に関する知識だけでは、年齢も考えると就職は厳しいかもしれません。
アセンブラは武器になると思います。アセンブラの経験者は減ってきていますが
需要はあります。
特に下位層の部品は実行速度が重要ですのでインラインアセンブラが使われている事は
よくあります。

>1年みっちり勉強するとして、CやC++の就職先はあるのでしょうか?
可能性はあります。
kamkamkam3さんがゲームに興味があるかどうかはわかりませんが、
例えばシェーダーをバリバリ使った誰もがうなる3Dゲームを作って会社に持ち込めば
ひっぱりだこになるでしょう。

ゲームメーカーに勤めているものです。
Windowsを含め市販のパッケージゲームはほとんどがC/C++で作られています。
(ゲームがハードよりだとは思いません)
この業界は学歴とかは関係なく実力オンリーの世界です。
MIT卒も専門卒も同じ土俵です。うちは大手ですが中途採用で学歴を見る事はありません。
>私は零細企業くらいにしか入れないとおもっていますので(学歴がないので)、
何かコンプレックスをお持ちのようですが、逆にそういうオーラがでていると
面接で悪い印象を与えてしまうと思います。
>仕...続きを読む

Qフリーソフトで、油圧回路図を描けるCADソフトを教えてください

タイトルそのままですが、フリーソフトで、油圧回路図を描けるCADソフトを教えてください。

Aベストアンサー

フリーソフトで最も互換性のあるのはJw_cadではないでしょうか。機能的にも問題ないと思います。

参考URL:http://www.jwcad.net/

QC言語はC言語でできている?

C言語はC言語でできている?

C言語はC言語でできていると耳にしたことがあります。

一体どういうことですか?

詳しく教えて下さい。

Aベストアンサー

歴史的な経緯を考えれば解ると思います。

当初は機械語でプログラミングをしていました。
それがアセンブラに変わります。
アセンブラでコンパイラが作成され、高級言語が作られていきます。
アセンブラまたは、高級言語の1つを使って、C言語用のコンパイラが作成されたとします。
今度は、そのC言語用のコンパイラを使用して開発ができるわけです。
ですので、そのC言語用のコンパイラを使用して、
C言語用の別のコンパイラを作成することも可能になります。

おそらく質問者さんの聞かれていることはこのことだと思います。

他の例では、MSは、VisualStudioで、次のバージョンのVisulaStudioを開発しています。
ややこしいですね。><


人気Q&Aランキング