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

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









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

仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 閉じた図形の描き方 前のトピック 次のトピック
ページ: [1] Page Bottom 返信 返信のお知らせ Print 
   著者  トピック: 閉じた図形の描き方  (閲覧数 2902 回)
504
新人さん
*

オフライン

投稿: 7



I'm a llama!

プロファイルを見る
閉じた図形の描き方
« 投稿日: 2013/04/04 - 10:12:21 »
引用して返信

お世話になります。

SolidWorks 2013 x64 Editionを使って
C#のマクロで回転体を作りたいのですが、下記のコードだとスケッチが閉じてないというエラーになってしまいます。
どこが問題なのでしょうか?

パラメータ次第では上手く動くこともあるのですが、このケースでは何がいけないのかさっぱり分からず困っています。

        public void Main()
        {
            ModelDoc2 swDoc = ((ModelDoc2)(swApp.ActiveDoc));
            swDoc.SketchManager.InsertSketch(true);
            bool boolstatus = swDoc.Extension.SelectByID2("正面", "PLANE", 0, 0, 0, false, 0, null, 0);
            swDoc.ClearSelection2(true);
            swDoc.SketchManager.InsertSketch(true);
            const double PI2 = 6.2831853071796;
            double P11x, P11y, P11z, P12x, P12y, P12z, P13x, P13y, P13z;
            double P21x, P21y, P21z, P22x, P22y, P22z, P23x, P23y, P23z;

            P11x = -0.0409264;
            P11y = P11z = 0;
            P12x=P12y=P12z=0;
            P13x = -0.00195564;
            P13y = 0.0125;
            P13z = 0;

            P21x = 0.0289264;
            P21y = P21z = 0;
            P22x =-0.012;
            P22y = P22z =0;
            P23x = -0.0100444;
            P23y = 0.0125;
            P23z = 0;

            SketchArc skArc = ((SketchArc)(swDoc.SketchManager.CreateArc(P11x,P11y,P11z,P12x,P12y,P12z,P13x,P13y,P13z,1)));
            swDoc.ViewZoomtofit2();

            skArc = ((SketchArc)(swDoc.SketchManager.CreateArc(P21x,P21y,P21z,P22x,P22y,P22z,P23x,P23y,P23z, -1)));
            swDoc.ViewZoomtofit2();

//↓ここで二つの円弧の端をしっかり繋いで閉じているつもり・・
            SketchSegment skSegment = ((SketchSegment)(swDoc.SketchManager.CreateLine(P12x,P12y,P12z,P22x,P22y,P22z)));
            skSegment = ((SketchSegment)(swDoc.SketchManager.CreateLine(P13x,P13y,P13z,P23x,P23y,P23z)));


            boolstatus = skSegment.Select2(false, 16);
            Feature myFeature = ((Feature)(swDoc.FeatureManager.FeatureRevolve2(true, true, false, false, false, false, 0, 0, PI2, 0, false, false, 0.01, 0.01, 0, 0, 0, true, true, true)));
//↑このmyFeatureがnullになる

            swDoc.ClearSelection2(true);
            swDoc.SketchManager.InsertSketch(true);
        }
議長に報告する   記録済み
Makoron
カタマリの王様!?
*****

オフライン

投稿: 1277



SW2011SP5.0

プロファイルを見る
Re:閉じた図形の描き方
« 返信 #1 投稿日: 2013/04/04 - 14:02:37 »
引用して返信

SW2013が入っていないので確認できませんが、
SW2012SP5.0 32bit版と64bit版の両方でテストしてみたところ、
問題なくフィーチャー作成できました。

2013の問題なのかな?

ちなみに、作成されたスケッチを手動で回転フィーチャに利用するとエラーは表示されないのですか?
議長に報告する   記録済み
504
新人さん
*

オフライン

投稿: 7



I'm a llama!

プロファイルを見る
Re:閉じた図形の描き方
« 返信 #2 投稿日: 2013/04/04 - 16:48:39 »
引用して返信

Makoron様
ありがとうございます。

'
引用元: Makoron 投稿日 '.timeformat('1365051757').'   
'
ちなみに、作成されたスケッチを手動で回転フィーチャに利用するとエラーは表示されないのですか?


手動で回転させようとすると、閉じていないというエラーがでます。


ただし、今他の端末で試したところ正しく動きました。。

3DCAD自体不慣れでよく分からないのですが、
この辺の動作に効きそうな設定が何かあるのでしょうか?
(スナップの精度とか??)
議長に報告する   記録済み
504
新人さん
*

オフライン

投稿: 7



I'm a llama!

プロファイルを見る
Re:閉じた図形の描き方
« 返信 #3 投稿日: 2013/04/16 - 10:11:19 »
引用して返信

解決したので一応ご報告を。

もともとはもう少し長いマクロの一部を取り出したので、
まず問題自体が少し違っていました。

初めに書き込んだマクロは
swDoc.SketchManager.AddToDB = false
だと動きますが、trueだと動かなくなる
というのが問題でした。

結局元データからマクロに数値を取り込む際の誤差であり得ない座標になっていたのが問題だったので、
・swDoc.ForceRebuild3()を呼ぶ
・座標入力値の有効桁数を増やす
のどちらかで対応できそうです。

お騒がせしました。
議長に報告する   記録済み
ページ: [1] Page Top 返信 返信のお知らせ Print 
仕事のカタマリ 掲示板  |  SolidWorks一般  |  SolidWorksのカスタマイズ (議長: webmaster)  |  トピック: 閉じた図形の描き方 前のトピック 次のトピック
ジャンプします: