ラベル IT の投稿を表示しています。 すべての投稿を表示
ラベル IT の投稿を表示しています。 すべての投稿を表示

2024年3月30日土曜日

GAEのPHP5からPHP8への移行について

先日、GAE(Google App Engine)で急にデプロイできなくなってしまったので原因を調べてみると、PHP5のサポートが終了してしまったことが原因でした。

GAEのPHP5からPHP8に移行するには、app.yamlとフロントコントローラー、それと一部の関数を変更する必要があります。

app.yamlとコントローラーについては多くの情報があったのですぐに対応方法がわかりましたが、関数のところでハマってしまいました。具体的にはmail関数です。

GAEのPHP8でmail関数を使うには以下の手順が必要となります。

1)公式サイト等を参考にapp.yamlとフロントコントローラーを適切に変更。

2)gcloud components update

でgcloudを最新に更新。

3)ソースコードのディレクトリのトップで

composer require google/appengine-php-sdk

を実行。(vendorディレクトリとconposer.jsonが生成される。)

4)php.iniを追加して以下を記述

extension = mailparse.so

sendmail_path = "php ./vendor/google/appengine-php-sdk/src/Runtime/SendMail.php -t -i"

GAEでPHP5からPHP8へ移行する際、mail関数を使用している場合の参考になれば幸いです。


2023年7月1日土曜日

ロール曲げ可否自動判定APIの無償公開

山十佐野製作所のロール曲げ可否自動判定で使用しているAPIを無償公開いたします。

認証について

APIの認証にはGoogle Firebaseを使っています。

最初にhttps://yamaju-api.de.r.appspot.com/にアクセスしてAPIアカウントを作成し、APIキーを取得してください。

APIの使用方法

https://yamaju-api.de.r.appspot.com/v1/plbend にGETリクエストを送信することで利用することができます。

パラメータ

ys: yield strength / 降伏点・0.2%耐力

ベンディングロール機械メーカーから提供された値を使用しています。

製鉄メーカーの仕様書の機械的性質とは異なりますのでご注意ください。

今のところサポートしているのは以下の値です。(アルファベット順)

A1050255
A5052294
A5083294
C1020255
C1100255
C2801412
HITEN590637
HITEN780872
HITEN980872
S-TEN1255
S-TEN2352
S45C392
S50C415
SA-387 Gr11 CL2552
SB410343
SB450372
SB450M392
SB480392
SB480M411
SGV410343
SGV450372
SGV480392
SLA235A275
SLA325352
SLA360392
SLA410450
SM400323
SM490392
SM490Y412
SM520412
SM520C412
SM570510
SMA400323
SMA490392
SMA570510
SPHC294
SPV235255
SPV315352
SPV355392
SPV410450
SPV450490
SPV490540
SS330255
SS400255
SS490343
SS540431
SUS304294
SUS310S294
SUS316314
SUS316L268
SUS329J3L659
SUS329J4L645
SUS444441
TP270255
TP340314
WEL-TEN590RE637

t: thickness / 板厚

サポートされている板厚は以下の通りです。

1.6
2
2.3
2.5
3
3.2
4
4.5
5
6
8
9
10
12
14
15
16
18
19
20
22
25
28
30
32
35
36
38
40
45
50
55
60
65
70
75
80
85
90
95
100

h: height / 高さ(円筒の長さ)

高さ(円筒の長さ)を正の整数で指定してください。(弊社で一番大きな機械の幅が3mなので、それ以上の値を入れても不可の判定しか出ません。)

d: diameter / 直径(内径Φ)

曲げ径を正の整数で指定してください。

a: angle / 曲げ角度

R曲げを判定したい場合、曲げ角度を0 < a < 360で指定してください。

(例えば半円曲げの場合は180)

円筒曲げ(1周)の場合は省略してください。

scf: spring back coefficient / スプリングバック係数

スプリングバックが激しい材質の時に任意で0 < scf < 1の値を指定してください。

例えば弊社ではチタンの場合に0.6と指定しています。

key: API Key

取得したAPI Keyを指定してください。

API Keyを忘れてしまった場合はhttps://yamaju-api.de.r.appspot.com/にログインして確認できます。

返り値

5種類の機械での可否判定がJSON配列として返ってきます。

1台ごとに、端曲げができるか、余長付きなら曲げられるか、幅が広過ぎないか、弧長が短過ぎないか、がtrueかfalseで示されています。機械の順番は以下の通りです。

1台目:MP230-2230

2台目:MJ25-0315

3台目:MP230NC-6005S

4台目:MP100-1130

5台目:MJ30TNC-0525

APIの使用例

例えば

SS400 t4.5 内Φ500 高さ800 のロール曲げ可否を調べたい場合は、

https://yamaju-api.de.r.appspot.com/v1/plbend?ys=255&t=4.5&d=500&h=800&a=&scf=1&key=[取得したAPI Key]

にリクエストを送ると、

[[false,false,false,false],[false,true,false,false],[false,false,true,false],[true,true,false,false],[true,true,false,false]]

という値が返ってきます。これは、

1台目:MP230-2230

端曲げ×、余長付き曲げ×、幅は大丈夫、弧長も大丈夫 → 不可

2台目:MJ25-0315

端曲げ×、余長付き曲げ〇、幅は大丈夫、弧長も大丈夫 → 余長付きなら可

3台目:MP230NC-6005S

端曲げ×、余長付き曲げ×、幅が広過ぎて機械に入らない、弧長は大丈夫 → 不可

4台目:MP100-1130

端曲げ〇、余長付き曲げ〇、幅は大丈夫、弧長も大丈夫 → 可

5台目:MJ30TNC-0525

端曲げ〇、余長付き曲げ〇、幅は大丈夫、弧長も大丈夫 → 可

という判定です。

最後に

元々は町工場が自社サイト用に片手間で作ったものですので、至らない点が多々あるかとは思いますが、無償公開ということでご理解いただけますと幸いです。

人手不足の時代となり、設計や見積りにますます自動化が求められると考えています。そのような中で、ロール曲げに関する効率化の一助となればと思い、無償公開に至りました。使用方法で不明な点があればお問い合わせいただけますと幸いです。


2022年8月8日月曜日

DraftSightでAutoLISPを使うには

 本記事はDraftSightでAutoLISPを使うための情報をまとめたものです。

https://www.3ds.com/ja/products-services/draftsight-cad-software/ より

 DraftSight(ドラフトサイト)とは、フランスのダッソー・システムズ社が提供している2DCADソフトウェアです。製品の詳しい説明はWikipediaに譲りますが、業界のデファクトスタンダードであるAutoCADと非常に互換性が高いのが特徴です。以前は無償版がありましたが、残念ながら2019年からは有償版のみとなっております。

 弊社は設計部門があるわけではないので高度なCADソフトウェアは必要ありません。しかしながら、お客様から支給されたCADデータから曲げ加工図を描いたり展開をしたりといった作業が発生します。そこで、以下の条件を満たすCADソフトウェアを探してきました。

・お客様のCADデータとの互換性が高いこと(つまり業界のデファクトスタンダードであるAutoCADのDWGファイル形式を問題なく扱えること)

・自動化ができること(マクロやAPIが充実していること)

・世界の市場シェアが低すぎないこと(マイナーだと生産停止の恐れがあるため)

・AutoCADと比べて安いこと

 いろいろなCADソフトウェアを調べた結果、弊社ではDraftSightのProfessional版を選定して利用しております。ちなみにAutoCADの年間使用料金は71,500円で、DraftSightの年間使用料金は35,925円ですのでおよそ半額です。

 さて、今回弊社では生産性向上のためにCADの作図作業の効率化を図るべく、DraftSightでAutoLISPを使った自動化を行いました。その際、DraftSightでAutoLISPを使うための情報がとにかく少なかったため、こちらの記事にまとめておこうと考えた次第です。

 AutoLISPプログラミングそのものに関する情報は、AutoCAD向けに説明したサイトが多数あるためそちらに譲ります。本記事ではAutoLISPプログラムをDraftSightで動かす方法についてのみ説明いたします。

1.DraftSightでAutoLISPプログラムを動かすには

 メニューから ツール → アプリのロード を選択し、AutoLISPファイル(.lspファイル)を開くと実行されます。

2.DraftSightの起動時に任意のAutoLISPプログラムが自動的に実行されるようにするには

 まず、メニューから オプション を選択し、

ファイルの場所 → システム → サポートファイルの検索パス を開いてパスを確認します。

(例)

C:\Users\[ユーザー名]\AppData\Roaming\DraftSight\22.0.1022\Support\

C:\Program Files\Dassault Systemes\DraftSight\Default Files\Support\

 おそらくUsers配下のフォルダの方に、以下の内容が書かれたstart.lspというファイルがあるはずです。

;;; START.lsp for DraftSight

;;; ==============================

(if (findfile "startup.lsp")

(load "startup.lsp")

)

 これを見ると、同じフォルダにstartup.lspというAutoLISPプログラムがあれば自動的に読み込まれるようになっています。したがって、このフォルダにstartup.lspというファイルを作り、その中へ起動時に自動実行したいAutoLISPコードを書けば解決です。

 以上、DraftSightでAutoLISPを使うための情報でした。日本語はおろか英語でもネットで情報が見つけられなかったため、誰かのお役に立てば幸いです。

2022年1月10日月曜日

町工場DXの一環としてVB6プログラムをVB.NETに移行しようとした(そして断念した)話

 今回のテーマは製缶板金加工ではなくソフトウェア開発の話です。

しかも成功ではなく断念した話なのですが、世間でさかんにDXが叫ばれている中、これから同じような状況に遭遇する方達がいるのではないか、トライしたツール情報など何かお役に立てばと思い記事を書こうと考えました。

弊社で使用しているベンディングロール(ロール曲げを行う機械)には、4つのパラメータ(降伏点、板厚、曲げ径、板幅)を入力すると、曲げの可否等を演算してくれるソフトがあります。弊社では機械を5台所有しておりますので、ソフトウェアもそれぞれ用に5種類購入してありました。(正確にはメインのプログラムが1つあり、いわゆるアドインのような形で各機械ごとの演算機能が追加されます。)

このようなソフトウェア構成ですので、例えば「この製品はどの機械で曲げられるのか?」を調べたい時に、いちいち5個の機械ごとに入力して確かめなければならず、非効率的だと感じていました。また、将来的には業務ソフトと連携させて自動で演算させるところまで進めたいという希望もありました。

そこでまず、どのように実装できる可能性があるのか見当を付けるために、リバースエンジニアリングをしてみることにしました。

この演算ソフトはEXEファイルですので中身を知ることはできません。そこで、まずは無償版の逆アセンブラをいくつか試してみました。

EXEからネイティブコードへ逆アセンブリできたのは以下の3つです。

1)VB Decompiler

https://www.vb-decompiler.org/products/jp.htm

2)snowman

http://derevenets.com/index.html

3)Ghidra

https://ghidra-sre.org/

https://www.bioerrorlog.work/entry/ghidra-beginner


※その他、JEBも試しましたが起動すらできませんでした。原因を調べる時間がもったいないので断念です。

https://www.pnfsoftware.com/jeb/community-edition


さて、ネイティブコードへ逆アセンブリした結果、このソフトウェアはVisual Basic 6.0で書かれていることがわかりました。前述のツールのうち、1)VB Decompilerは有償版(VB Decompiler Business License $229)でソースコードにデコンパイルまでできるとのこと。さっそく購入して試してみることにしました。

その結果、Visual Basic 6.0のソースコードらしきものを生成することができました。もしこのソースを自分でコンパイルすることができれば、DLL化して別のプログラムから呼び出すすることもできるでしょう。そうすれば自動化も可能になります。

しかしここで問題が1つ生じます。弊社は製缶板金業を営む町工場ですので、本格的なソフトウェア開発環境が整っているわけではありません。具体的には、Visual Basic 6.0のコンパイルに必要な古いバージョンのVisual Studio(6.0)を持っていないのです(持っているのは最新の無償版だけ)。調べてみたところ、Visual Studio 6.0を手に入れるには、年間10万円以上のMSDNサブスクリプション契約が必要とのことでした。

Visual Basic 6.0 (VB6) のダウンロードについて | 民主主義に乾杯 (python.ms)

そこで、Visual Basic 6.0からVisual Basic .NETへ変換できないかと考えます。Visual Basic .NETであれば、無償版の最新Visual Studioでコンパイルできるからです。

調べてみると、有償の変換ツール(サービス)がいくつかありましたが価格が載っておらず、代わりに「100人月を40人月に減らす」といった謳い文句が載っておりました。IT業界のことはよくわかりませんが、仮に1人月80万円とすると4,800万円のコストダウンに繋がるようなツール(サービス)です。少なくとも数百万円であろうと想像しました。

そこで何とか無償のツールが無いかと探していたところ、gmStudioというソフトウェアの評価版を見つけました。

VB6 to .NET | ASP to .NET | Tools - Great Migrations

評価版では11,000行までというリミットはありますが、とりあえず変換ができるかできないかの判断には使えます。

早速ダウンロードしてトライしてみたところ、空っぽのアウトプットが生成されてしまいました。エラーログを確認したところ、

Content: 140 As String * 5

Expecting identifier of variable being defined 140

RecNo  Content of record

1196         Dim 140 As String * 5

といった文法エラーが発生しておりました。VB Decompilerでデコンパイルしたソースコードには、変数名140のようなソースが含まれてしまっていたようです。

VB Decompilerのメーカーに問い合わせたところ、「Webサイトで謳われているように、ネイティブコードからのデコンパイルの成功率は最高75%で、残念ながらデコンパイルがうまくいかないケースがある」とのことでした。

(変数名が数字にならないようにするぐらいならすぐに改修できるのではないか・・・?)と思いながらも、デコンパイルが上手くいかないのであればリバースエンジニアリング自体をあきらめるしかありません。仕方なく、別の方法で解決することにした、というお話でした。

もし時間ができたらまた記事を書こうと思いますが、概略としてはPythonのAppiumを使ってRPAプログラムを書きました。そして、それを応用して実装したのがロール曲げ自動判定ページです。製缶板金業以外の方には役に立たないと思いますが、一応リンクを張っておきます。

ロール曲げ可否自動判定 (yamajusano.com)

また、せっかくProバージョンのVB Decompilerを購入したので、もし「このEXEをデコンパイルしてみてくれないか」といったご要望があればご相談ください。(ただし著作権等の問題があるものはご遠慮ください。)

最後に、町工場のようなアナログ世界の方こそDXによる伸びしろは大きいと考えています。ITを生かして町工場のDXを一緒にやりたいという方、社員としてでも、パートナー企業としてでも、ご興味がありましたらお気軽にお声をお掛けください。


2021年11月30日火曜日

ロール曲げ可否自動判定

ロール曲げの可否を自動判定できるフォームを公開いたしました。

ロール曲げの可否は

①材質(降伏点)

②板厚(mm)

③曲げ径(mm)

④幅(mm)

の組み合わせで決まります。

弊社の自動可否判定フォームにこれらのパラメータを入力すると、メールで判定結果が送られてくる仕組みです。


「とりあえず今すぐロール曲げで加工できるかどうか知りたい」といった時にご利用ください。スマホにも対応しておりますので、いつでもどこからでもご利用いただけます。

材質に関しては、取り急ぎ、鉄(SS400相当)、ステンレス(SUS304相当)、アルミ(A5052相当)に対応しております。

どうぞよろしくお願いいたします。

ロール曲げ可否自動判定フォームはこちら

2021年6月16日水曜日

3DのPDFが開けない時の対処方法

 3Dコンテンツが含まれるPDFファイルは大抵のパソコンにインストールされているAdobe Acrobat Reader DC(無料)で開くことができます。手順は以下の通りです。

1)ファイルを開くと、「マルチメディアおよび3Dコンテンツは無効になっています。この文書を信頼できる場合は、この機能を有効にしてください。」というメッセージが表示されます。


2)メッセージの右にある「オプション」をクリックし、「常にこの文書を信頼する」をクリック。



3)すると、メッセージが消えて真っ白な画面だけが表示されます。その真っ白な部分をどこでもいいのでクリック。



4)すると、3Dコンテンツが表示されます。


(以下、補足)

3Dコンテンツは拡大、縮小、回転することが可能です。




また、断面図を表示することも可能です。

(ツールバーの右端にある「クロスセクションを表示」をクリック)



練習用としてサンプル3D PDFファイルをご用意いたしました。

ここを右クリックして「名前を付けてリンクを保存」してご利用ください。

(注意)ブラウザ内では3Dコンテンツは表示できません。

ダウンロードしたファイルをダブルクリックし、Adobe Acrobat Reader DCで開いてください。

2021年4月3日土曜日

.SGDファイルを開く方法

以前にお客様から.SGDファイルをいただき、初め何のファイル形式なのかわからなかったことがあったため情報をシェアしたいと思います。

とりあえずメモ帳で開いてみたところ、バイナリファイルでしたが

AR_CAD.・  ・  x愬・XT・ニソ・トヘフ\p゚PfPAIFEST 41ワ5ヘLsヒツ]ヒr_pKュワ33Kハ

のように、最初の方にAR_CADの文字列を見つけました。

そこで検索してみたところAR_CADという無料のCADソフトがあるとのこと。

以下のサイトからダウンロード・インストールしてみたところ、無事に.SGDファイルを開くことができました。

ダウンロード【AR_CAD(二次元汎用CAD)】 :: (shfweb.com)

同じように困ってしまった方のお役に立てば幸いです。

2019年3月23日土曜日

Google App Engineでウェブサイトを無料で運用

企業活動を行うにあたって今やウェブサイトを持つことは当たり前になっています。
皆さんはどのように運用していますでしょうか?
・業者に委託する
・自分でレンタルサーバー等を借りて運用する
・WIXなどオンラインでウェブサイトを作成できるサービスを利用する
などいろいろな選択肢があるかと思います。
弊社では、「うちのような町工場レベルのウェブサイトはHTMLで十分」と割り切った上で、Google App Engineを利用して運用しています。
今までこのような裏事情は誰も興味がないだろうと思っていたのですが、実は選択肢の一つとして有益な情報なのではないかと思い、記事を書くことにしました。
Google App Engineとは、

Google App Engine (GAE) は、Googleの提供するサービスの1つであり、ウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、Googleのインフラストラクチャー上で実行し、バージョン管理することができる。Google Cloud Platformの一部。
 (Wikipediaより)

です。
本来は複雑なWebアプリケーションを製作するためのものなのですが、HTMLを置けば単純なウェブサイトとしても機能します。

詳しい設定の仕方はこちらのGAE で独自ドメインのSSL静的ウェブサイトを無料でホストするで説明されていますのでご参照ください。

弊社の場合は問い合わせフォームだけPHPというプログラミング言語で作りました。
と言いましても、正確にはPHP多機能メールフォーム フリー(無料)版を利用させていただいております。
ただ、GAEにはPHPのメール送信に制限があるため多少の調整が必要です。
具体的には、Fromはnoreply@xxxxx.appspotmail.comで、Reply-Toはお客様のメールアドレスになるようにプログラムを修正しました。

ロール曲げどころか金属加工すら全く関係のない話題ですが、弊社のような町工場、もしくは中小零細企業のウェブサイト運用のコストダウンに少しでも役に立てばと思い書かせていただきました。

2017年4月23日日曜日

「わたしの仕事、 ロボットに奪われますか?」チェックツール

日経の電子版に自分の仕事がAIに奪われてしまうかどうかをチェックするツールが公開されていました。

業種と職業を選択すると、現在のAI技術で理論的にどのぐらい代替可能なのかを調べることができます。

さっそく弊社の仕事で調べてみました。

業種:工業生産
職業:金属工、プラスチック工

結果は下の画像の通り、81.7%代替可能とのことです。


さらに細かな業務内容を選択すると、より正確な数値が計算できるようになっていました。

例えば「研削機を操作する」「溶接機を操作する」などの作業だけを選択した場合は100%代替可能と表示され、「設計図を見る」「業務の手順や順番を検討する」などの作業を追加するとパーセンテージが下がっていくのがわかります。

この数値はあくまでも理論的に代替可能かどうかというもので、現実的にはコストや規制等の問題があるので計算通りにはいかないかもしれません。
しかしながら労働人口が減っていくことが明らかな我が国では、AIの導入は他国よりも必須の流れとなるでしょう。

「AIと戦うにはどのような能力を身に付けていかなければならないのか」と考えなければならないのは、社員だけでなく経営者も同じです。AIの普及が進むと技術力での差別化が難しくなり、どれだけAIを導入できるかという資本力勝負になってしまいます。これは弊社のような小規模企業にとって危機的な状況です。

中小企業庁の2017年版「小規模企業白書」によれば、すでに小規模企業の淘汰が加速しているのがわかります。


社会全体が成長している時代であれば小規模企業でも現状維持を望めたのかもしれません。
しかし労働人口が減って人材確保の競争が激しくなり、さらにAIが普及して資本力勝負になる可能性もある時代においては、「成長するか、淘汰されるか」の二者択一を迫られてくるでしょう。

どういう能力を磨けば顧客の役に立ち生き残っていけるのか、今から備える必要がありそうです。

日経電子版: わたしの仕事、 ロボットに奪われますか?
https://vdata.nikkei.com/newsgraphics/ft-ai-job/

経済産業省: 2017年版「小規模企業白書」
http://www.chusho.meti.go.jp/pamflet/hakusyo/syoukiboindex.html

2016年7月21日木曜日

ブログ→Twitter連携の再設定

先日、ブログを投稿したら自動的にTwitterにツイートされるように設定をしました。

ブログ → Twitter
・ブログ記事を書けば自動的にTwitterに投稿(そして上の設定があるのでさらにFacebookに投稿)
・実際には、ブログ → Feedburner → Twitterという流れ
・Feedburnerにブログのフィードを登録して、Publicize設定でTwitterと連携

この設定で1度はうまく動作したのですが、ここ数日は自動ツイートがされない状態が続いてしまっていました。
ネットで調べてFeedburnerの設定をいろいろ変更してみたのですが、解決できず・・・。

特にFeedburnerにこだわりがあるわけではなく、時間がもったいないのでIFTTTというサービスに乗り換えることにしました。

Feedburnerと比べて良いと感じたところは、IFTTTはログを表示する機能です。
例えば何分前にフィードのチェック+自動ツイートが実行されたのか、といったことがわかります。

Twitter以外にもいろいろと連結できるようなので、また時間がある時に試してみたいと思います。

2016年6月28日火曜日

ネットでの情報発信

ものづくり企業と言えば聞こえは良いですが、実際には小さな町工場でしかない弊社。
これから会社の維持・発展を目指すべく、様々な新しい取り組みに挑戦しています。

そのうちの一つが情報発信。

昨年、小規模事業者持続化補助金に採択され、初めてパンフレットを作りました。

やっぱりプロのデザインは違いますね!



ネットでの情報発信も重要だと思い、会社サイト、独自技術のブランディングサイト(極厚ロール曲げ.jp)、Twitter、Facebookページ、そしてこのブログ、と今更ながらネット関係の整備をしています。

限られた時間の中でできるだけ情報を発信できるように、下のように連携を設定してみました。

Twitter → Facebook

・Twitterに投稿したら、自動的にFacebookページに投稿
・Twitterのアプリ設定で連携

ブログ → Twitter

・ブログ記事を書けば自動的にTwitterに投稿(そして上の設定があるのでさらにFacebookに投稿)
・実際には、ブログ → Feedburner → Twitterという流れ
・Feedburnerにブログのフィードを登録して、Publicize設定でTwitterと連携

と言っても肝心のコンテンツがまだ全然ないので、効果が表れるのはいつになることやら・・・。