C#ATIA

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

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等よく使いそうなものを毎回…

スピードテスト4

こちらの続きです。スピードテスト3 - C#ATIAkantoku.hatenablog.comC#のマクロが遅い最大の原因は、アウトプロセスだろうと思い、 スピードテスト3のソースをDLL化し、VBA呼び出しで試してみました。○インプロセス-ツールバー-C#DLL 1回目:1.798秒 2回目:…

スピードテスト3

こちらの続きです。スピードテスト2 - C#ATIAkantoku.hatenablog.com C#で繰り返し処理と言えば、Linqです。 使わないのはもったいないです。 同等な処理か?と言われれば疑問もありますが、実行結果は同じになります。 SpeedTest_CSクラスのみを修正です。 …

スピードテスト2

こちらの続きです。スピードテスト1 - C#ATIAkantoku.hatenablog.comなるべくVBAと同じになるようにC#したソースコードです。 //C# namespace cattest1 { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Forms; using S…

手始めに

以前、"Unofficial CATIA User Forum" に投稿したものです。 今見てもかなりしょぼいです。 namespace cattest { using System.Windows.Forms; using Microsoft.VisualBasic;//これを使っていたらC#の意味が半減 using System.Runtime.InteropServices;//COM…