読者です 読者をやめる 読者になる 読者になる

C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA

Autodesk Certified User

PowerMillは、常に蚊帳の外…Certiport | Home - Certify to Succeed

PowerMill2018インストールして見ました

複数バージョンのインストールが出来たので、PowerMill2018をインストール して見ました。 ・・・バグっぽいものが随所に見られ、SP2ぐらいまでは使わない と決めました。特に痛いのが、こちらのコンテキストメニューからマクロの呼び出しが出来ない事。 2018 User menu bug - Autodesk C…

環境変数 CAT_VBAIsOutProc

これ知りませんでした。COE : Forums : CAT_VBAIsOutProc確かにVBA6(32bit)からVBA7(64bit)に移行した際、 動かないマクロが幾つかありました。(KCLも)起動するCATIAの環境変数にこれを追加することで VBA7でも32bitとして実行できるようです。何れは64bitとし…

PowerMill2018

フォーラムではチラチラ名前が出てましたが、"What’s new" なサイトが出来てました。PowerMill 2018 | New Features | Autodeskリンク先がスカスカなんですが、動画は見れました。"Ribbon interface" になるのは別に構わないのですが、こちらの動画の16秒辺りに出てくる ツールパスコ…

コンテキストメニューからフォルダを展開する

PowerMillには僕の知る限り、古いバージョンからフォルダの機能があります。 このフォルダなのですが、WinなExplorer(ディレクトリ)とはちょっと挙動が 異なり、何となく要望があって後から付け加えた機能にも感じます。もちろんフォルダ機能が無ければ、Treeが長すぎて扱いに…

GSMGetObjectFromReference

COEにこんな記載が http://www.coe.org/p/fo/st/thread=29679リファレンスからオブジェクトを取得する関数。 使わないので忘れていたのですが、利用価値が無いわけじゃ 無いと思ってます。ドキュメントに記載されていないので、忘れるわけです・・・。 と言う理由での覚書。

アクティブなブロックを未計算ツールパスに反映させる2

雛形を流用するために作ったこちらのマクロ アクティブなブロックを未計算ツールパスに反映させる - C#ATIA 制限的な部分が有るものの、一応機能していたので使っていたのですが、 処理が地味に遅いので・・・。何か方法が有るのではないかな? と思っていたのですが、どの様に…

未計算ツールパスをまとめてバッチ処理する

何となく方向性が定まらないのですが、これは使って行きそうなので 公開しておきます。こちらの自作プルダウンリストのライブラリを利用し、選択された未計算ツールパスを バッチ処理させるマクロです。 その為こちらが必要です。 "group" フォルダは犠牲にした、プルダウンリストライブラリ …

選択した円弧の長さを表示2

こちらの続きです。 選択した円弧の長さを表示1 - C#ATIAもう一つ方法があり、パラメータと式を利用した方法です。 'vba test_Circle_Length_Formula 'using-'KCL0.0.10' '円弧の長さを表示-式利用 Option Explicit Sub CATMain() 'ドキュメントのチェック If Not CanExec…

選択した円弧の長さを表示1

ちょっと相談?を頂いたので、久々にCATIAのマクロを書いてみました。選択した3D円弧の長さを表示するだけのものです。 極端な話、こちらの物を流用しただけです。 線を選択しつつ、合計長さを表示する - C#ATIA 'vba test_Circle_Length 'using-'KCL0.0.10' '円…

OBJファイルからサーフェス化を挑んでみました

存在は知っていたのですが、やったことが無かった為 Autodesk社の ReMakeとFusion360を利用し、OBJファイルからサーフェス化を試してみました。※ちょっと探した際、これらの手順が記載されたサイトが見当たらなかった為 書きました。 他サイトに手順が書かれていた際は、間…

ユーザーサイドのCATIA 関連サイト4

ネタ切れ以上に、何もかもにヤル気が湧かない・・・。こちらの続きのつもりです。 ユーザーサイドのCATIA 関連サイト3 - C#ATIA ○scripts4all Catia, Excel (& other) Tools 要登録のようですが、3つ程ツールが有りました。 試してはいませんが "TxtOnCurve" は過去に僕がC#…

円筒的矢視図を作りたい

久々にCATIAネタです。 少し前に業務で行った、円筒形部品の図面を描く際の悩みです。 タイトルでは "円筒的矢視図" と書きましたが、正しい名称すらよくわかって おりません。(展開図と表記すると望んでいない答えが返ってくるもので) 本来円筒形部品のお話ですが…

工具コンテキストメニューから工具変更

計算済みツールパスの工具を変更したい時があります。 かなり、頻繁に・・・。 手動で行うと結構手間で、正直モチベーションが落ちまくります。 手順はこんな感じです。 ・任意のツールパスをアクティブ ・変更したい工具をアクティブ ・ツールパスのコンテキストメニューで '工具変更' (しかもメニュー…

"group" フォルダは犠牲にした、プルダウンリストライブラリ

相変わらず、PowerMillが使いこなせていない・・・。方向性を定める為、イロイロと試していた為マクロの製作も止めていました。 少しづつ迷いが取れきたので、少しマクロで楽をしたいところ。使い回しが出来そうなので、"group" フォルダは犠牲にしたプルダウンリストを ライブラリ化し…

何処で販売しているのか見つけられない

何となくこんな記事を見つけました。キヤノンITS、SOLIDWORKSの“かゆいところ”に手が届くツール61種を販売 - MONOist(モノイスト)よく見ていませんが、そのうちCATIAのマクロのネタに出来るかも知れない。

ツールパスバッチ処理 時間測定

PowerMillは、ツールパス・バウンダリの計算はGUIが操作出来なくなる 以来からあるバッチ処理と、バックグランドで行うバッチ処理の二つの 方法があるのですが、何となく体感的にバックグランドの処理が 遅いように感じてます。同一処理での時間測定を異なるバッチ処理方法で測定…

アクティブなブロックを未計算ツールパスに反映させる

恐らくどの3DCAMでも、類似した工程を製作する際は 予め作成しておいた雛形を流用するのだろうと思います。PowerMillにもテンプレートオブジェクトと言う機能が有り、非常に 便利なのですが、ちょっと困る部分もあったりします。テンプレートを呼び出した際、各ツールパスが切…

PowerMillマクロのダイアログ類

前回は、結局マニュアルに記載されていた関数のみでした。 今回こそは・・・、と思ったのですが、調べると今回も殆どがマニュアル 記載のものです。PowerMillのマクロで処理した際、マクロユーザーに何らかのメッセージや選択を促す ダイアログ類の覚書です。 〇エコーコマンド どちらかと言うと…

PMillマクロの隠れ型・隠れ関数

PowerMillのマクロを作る際、参考となるものは、インストールフォルダ内に 'Macro Programming Guide' があり(日本語版はサポートに言ってもらおう!) これと、Web上のフォーラムだけが頼りです。 'Macro Programming Guide'(以下マニュアル) によるとPowerMillマクロの 変数の型は string…

PowerMillマクロを高速化?

何時も忘れて何度もフォーラムを検索するのでメモ書きです。何れもPowerMillの処理を高速化したり、マクロの停止を防ぐものです。 〇メッセージダイアログ DIALOGS MESSAGE ON DIALOGS MESSAGE OFF 〇エラーダイアログ DIALOGS ERROR ON DIALOGS ERROR OFF 〇エコーコマンド デバッグトレース…

非常に個人的なPowerMillマクロ用ライブラリ

あまりに苦しいので、ライブラリ的なものを作りました。 PowerMillのマクロは、マクロの実行ファイル(.mac)以外に拡張子「.inc」に することでライブラリとして使用できるんです。(エライ!) //pmill macro Kantoku_PowerMill_Library ver0.0.2 //kpl.inc //r2017で開発 // **** フォ…

ダイアログオフが思った程、機能していない

上手く行かない と思っていたらこんな記述を発見。PowerMILL 2017 Dialogs On\Off error when run macro. - Autodesk Community要はこんな感じでコードを書いておくと、ダイアログが表示されなくなります。 ・・・されなくなる、はずでした。 DIALOGS MESSAGE OFF 困…

計算済みコーナーペンシル仕上げを逆方向にする

PowerMillの機能の中でちょっとだけ不満なのが、コーナーペンシル仕上げ加工。大体の3DCAMソフトには付いている機能なのですが、今まで経験した中で 唯一PowerMillだけ、下から上にツールパスを作成してくれません。 (使いたい理由は秘密)サポートさんには機能をつけて欲しい…

PowerMillに同位置の作業平面を作る

加工する際、世の中の方々は加工原点をどうやって決めているんでしょうか? 部品の原点が決まっているようであれば、そこを原点にするのかも知れない のですが、基準まで加工して作る場合は・・・バイスを使用していたら材料の 上側の左奥(か、右奥・・・わかりにくい…

フォルダ名リストを取得する

想像以上に苦しく、進まない PowerMillマクロです。 でも、メンドクサイ類似作業の繰り返しはコリゴリなので、進めてます。以前はメモ帳で作っていたのですがw AutodeskのForumでこんな記述を発見。 Notepad++ Language for editing PowerMill macros. - Autodesk Commun…

PowerMill 言語環境の切り替え

Space-eをバージョンアップしたのですが、ありがたい事にPowerMillも バージョンアップしてR2017が使えるようになりました。 (Fusion360CAMの利用を考えなくなったのはその為です)個人的にはPowerMillは非常に優秀だと思っているのですが、 こちらの件だけは、ちょっと…

Drawのテキストサイズを変更する

"Drawのテキストサイズを変更したけど反映されない?" のような ご相談を頂きましたが、ちょっと状況がわからないので、 現象を再現できないでいます。クリックしたテキストのサイズを2倍にするだけのテストコードです。 'vba test_DrawTextSize_Double 'using-'KCL0.0.10' 'DrawTe…

2Dコンポーネントを展開する

こちらの続きです。 指定した2D要素を、指定した原点位置でコピペする - C#ATIA 予告していた、2Dコンポーネント(2D構成要素)を展開するマクロです。アクティブなDrawシート全てのビュー内(メイン・背景・ロック・非表示)にある 2Dコンポーネントが対象です。 'vba sample_Comp2DExplode ver…

2D曲線の折れ線化を利用し、重複線の選択2

こちらの続きです。 2D曲線の折れ線化を利用し、重複線の選択1 - C#ATIA 昨日の4分木ライブラリを利用して、前回の重複線を選択した状態にする マクロを改良しました。 'vba test_Select_Overlap_Curve2D ver0.0.2 'using-'KCL0.09' -'KCL_Quadtree0.0.1' '指定ビュー…

流用して、4分木る 3

こちらの続きです。 流用して、4分木る 2 - C#ATIAやっと、2度と見たくない程の汚いコードになってしまいましたが 組み合わせの効率化を促す、線形4分木が出来ました。"KCL_Quadtree.bas" と言う名称の標準モジュールとします。 'KCL' と、先日のDotNET Framework …

ArrayListラッパークラスをお借りしてみる2

VBA

こちらの続きです。 ArrayListラッパークラスをお借りしてみる - C#ATIAイロイロとコメントで教えて頂いたので、こちらの.NETFramework_ArrayListの ラッパークラスに AarrayListをvbaで使いやすいようにラップしてみた : 趣味のプログラムあれこれこちらを反映してみました。 Wr…

指定した2D要素を、指定した原点位置でコピペする

DXF(2D)データを受け取って3Dにモデリングする作業は、ほぼ無いのですが 大まかな形状を作成したい時が偶にあり、行います。DXFをインポートして手っ取り早く、3Dに貼り付けたいのですが困るのが 原点合わせです。 Draw側で原点をあわせて3Dにベタッと貼り付けるか? 3D…

ArrayListラッパークラスをお借りしてみる

線形4分木ですが、どの様な形で返そうか? 空間の再分割が つらいのでやめようか 等があり、ナカナカ進みません。もう一つ悩んでいるのが、VBAのコレクション。今更ですがコレクションの Itemがプロパティではなく、メソッドになっていることに嫌気がさして きたので他のものを使う…

Space-eネイティブファイルをSatファイルにD&Dで変換するスプリクト

イロイロと紆余曲折ありまして、Space-eをバージョンアップしVer5.5が 使える事になりました。 時間が無いのであまり触っていませんが。僕は予定が無いのですが、Space-eネイティブファイル(.mdp)をACISファイルに 変換したいと言うお話が社内にありまして、どうせならCADの オペレー…

インプロセス実行時、一部をアウトプロセスで実行 2

こちらの続きです。 インプロセス実行時、一部をアウトプロセスで実行 - C#ATIA 呼び出すだけではなく、戻り値も取得できるものか? 確認して いなかったので前回のコードを修正し、テストすることにしました。 'vba using-'KCL0.09' Sub CATMain() '*** VBE準備 *** Dim VbPj…

流用して、4分木る 2

VBA

こちらの続きです。 流用して、4分木る1 - C#ATIA オリジナルのモートン順序の番号とY軸が逆になってしまう部分ですが、 何となくですが、自分なりの考えです。番号を求める際、オリジナルのコードではこんな式で計算した後に、 関数に投げています。 // 座標→線形4分木要…

インプロセス実行時、一部をアウトプロセスで実行

KCLには言語判定の関数 "GetLanguage" 関数を入れているのですが、 最近になって打率が悪いことに気が付きました。 判定できない原因の一つが、マクロ自身をインプロセスで実行した際に ステータスバーの文字を取得する前に、判定しているような気がしています。その為、イン…

流用して、4分木る1

VBA

こちらで遅かった為の改善策を模索中です。 2D曲線の折れ線化を利用し、重複線の選択1 - C#ATIA曲線の折れ線化については、後回しにして4分木に挑戦です。 8分木の計算式変更して、次元を一つ落とせば良いのだろうと 思っているのですが。 'vba test_Quadtre…

2D曲線の折れ線化を利用し、重複線の選択1

こちらの続きです。 2D曲線の折れ線化 - スプライン - C#ATIA 2DCADであれば比較的、重複線削除の機能を持ったものもあると思います。 AutoCADであればこんな機能です。 OVERKILL[重複オブジェクト削除] (コマンド) | AutoCAD | Autodesk Knowledge Network僕が…

CATIA V5 Time Saving Toolbar

これ、すごいなぁwww.youtube.com全てを把握してはいないのですが、作れないことは無さそうだけど これだけ集められると圧倒されます。これ英語だけど(Fernandoさん ルーマニアの方の様です)無料っぽいです。

2D曲線の折れ線化 - スプライン

こちらの続きです。 2D曲線の折れ線化 - 円弧 - C#ATIA 前回のもののスプライン版です。円弧版同様に、3DからリンクしたものはNGです。 'vba test_Curve2Polyline using-'KCL0.09' '2Dスプラインの折れ線化 Option Explicit '*** 設定 *** Private Const m_PolyTol = 0.…

2D曲線の折れ線化 - 円弧

過去に作った2Dの重複線削除マクロを修正して、再度Upする意欲が 出て来たので、しばらくはこれに取り組みたいと思っています。昔のコードに4分木を適用するのが結構面倒な事になりそうな為、 ほぼ作り直しです。 当時、重複線を判断する際、直線・円弧は何となく…

単独な3D曲線の取得する3

明けましておめでとうございます。 マイペースでやっていきます。 こちらの続きです。 単独な3D曲線の取得する2 - C#ATIA昨年末に線形8分木を実装しましたが、若干効率が悪いことには 気が付いていた為、処理効率を上げるように修正してみました。CATMainを持つ…

コレクションのバブルソートをお借りする

前回が今年の最後にするつもりだったのですが、気になる事があったので これを最後にします。VBAでコレクションや配列をソートしたい場合基本的には無く、単調なものであれば DotNetのArrayListを利用する事も考えるのですが、ちょっと単調ではない 条件(プロパティで と…

単独な3D曲線の取得する2

こちらの続きです。 単独な3D曲線の取得する1 - C#ATIA 前回は総当りの非常に効率の悪い物でしたが、線形8分木による スクリーニング処理を利用し単独な3D曲線を検索するように修正しました。まずはCATMainを持つ標準モジュール "FindSingle3DCurve.bas" です。 'vba F…

不覚にも、KCLのご利用をお考えの方へ

非常に個人的に作成している CATVBA用ライブラリ なのですが、サンプルとして 掲載しているマクロを利用する際には必要となる為、今更ながらご説明です。例えばこちらの場合ですが、 単独な3D曲線の取得する1 - C#ATIA サンプルコードのヘッダ部分を確認してください。 (忘れ…

端点一致を探る、組み合わせテスト11

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト10 - C#ATIA 前回の物を実装する為に書き換えました。 'vba 'モートン順序を利用した8分木空間分割の為のクズコード4 Option Explicit Private Const CLINER8TREEMANAGER_MAXLEVEL = 7 '有効空間分割最大レベル P…

端点一致を探る、組み合わせテスト10

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト9 - C#ATIA 昨日の悩みが全て解消するような、良い方法を思い付きました。 時間が無い為、先にコードです。 'vba 'モートン順序を利用した8分木空間分割の為のクズコード3 Option Explicit Private Const CLINER8…

端点一致を探る、組み合わせテスト9

VBA

こちらの続きです。 端点一致を探る、組み合わせテスト8 - C#ATIA 忙しいので進められる状態では無いのですが、考えもまとまらない為 コード無しです。最初は端点同士の比較の為、空間を跨ぐ事は無いなぁ と考えていました。 今回の様に数値を比較する際、イコール…