2024年12月07日

StepからSVG/PNG/3DPDF変換

以前に3DデータのStepファイルを2Dに落とし込む際にFreeCADを使ってベクトルデータのままSVGファイルに変換する方法について紹介しました。複数の投影面で出力したい場合や変換したいファイルが多い場合はなかなか手間を要します。そこで新しいプロジェクトとして、Step2Svg.comのオンラインサービスを開始しましたので、こちらで紹介したいと思います。本サイトでStepファイルをオンラインで変換することで3DCADソフトウェアがインストールされていない環境でも共有や活用しやすい形式に変換することができます。

ConversionImage.png

Step2Svg.comでは3DデータのStepファイルを2Dデータもしくは3DPDF形式に変換することが可能です。2DデータはSVGやDXF、PNG形式に対応しています。3Dデータを6面にそれぞれ投影したデータとして6ファイルをダウンロードすることが可能です。なお、現時点ではサーバの制約上、Stepファイルの最大ファイルサイズは10MBに制限しています。

例えば下記のような3DCADソフトウェアがない場合にStep2Svg.comが便利です。
・他のユーザへ3Dデータを共有したい
・3DCADソフトウェアを使用せずに3Dデータを2Dデータの平面図に展開したい
・Stepファイルの中身を確認したい


例えば下記のように3DCADソフトウェアがある場合でもStep2Svg.comを活用することで更に便利になります。
・3DPDFを生成したい
・3Dデータを平面のベクタデータに変換したい


費用は1回の変換で100円です。信用支払い形式をとっているため、変換の際のユーザ登録不要、お試し変換自体は無料です。ただし、変換後のデータを削除せず、何かしらの目的をもって使用される場合はその変換に対してのみ、変換後に費用をお支払いください。


Stepファイルからイメージ図をベクターで作成する場合はSVGやPNGの変換が便利です。

3DPDF変換は3DCADデータがない環境で3Dデータを確認する際にAdobe Acrobat等のPDF Readerで確認することが可能なため便利です。なお、3DPDF変換形式をPDF Readerで開く際は通常、3Dコンテンツが無効となっているため、警告が出て表示されません。「オプション」から「今回のみこの文書を信頼する」をクリックすることで3DPDFデータを確認することが可能です。

3DPDF_Warning.png


3DPDF_Image.png

PDF Readerで3DPDFデータを立体で確認することが可能です。マウス操作で様々な向きや背景色を変更することが可能です。


現状はSVGやDXF、PNG、3DPDF形式に対応していますが、今後、要望に応じて変換形式やオプション等を増やしていきたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2024年08月17日

TkEasyGUIへの移行

Pythonで簡易的なアプリを作成する際に便利なライブラリとしてPySimpleGUIがあります。ただ、商用ユースでは先日から有償化され、個人ユースであってもライセンス登録が必要です。ライブラリ自体の使い勝手という点で難があるため、PySimpleGUIと互換性があるTkEasyGUIに移行してみました。ただし、互換性があるといっても完全互換ではないため、今までのコードそのままでは動かない場合が多々あります。

今回は自作アプリをTkEasyGUIに移行した際に互換性がなく、コード修正が必要になった箇所について紹介します。自作アプリ内で気づいた範囲のため、その他にも互換性がない箇所があると思いますが、今回分かった範囲で紹介したいと思います。


⓪ライブラリの変更
当然ながらライブラリを変更します。

import TkEasyGUI as sg
#import PySimpleGUI as sg


@テーマ
テーマ名が異なるため、'DarkGreen6'等のテーマは使用できません。
コメントアウトするか、下記のようにデフォルトもしくはwinライクなテーマを設定する必要があります

sg.theme('default')
sg.theme('winnative')

Aupdate
Updateからupdateに修正が必要です

window["-msg-"].Update("Some Message")
window["-msg-"].update("Some Message")

Brefresh
Refreshからrefreshに修正が必要です
window.Refresh()
window.refresh()

Cvalue
テキストボックスのvalueはTkEasyGUIでは定義されていません。
下記のように第一引数に変更する必要があります。
window["-msg-"].(value='OK', text_color='#00F000')
window["-msg-"].('OK',text_color='#00F000')


Dvisible
見ないようにするvisible機能はTkEasyGUIでは定義されていません。
項目自体を削除するか、消したのと同じような処理に修正する必要があります。
visible=false
➡ないので削除する


互換性がないのは仕方ないことですが、ライブラリだけ移行するだけでは下記のように非常に分かりにくいエラーが発生するのみで原因を調べるのに苦労しました。上記のような修正をすることでTkEasyGUIに移行して同等の機能を確認することができました。


return self.tk.call(self._w, 'cget', '-' + key)
~~~~^~~~~
TypeError: can only concatenate str (not "int") to str

この他にも互換性がない部分について分かれば紹介してみたいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2024年06月15日

flashrom初期化エラー

SPI Flashを高速に読み書きするツールにflashromがあります。flashromは対応しているメモリやライタが豊富なため、非常に便利です。今回はflashromを久しぶりに使用する際に初期化エラーに遭遇したため、その対処方法について紹介したいと思います。

flashromは様々なライタに対応するため、USBインタフェースのライブラリとしてlibusbを使用しています。そのため、特にWindows版のflashromにおいて、ライタの標準ドライバそのままでは下記のようなエラーが出て、初期化に失敗します。ライタの標準ドライバからlibusbに対応したドライバに変更する必要があります。


■CH341Aのエラー例
flashrom -p ch341a_spi

libusb: info [init_device] 0x45b:0x82a0 found 1 configurations but device isn't configured, forcing current configuration to 1
Couldn't open device 1a86:5512.
Error: Programmer initialization failed.


■CP2102Nのエラー例
flashrom -p developerbox

Opening the USB device at address 1-25 failed (LIBUSB_ERROR_NOT_SUPPORTED)!
Could not find a Developerbox programmer on USB.
Error: Programmer initialization failed.

■FT232Hのエラー例
flashrom -p ft2232_spi:type=232H

Unable to open FTDI device: -4 (usb_open() failed)
Error: Programmer initialization failed.

■標準ドライバからlibusbにドライバに変更する方法

⓪今回はWindows版flashromとしてこちらのバイナリを使用しました。flashromのバイナリの他にドライバを変更するツールzadig-X.X.exeも同梱されています。

@デバイス検索
flashromのバイナリに同梱されているzadig-X.X.exeを起動させ、OptionからList All Devicesをクリックします。


driver_search.png

Aリストからライタとして使用するデバイスを選択後、置き換える対象として「WinUSB」を選択してReplace Driverをクリックします。
今回はUSB-EPP/I2C CH341Aを選択しました。なお、ドライバ変更を伴うため、ライタ以外のデバイスを選択しないように注意してください。

driver_install.png

上記で数分待つと自動的にドライバ変更が完了します。初期化エラーが解消し、flashromで使用できるようになります。ただし、これまで標準ドライバで動いていたソフトウェアが逆に動作しなくなるor認識できなくなるため、flashrom以外の用途で使用する場合はドライバを標準ドライバに戻す必要があります。特にCP2102やFT232等ではWinUSBドライバに変更するとWindows側からCOMポートとして認識されなくなるため、flashrom以外の用途で使用する場合は注意が必要です。

その場合は下記のようにライタとして使用するデバイスを選択後、置き換える対象として「USB Serial(CDC)」を選択してReplace Driverをクリックしてもとに戻すことで標準ドライバに戻すことが可能です。


driver_back.png



特にややこしい点として、使用するライタによってlibusbのエラー出力が異なるため、久しぶりにflashromを使用すると何が原因なのか調査に時間を要してしまいました。今後、flashromを活用した便利なコマンド例等を紹介したいと思います。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2024年05月25日

StepからSVGへの変換

メカ設計に限らず、電気設計でも部品やコネクタ等の3Dデータから2Dデータに変換してイメージ図を作成する機会があると思います。今回はStepファイルを2Dに落とし込む際にベクトルデータのままSVGファイルに変換する方法について紹介したいと思います。

今回はStepファイルからSVGファイルへの変換としてFreeCADを使用します。

@FreeCADを起動し、Stepファイルを開きます

freecad1.jpg


A必要に応じて2Dデータとして落とし込みたい向きにビューを変更します
数字の1~6を押すと向きを簡単に変更できます

freecad2.jpg

B続いて2Dデータに落とし込むために「TechDraw」をクリックします

freecad3.jpg

C「TechDraw」のデフォルトページ挿入のボタンを押します

freecad4.jpg

DStepファイルのオブジェクトをクリックして、ビュー挿入をクリックします

freecad5.jpg

EPageをクリックし、SVGエクスポートボタンを押してSVGファイルを保存します

freecad6.jpg

なお、デフォルトでは図面の枠や背景もSVGファイルとして出力されてしまいます。もし、それらを除く場合は下記のようにtemplateをクリックし、templateを変更します。例えば、「A4_Landscape_blank.svg」に変更すると図面の枠や背景なしで出力することが可能です。

また、3Dプリンタ出力用のSTLファイル等のソリッドになっていないファイルの場合はそのまま「TechDraw」で2D平面に落とし込むことができません。ソリッド変換してから2D平面に落とし込む必要があります。最初にBで「TechDraw」をクリックする前に「Part」をクリックし、「パート」内の「メッシュから形状を作成」をクリックします。その後、生成された形状ファイルをクリックし、「パート」内の「ソリッドに変換」をソリッドに変換してからBの「TechDraw」で2D平面に落とし込んでください。


生成したSVGファイルはInkscape等で編集することが可能です。FreeCADを使った便利な機能等も今後、紹介していきたいと思います。

■追記
インストールが面倒な場合や変換ファイル数が多い場合はWebサービスを活用すると便利です。
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする

2024年01月06日

LTspice NE555の場所

今年もよろしくお願いします。今回は覚書としてLTspiceでタイマIC、NE555のモデルの場所を紹介します。

Componentを選択後、「Misc」内にNE555があります。


NE555_1.png

Miscをクリックすると下記のリストに切り替わります。

NE555_2.png


以前からモデルが入っているはずなのに場所が分からず、活用できていませんでした。仕方なく、外部ファイルをインポートする方法で対応していましたが、Miscの中にあることが分かり、簡単にシミュレーションすることができました。横断的にモデルを検索、確認できるとより便利ですが・・・
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | ナレッジ | このブログの読者になる | 更新情報をチェックする