2016-12-01から1ヶ月間の記事一覧
前回が今年の最後にするつもりだったのですが、気になる事があったので これを最後にします。VBAでコレクションや配列をソートしたい場合基本的には無く、単調なものであれば DotNetのArrayListを利用する事も考えるのですが、ちょっと単調ではない 条件(プロパティで と…
こちらの続きです。 単独な3D曲線の取得する1 - C#ATIA 前回は総当りの非常に効率の悪い物でしたが、線形8分木による スクリーニング処理を利用し単独な3D曲線を検索するように修正しました。まずはCATMainを持つ標準モジュール "FindSingle3DCurve.bas" です。 'vba F…
非常に個人的に作成している CATVBA用ライブラリ なのですが、サンプルとして 掲載しているマクロを利用する際には必要となる為、今更ながらご説明です。例えばこちらの場合ですが、 単独な3D曲線の取得する1 - C#ATIA サンプルコードのヘッダ部分を確認してください。 (忘れ…
こちらの続きです。 端点一致を探る、組み合わせテスト10 - C#ATIA 前回の物を実装する為に書き換えました。 'vba 'モートン順序を利用した8分木空間分割の為のクズコード4 Option Explicit Private Const CLINER8TREEMANAGER_MAXLEVEL = 7 '有効空間分割最大レベル P…
こちらの続きです。 端点一致を探る、組み合わせテスト9 - C#ATIA 昨日の悩みが全て解消するような、良い方法を思い付きました。 時間が無い為、先にコードです。 'vba 'モートン順序を利用した8分木空間分割の為のクズコード3 Option Explicit Private Const CLINER8…
こちらの続きです。 端点一致を探る、組み合わせテスト8 - C#ATIA 忙しいので進められる状態では無いのですが、考えもまとまらない為 コード無しです。最初は端点同士の比較の為、空間を跨ぐ事は無いなぁ と考えていました。 今回の様に数値を比較する際、イコール…
こちらの続きです。 端点一致を探る、組み合わせテスト7 - C#ATIA 残されたもう一つのバグがわかりました。 今後の事を考え、オリジナルとは異なる処理をさせていた部分の 渡すべき引数を間違えていました・・・。 "符号なしInt を Long型で代用" とか "右ビットシフト関…
こちらの続きです。 端点一致を探る、組み合わせテスト6 - C#ATIA 一ヶ所だけバグを発見しました。 こちらのコードですが 端点一致を探る、組み合わせテスト3 - C#ATIAGetPointElem関数内のGet3DMortonNumber関数を利用する際の引数部分の 計算式を CByte((p(0…
こちらの続きです。 端点一致を探る、組み合わせテスト5 - C#ATIA 説明をきちんと読んでませんでした。>"分割レベルL=2 最小を16番 最大を23番" では >"親空間の2番" なのですが、実行すると "親空間の3番" に・・・。と前回は書いたのですが、" 3 " が戻ってき…
こちらの続きです。 端点一致を探る、組み合わせテスト5 - C#ATIA とりあえず、機能するものを先に作りました。 'vba test_FindSingle3DCurve Ver0.0.1 using-'KCL0.08' '単独な3D曲線の取得 Option Explicit '*** 設定 *** Private Const Tolerance = 0.001…
こちらに関係してます。 端点一致を探る、組み合わせテスト5 - C#ATIA段々業務が忙しくなってきたので、思うように取り組めません・・・。どうしても2進数が直ぐにはイメージ出来ない為、確認用の関数を 探してみました。 10進数の値を2進数に変換する(Excei2000以…
こちらの続きです。 端点一致を探る、組み合わせテスト4 - C#ATIA最初は対象が端点なので、点で考えれば良いと思っていたのですが、 点ではなくボリューム(立方体)として空間分割し、登録しなければ ならない気がしてます。 上手く行かなく苦しんでます。ボリューム…
こちらの続きです。 端点一致を探る、組み合わせテスト3 - C#ATIA 前々回 "このアルゴリズムでの問題点も、ある程度認識してはいるつもり" と 書いたのですが、これについて自分なりの解釈と方向性だけ示しておきたいと 思います。このアルゴリズムで最大の効果を発…
こちらの続きです。 端点一致を探る、組み合わせテスト2 - C#ATIA一応、取り組んでますが、全くCATIAとは無関係な状態です。 'vba 'モートン順序を利用した8分木空間分割の為のクズコード Option Explicit Sub CATMain() Dim min: min = Array(-12#, -34#, -56#) '…
こちらの続きですが、コード無しで作戦だけです。 端点一致を探る、組み合わせテスト1 - C#ATIA 現在挑戦しているご相談頂いた内容は、 "バラバラの3D曲線が存在し、端点部分が一致しない孤立している 曲線を見つけたい" といった内容のものです。 実は最初にお…
こちらの続きです。 3D曲線の端点座標値を取得2 - C#ATIA 未だにこだわっているのですが、何とかもうちょっと速くしたいので。3D曲線を取得するコードを書くのが面倒だったので、検索で済ませていたのですが 真面目にHybridShapesから探し出すように修正してみ…
こちらの続きです。 3D曲線の端点座標値を取得 - C#ATIA SPAWorkbenchで端点を取得する方法が、桁違いに速い事はわかったのですが 実際テストしてみると体感的にかなり遅いんです。 その為、形状セットを指定した後の時間を測定するように変更してみました。 'vba …
こちらの続きです。 選択セットを利用する - C#ATIA 通勤中に "ひょっとしたら今回使うかも" と思ったので、 選択セットを利用した "再選択の高速化" をテストしてみました。選択セットを作成する際、事前に選択状態にしなければならない為 一度だけでは無意味です。 一…
前回の応用です。 3D曲線の端点座標値を取得 - C#ATIA 3D曲線の端点座標一致を探し出す、組み合わせテストコードを作りました。 予め書いておくと、何も考えずに単純に作っているので全くダメのものです。 少ない量であれば、まぁ大丈夫ですが 数が多いと最悪CATIA…
ご相談頂いた内容を実現する為に、テストコードを作成しました。 3D曲線の端点部分の座標値の取得は、ほぼやったことがありません。2Dの直線であれば、こちらで端点座標を取得しています。 Drawingの直線を移動する2 - C#ATIA 実は、2Dと異なり3Dの場合はプロパティ…
「マクロで "エリア フィルを修正" コマンドを」と御相談を頂いたのですが、難しいです。よくわかっていない物をマクロ化する際に最初に利用するのが、個人的なライブラリ "KCL" のCATMainにしているマクロです。 選択されたものをローカルウィンドウでみて見ると、エリアフィルではなく、Drawing…
普段、OSGのエンドミルを使わないのですが、R0.5 0.5°首下30 シャンクΦ4の テーパーネックエンドミルが欲しかったので、買いました。シャンクΦ6だと結構あるのですが、Φ6だとあまり奥まで加工できないので 何度か購入しましたが、諦めました。Φ4はナカナカ無いん…