C#ATIA

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

C#

2D属性リンクを扱いたい3

大した進展も無いまま、こちらの続きです。(忘れそうなので) 2D属性リンクを扱いたい2 - C#ATIAこちらのC#で作ったやつ、正常に動きませんでした・・・。 3D CAD Model Collection | GrabCAD Community Library 何でだろう、と思ったのでVS立ち上げて実行した…

バインディングに苦しむ

C#

昔、挑戦していた時もこれに悩まされてました。 XAMLデザイナでViewModelが存在しないと言われた場合のメモ - いろいろ備忘録日記現象は同じだけど、プロジェクトはネットワークドライブじゃ無くCドライブ。 ひょっとしたらバインディングをコードビハインドすれば 解決…

CATIAのマクロをDotNetで作る事をオススメしない理由

MVVMお勉強中ですが、イヤになってきたので久々にC#でCATIAの マクロをちょっと作ろうかなぁ と思ったのですが、諦めました。何時かは書こうかと思っていたので、折角の機会なので。 1.マクロの記録が取れない 結構重要です。 個人的には各コマンド類(~Factory.AddNew…

「簡単」すら難しい

C#

過去に社内で使うものはWPFを素のままで作成しましたが、しんどいので Prismを利用する事にしました。 基本的なサンプルから練習しようとこちらのサイトを参考にさせてもらいました。簡単MVVM入門 with Prism - Qiita個人的には、「簡単」すら難しかったです・・・。 …

VS2017

C#

社内で利用する為のツールを作らなきゃならないと思いつつ 数年経ってしまっているのですが、気が重いです。目的のものはGUIが必要なのですが、個人的に非常に苦手です。本来であれば、勉強ついでにPythonで と思っていたのですが GUIが必要となるとC#の方が楽…

GraphicsPathの処理の方向に悩む5

こちらの続きです。 GraphicsPathの処理の方向に悩む4 - C#ATIA プロトタイプとしてこちらのサイトに "Catv5_3DText.zip" と言うファイル名でUpしてます。 GrabCAD - CAD library 使用する際は「.NET Framework4 ClientProfile」以上が インストールされている必要があります…

GraphicsPathの処理の方向に悩む4

こちらの続きです。 GraphicsPathの処理の方向に悩む3 - C#ATIA 昨日のVBAをC#化しました。(VBAと同じ辺りで手間取りました・・・) 実行結果は、こんな感じです。 昨日同様、Y座標の+-が逆なのを忘れてました・・・。 VBAのサンプルでは、池?島?(画像の "電…

GraphicsPathの処理の方向に悩む2

C#

こちらの続き。 GraphicsPathの処理の方向に悩む1 - C#ATIA今回も、他人には全く役立たない私的なメモ書きです。 ◎確認済み ○曲線-曲線 前回未確認だった "MS P明朝" フォントで "木" の右の払い部分。 Listの選択した部分が払いの頂点。前後の部分は予想に反し…

GraphicsPathの処理の方向に悩む1

C#

方向が定まらないので、かなり私的なメモ書きです。 ◎GraphicsPath.PathTypesプロパティ ○value0 ・始点として登録 ・通過点として登録 ・ラインの作成は行わない○value1 ・通過点として登録 ・前の通過点と直線作成○value3(何で2じゃないんだよ・・・) ・スタック…

CATIAでベジェ曲線(2次・3次)を描きたい

こちらの続きです。 CATIAで2次ベジエ曲線を描きたい2 - C#ATIA前回の結果がイマイチ過ぎて、無かった事にさえしてしまいたい ぐらい、モチベーションを失いましたが、最近になりちょっと わかってきました。前回の"くたびれた八角形"は、こんな解釈をしていました。 …

ファイル間リンクの取得5

こちらの続きです。 ファイル間リンクの取得4 - C#ATIA 業務と業務の改善の合間にやっているので、中々進展してません。CATIA.StartCommandを利用する事になる為、まずこちらで言語判定を行います。 C#でお手軽に言語判定を行いたい2 - C#ATIA (言語判定はCatLangua…

C#でお手軽に言語判定を行いたい2

こちらの続きです。 C#でお手軽に言語判定を行いたい - C#ATIA昨日は久々のC#だったので、安易なコードを記載、反省しています。 あまりにVBAっぽ過ぎる・・・修正しました。 //cs //言語 private enum LanguageType { ja, en, fr, de, it, ru, zh, ko, other …

C#でお手軽に言語判定を行いたい

要は、以前記載したこちらをC#化しただけです。 お手軽に言語判定を行いたい - C#ATIAファイル間リンク取得の為に必要になったので作っていたのですが、 "ドキュメントのリンク" ウィンドウを表示させている(とか、コマンドの最中)と ステータスバーの文字が異なっていて、正しく取得で…

ファイル間リンクの取得4

こちらの続きです。 ファイル間リンクの取得3 - C#ATIA VBA(6.5)では、"ドキュメントのリンク" が取得できない事がわかった為、 別の手段で考えました。 作戦としては、C#で "ドキュメントのリンク" の情報を取得し、取得した 情報をVBAで再度取得、と一手間多い方法で行えば可能か…

CATIAで2次ベジエ曲線を描きたい1

こちらの続きです。 3Dの文字モデリングマクロ8 - C#ATIA こちらにも関係しています。 CATIAで3次ベジエ曲線を描きたい1 - C#ATIA VBA版は、辞書ファイルを用意しなければならなかったのですが C#版では辞書ファイル無しにしたい為、何とかフォントのアウトラインを 取得しなけ…

外部ファイルから点を3Dに取り込む3

C#

こちらの続きです。 外部ファイルから点を3Dに取り込む2 - C#ATIAこちらも過去に "Unofficial CATIA User Forum" でUpしたものです。 前回のマクロでも目的は達成できるのですが、大量の点を取り込む際 どうしても時間がかかり過ぎます。 これに悩み、思いついたの…

指定した平面から、穴の中心点を作成する4

こちらの続きです。 指定した平面から、穴の中心点を作成する3 - C#ATIAようやくメインの部分です。 //cs namespace sample_Part_CenterPoint { using System; using System.Collections.Generic; using INFITF;//Catiaのライブラリ using MECMOD;//Catiaのライ…

指定した平面から、穴の中心点を作成する3

こちらの続きです。 指定した平面から、穴の中心点を作成する2 - C#ATIA続いてCATIAを操作する為のCatHelperクラスです。 ラッパークラス的な位置付けです。 //cs static class CatHelper { public static CatiaContainer State { get; set; } public static…

指定した平面から、穴の中心点を作成する2

こちらの続きです。 指定した平面から、穴の中心点を作成する1 - C#ATIAC#化です。まずは、いつも通りのCATIAの主要なオブジェクトを維持しておく CatiaContainerクラスです。 何とか標準化したいところです。 //cs class CatiaContainer { public CatiaCont…

CATIAのコレクションクラスで、お手軽にLinqを使いたい

こちらの最後の方に記載した Viewに基準線を入れる2 - C#ATIA ToEnumerable<T>のようなジェネリックメソッドを真剣に考えてみました。 結局のところ、CATIAのクラス内からコレクションクラスだと言う事を 判断しなければならないのですが、単純にGetType()…

WPFを利用してみる2

こちらの続きです。 WPFを利用してみる1 - C#ATIA後はUI用のウィンドウです。 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="250" Width="300"> <Grid> </grid></window>

WPFを利用してみる1

相変わらず、C#でCATIAのマクロを作成するメリットが見出せないでいます。 ・マクロのボリュームが小さい ・UIが無い の2点が原因かなぁと感じているので、今後はその辺を考慮した上でのマクロ を考えて行きたいと思います。VBAとの差別化を考えた際に思いつ…

Viewに基準線を入れる2

こちらの続きです。 Viewに基準線を入れる1 - C#ATIA C#化しました。 相変わらず大げさなコードです。 //cs namespace Drw_Abs_Line { using System.Linq; using System.Windows.Forms; using System.Runtime.InteropServices;//COMオブジェクトを操作するために…

Viewのロック・アンロック2

こちらの続きです。 Viewのロック・アンロック1 - C#ATIAC#にしてみました。 //cs namespace Drw_View_Lock_UnLock { using System.Linq; using System.Windows.Forms; using System.Runtime.InteropServices;//COMオブジェクトを操作するために必要 using DRAFT…

マクロを高速に実行させる(非公式)

何とか高速に動かないものか?と考えていたら思い出しました。 以前、"Unofficial CATIA User Forum"の常連さんの所で記載し、一人で ゴチャゴチャ書いた方法です。 もう十分時効なので記載します。 個人的な実感として、同じソースコードのマクロであれば、…

DotNetでCATIA V5のマクロを作成する際の準備

DotNetでCATIAのマクロを作成する際の、主な準備などを 記載しておきます。 一番最初に書くべきでしたね。最低限必要だと思われるものは、CATIA V5とVisual Studioです。 (VS無しでも、.NET Frameworkがインストールされていれば・・・ と言う話もありますが…

レイヤーの扱いを考える6

こちらの続きです。 レイヤーの扱いを考える5 - C#ATIA その後あちこち修正してしまったので、まとめてこちら。 //cs namespace catLeyTest { using System.Linq; using System.Diagnostics; using System.Windows.Forms; using System.Runtime.InteropServi…

レイヤーの扱いを考える4

こちらの続きです。 レイヤーの扱いを考える3 - C#ATIA下準備が終わったので、ようやくメインとなる部分です。 //cs using System.Linq; using System.Diagnostics; using System.Windows.Forms; using System.Runtime.InteropServices; using INFITF;//Catiaの…

レイヤーの扱いを考える3

こちらの続きです。 レイヤーの扱いを考える2 - C#ATIA 拡張メソッド用のクラスです。 //cs static class CatExtension { public static CatiaContainer State { get; set; } public static int GetLayer(this HybridShape hy) { State.Selection.Clear(); S…

レイヤーの扱いを考える2

こちらの続き レイヤーの扱いを考える1 - C#ATIAVBAではこれは無理のような気がしますが、 'vba これは動きません LayerNumber = hybridShape.GetLayer() C#の場合なら、拡張メソッドで出来そうです。まず、DocumentやらSelection等よく使いそうなものを毎回…