C#ATIA

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

Python

pycatiaを味わう6

こちらの続きです。 pycatiaを味わう5 - C#ATIA時間が無く書けなかったので、思い出しつつ書くので 間違っている可能性が有ります。can_execute関数では、アクティブなドキュメントのタイプで 実行出来ない場合をはじき出す為の関数なのですが、生憎 pycatia…

pycatiaを味わう5

こちらの続きです。 pycatiaを味わう4 - C#ATIA折角なので、既存のVBAマクロをpython化します。 CATIA_V5_SimpleMacroMenu/sample/sample_Draft_View_Lock_UnLock.bas at master · kantoku-code/CATIA_V5_SimpleMacroMenu · GitHub # pycatia Draft_View_Loc…

pycatiaを味わう4

関連無いのですが、こちらの続きです。 pycatiaを味わう3 - C#ATIAreferenceのお話です。わかりにくいですよねreference。 でも避けては通れないです。こちらのサンプル見ていると、ちょっと不思議な気がしました。 pycatia/examples/example__hybrid_shape_…

pycatiaを味わう3

こちらの続きです。 pycatiaを味わう2 - C#ATIA個人的にpython使うのであれば、型ヒント使いたいです。 でも前回はわかりませんでした・・・。幾つくサンプルを試した際にわかりつつあります。 例えば、PartDocumentがアクティブな状態の際はこの様にするよ…

"プロパティをリセット"コマンドをマクロで実行2

こちらの続きです。 "プロパティをリセット"コマンドをマクロで実行1 - C#ATIA基本的に断念しているのですが、"UI Automation"と言うものの存在を 知りました。 【VBAでUIAutomation】アプリケーションをマクロで動かす | やろまいCode"UI Automation catia"で検索…

ボディの体積をダンプする6

こちらの続きであり、 ボディの体積をダンプする5 - C#ATIA こちらの続きです。 pycatiaを味わう2 - C#ATIA折角pycatiaの開発環境が出来たので、VBA相当の処理を試してみます。 # pycatia test import os import sys sys.path.insert(0, os.path.abspath("..…

pycatiaを味わう2

こちらの続きと言いますか、解決です。 pycatiaを味わう1 - C#ATIA単純な事でした・・・。 もう一度vscode上での操作で最初から記載しておきます。〇フォルダ作成 エクスプローラ上で任意のフォルダを作成。 別の方法でも構いません。〇vscodeを起動 先程の…

pycatiaを味わう1

気になっていたpycatiaを試してみることにしました。 但し、不完全で解決する方法がわかりません。 解決方法がわかったら別途記載しますが、取り組んだ事を 忘れてしまいそうなためのメモ書きです。pycatia自体はこちらです。 GitHub - evereux/pycatia: pyt…

ルーティングを行いたい2

こちらの続きです。 ルーティングを行いたい1 - C#ATIA こちらも関連してます。 Canvasでon_hoverイベント3 - C#ATIA早い話が、くっ付けました。 # python using-flet import flet as ft import flet.canvas as cv import math def main(page: ft.Page): can…

ルーティングを行いたい1

あまり複雑にはしたくなかったのですが、どうしても1画面では 無理そうなため、ルーティングを行う事にします。幸い以前にルーティングのサンプルを読んでいたので、こちらを お借りしました。 Fletを試す(3) - 画面遷移(ルーティング)の調査 - Qiita理解…

Canvasでon_hoverイベント3

こちらの続きです。 Canvasでon_hoverイベント2 - C#ATIAtextfieldに"x,y,直径"を入力するとそれに該当する円を描くように 修正します。 TextField | Flet 描かれた円上でホバーすると色が変わります。 # python using-flet import flet as ft import flet.c…

Canvasでon_hoverイベント2

こちらの続きです。 Canvasでon_hoverイベント1 - C#ATIA単にマウスカーソルの座標値だけでは無く、Canvas内の要素上の 判断を付け加えます。shapeの中でもCircleを利用したいです。 Canvas | Flet shape自体でon_hoverイベントが利用出来ると楽なのですが、…

Canvasでon_hoverイベント1

やっと出来た・・・。ちょっと2DCAD的な画面を作りたいと思っているのですが、fletの場合は Canvasを利用するのだろうと思います。 Canvas | FletImageを利用してsvgをゴリゴリ作って・・・とも思いましたが、Canvasの 方が楽そうです。そこでこの様な(セン…

コントロールにコンテキストメニューを追加したい2

こちらの続きです。 コントロールにコンテキストメニューを追加したい1 - C#ATIAコンテキストメニュー代わりにアラートを表示させてみました。 import flet as ft def main(page: ft.Page): def close_dlg(e): dlg_modal.open = False page.update() dlg_mod…

コントロールにコンテキストメニューを追加したい1

コントロールにコンテキストメニュー(右クリックのメニュー)を 追加したい。最悪、出来ない様であればボタンを配置しますが、 イチイチボタンを配置するとスペースが狭くなるので避けたいのが 本音です。コントロールそのものにコンテキストメニューを表示す…

スクロールバーを使いたい2

こちらの続きです。 スクロールバーを使いたい1 - C#ATIAcolumnの中にD&Dのコントロールを配置します。 ft.Draggableを他のコントロールのcontentに入れてしまうと、 D&D出来なかった事が度々あったのでそちらの確認です。CharacterクラスとDragAndDropItem…

スクロールバーを使いたい1

コンテンツが多い場合、スクロールバーを利用出来るようにしたい のですサンプル探した所、公式のものが有りました。 examples/column-scroll.py at main · flet-dev/examples · GitHub https://www.youtube.com/watch?v=ooDiZAiIVUo何でこんなに清楚に書け…

ツールツリー

こちらの続きです。 ツールクラスとマネージャー - C#ATIAツールを管理するツールマネージャーとD&Dリストビューを 組み合わせました。D&Dリストビューはこちらを成長させたものです。 D&Dで入れ替わるリストビュー4 - C#ATIA既にコードが肥大化し、とても…

ツールクラスとマネージャー

これを作らないと先に進まない気がしてきたので、機能不足ながら、 取りあえず作りました。 import json class Tool(): ''' ツール ''' def __init__(self, infos: dict) -> None: self._type = infos['type'] self._dia = infos["dia"] self._feed = infos[…

D&Dで入れ替わるリストビュー4

こちらの続きです。 D&Dで入れ替わるリストビュー3 - C#ATIAほぼ進展ないのですが、コントロールのdataに文字列ではなく、 オブジェクト的なものを代入出来るものかどうかをテストしました。 # python using-flet import flet as ft class Character(): def…

D&Dで入れ替わるリストビュー3

こちらの続きです。 D&Dで入れ替わるリストビュー2 - C#ATIA 欲しかった動作が出来たような気がします。 左はいそのグループで、右はさくらグループです。 あぁ境界線ぐらい設けるべきでしたね。 お互いのグループ内での入れ替えはOKです。 しかし、いその…

D&Dで入れ替わるリストビュー2

こちらの続きです。 D&Dで入れ替わるリストビュー1 - C#ATIAListViewでは無く、ListTileの方が綺麗だからそちらを使おうと 試したのですが、ちょっと思った様な書き方が出来ずに断念。 (恐らく力量不足)結局ListViewにしてみた所、前回のものがほぼ流用出…

D&Dで入れ替わるリストビュー1

デモ用の社内アプリを社内で公開したので、ちょっと時間が 確保出来そうなので次のものに取り組みます。リスト表示された項目をドラッグアンドドロップで、入れ替わるような 物が欲しいです。こんな感じです。 JavaScriptとHTMLを使ってドラッグアンドドロッ…

auto-py-to-exe

大まかに社内アプリが出来てきたので、exeファイル化して 確認作業中です。こちらのサイトを参考に"auto-py-to-exe"を利用させてもらっています。 Pythonだけでクロスプラットフォームなアプリを作れるFletについて - Qiita これだけでexeファイル出来上がる…

FilePickerのデフォルトファイル名を動的に設定したい

こちらにあるサンプルは複数選択を行うFilePickerです。 FilePicker | Fletデータを保存する機能を付けたいので、ファイル保存ダイアログとして 変更しました。 # python using-flet import flet as ft def main(page: ft.Page): def save_file_result(e: ft…

ファイルが"読み取り専用"か調べ、切り替える

"読み取り専用"は、ファイルのプロパティを開いた際の ここのお話です。 VBAであれば、この辺で調べられますね。 Office TANAKA - FileSystemObject[Attributesプロパティ] 簡単に見つかると思ったのですが、見つからず・・・。 言葉のニュアンスの問題なの…

日付を判断する

こちらで使った文字を日付として判断するis_date関数の お話です。 Fletのテキストフィールドでのバリデーション2 - C#ATIA必要だったため、もうちょっと改修します。datetime.strptimeメソッドの場合、 '2023-05-22'は日付として変換出来ますが、 '2023/05/…

Fletのテキストフィールドでのバリデーション2

こちらの続きです。 Fletのテキストフィールドでのバリデーション1 - C#ATIAこんな感じっぽいです。 #python import flet as ft from datetime import datetime class ValidateTextField(ft.UserControl): ''' バリデーション付きテキストフィールド ''' def…

Fletのテキストフィールドでのバリデーション1

文字を入力した際のバリデーションをしたいんです。例えばマクロで要素を選択してOKボタンを押すと"平面を選択して下さい!"とか、 ファイルを開こうとしてフォルダの深い階層のファイルを選択してOKボタンを 押すと”現在のファイルは変更されています。それ…

FletAppで終了時のイベントを取得したい2

こちらの続きです。 FletAppで終了時のイベントを取得したい1 - C#ATIA前回思い付きコメントした事を実装しました。 #python import flet as ft def main(page: ft.Page): set_page(page) page.add( ft.ElevatedButton( text='押すと終了', on_click=lambda …