C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

2016-06-01から1ヶ月間の記事一覧

曲線と戦ってみる11 - 曲線の最小Rを求める

こちらの続きです。 曲線と戦ってみる10 - C#ATIA曲線内の最小Rとなる部分を見つけ出せば、何か糸口が掴めるかな? と思っています。 指定した曲線の最小Rって "式" で取得できる事 知っていましたか?こんな感じです。 "長さ" のパラメータを作成して、画像のよ…

曲線と戦ってみる10

こちらの続きです。 曲線と戦ってみる9 - C#ATIA マクロで作ったサンプル曲線を元に、近似化の際の円弧と曲線の誤差の 比率と、結果をまとめて見ました。 トレランス0.002 OK (%) NG (%) 最大 0.011658 113.8929 最小 0.000001 0.000008 正直、OK時の最小とNG時の最大は…

線を選択しつつ、合計長さを表示する

こちらの続きです。 形状セット内の線の長さをExcelシートに出力する - C#ATIA 線を選択し続けながら、合計の長さを表示し、最後にExcelに 出力します。 'vba GetCurvesLength_ToExcel2 Sub CATMain() Dim TotalLen#: TotalLen = 0# '合計の長さ 'Partの取得 Dim D…

曲線と戦ってみる9

こちらの続きです。 曲線と戦ってみる8 - C#ATIA 曲線の長さとチャレンジする円弧の長さの関係を 掴みたい為、こちらのコードを修正しました。 曲線と戦ってみる4 - C#ATIA何処を修正したのか忘れてしまった為、全てコードを 記載しておきます。(KCLは必要です) 'vba…

曲線と戦ってみる8

こちらの続きです。 曲線と戦ってみる7 - C#ATIA 検証用の曲線を作成するのが面倒になってきたので、 ユニークな曲線を作成するだけのマクロを作りました。 'vba Partファイルにランダムな曲線を作成 Option Explicit Private Const CurveCountMin = 5& '曲線最小数 Pri…

曲線と戦ってみる7

こちらの続きです。 曲線と戦ってみる6 - C#ATIA 一本の曲線を近似化するだけなので、あまりスピードには こだわるつもりは無かったのですが、コードが荒れない程度であれば 高速化したいので、テスト用コードを作成。こちらのType1のコードを見ると、y4yamaさんも曲線…

曲線と戦ってみる6

こちらの続きです。 曲線と戦ってみる5 - C#ATIA 最適な数の点を求める方法がわからないのですが、 曲線とチャレンジする円弧のお互いの長さを考えて 見ることにします。チャレンジする円弧に対し、この区間の曲線の状態は 想像するに3タイプが考えられます。 …

曲線と戦ってみる5

こちらの続きです。 曲線と戦ってみる4 - C#ATIA 色々な曲線を試しているうちに気が付くのですが、 このマクロ欠点が幾つか有ります。 ・直線部分は近似化されない 直線部は、3点通過の円弧が作成出来ない為当然と言えば 当然です。 こんな感じで直線が含まれた…

曲線と戦ってみる4

こちらの続きです。 曲線と戦ってみる3 - C#ATIA コードの理解を深めたかったのと、今後修正等を行いやすくしたかった為 Type1と元に作り直しました。 'vba Arc_Approximated Option Explicit Private Const mPntCount = 151& '曲線上のポイント数 Private Const …

非常に個人的なCATVBA用ライブラリ

-- 重要 -- こちらは古い記述です。 最新のものはこちらになります。 GitHub - kantoku-code/KCL: Library for personal CATVBA (CATIA macro) ------公開するコードを短くしたい為、非常に個人的に作成している CATVBA用ライブラリを公開しておきます。…

曲線と戦ってみる3

こちらの続きです。 曲線と戦ってみる2 - C#ATIA Type1・2・3で共通に利用されているrad_3Pkeisan関数に、 "数学的な部分の一部が、理解出来ていない" 部分が存在しています。 出来れば知りたいところ・・・。結果的には、3点を通過する円弧(=3点を頂点とす…

曲線と戦ってみる2

こちらの続きです。 曲線と戦ってみる1 - C#ATIA 最後にどなたかは忘れてしまいましたが、「このようにすれば、 もっと良いんじゃない?」と言うコードです。 'vbs - Type3 Option Explicit Dim CATIA Dim icd(500, 2), pnt_onCrv(500) Dim icd1(2), icd2(2), …

曲線と戦ってみる1

タイトルを付けたもののゴールを決めていない為、どんな結果になるのか? 何にたどり着くのか? 自分でもわかっていません。かなり以前の話ですが、"Unofficial CATIA User Forum" で、 y4yamaさんが三次元曲線の円弧近似マクロを公開してくれていました。 手元にコード…

RefreshDisplay

「マクロで面を作成し、確認を求める為メッセージボックスをさせた際 画面上に面が表示されない」 との質問を頂きました。(言葉ではわかりにくいのですが)実はこの現象、最初は再現できなかったです。 まず、マクロ側の手間を省きたかった為、形状セットを作成し XY平面上にス…

ProductTree の リオーダー

今日までは暇なので、こちらの動画を見ていました。 www.youtube.com Productのリオーダーをマクロでどうやるのか知らなかったのですが、 動画に表示されているコードを見ると、単にカット&ペーストで処理するだけ なんですね。(動画のReorder_Tree関数部分)単純にTreeを逆…

シルエット(事前選択+CATIA.StartCommand)

こちらの続きです。 マクロの活用例?2 - C#ATIA動画の最初の20秒ぐらいまでの処理を真似てみました。 'VBA シルエット-スプリットテスト Private Const SilhouetteCommand = "シルエット" Sub CATMain() 'Body Dim BaseBody As Body Set BaseBody = SelectItem("Bodyを選択し…

マクロの活用例?2

こちらの続きっぽい感じです。 マクロの活用例? - C#ATIA 少し時間が出来たので、この方の動画を見ていました。 Tere Padayhag - YouTube 僕のマクロとは桁違いにパワフルです。 よく見ると、日本語表示されている動画もあります。 (ファソテックさん辺りの女性…