『ちょっとAutoLISP』
2007 年 3 月 22 日

毎日ちょっとずつしか進まないAutoCADのプログラムですが、今日はひとつの山を越えました。

vw_002.gif

これは図面を新規作成するときの初期設定画面です。

1社の図面だけを書くのであれば、その会社のレイヤー、線種、文字スタイルなどを定数としてプログラミングすればよいので、非常に話は単純なのですが、どこの会社の仕事をやるかわからない、あるいはどこの会社でも使用できるようなプログラムにするには、汎用性を持たせる必要があります。

たとえば、通り芯ひとつでも、ある会社ではA11というレイヤー名の黄色の1点鎖線を使い、ある会社ではGRIDというレイヤー名の赤い2点鎖線を使います。さらに印刷させる太さも各社ごとに細かい設定があります。
このような会社ごとの設定というのは、1:レイヤー 2:線種 3:印刷テーブル(PlotStyle) 4:文字スタイル 5:寸法スタイル の5つがあり、それぞれが絡み合っているため、すべてをきちんと設定しないとエラーになります。

これらの環境に対応させるには、会社ごとにプログラムを書き換えると大変な手間がかかるので、各社ごとの設定ファイルを用意し、それを起動時に読み込む、という方法をとらなくてはなりません。

レイヤー設定を読み込むだけなら簡単なのですが、問題は、たとえば、通り芯を書くプログラムであれば、A社仕様で動かしているときはA11、B社仕様のときはGRIDというレイヤーに書くように、自動的に切り替わるようにしなくてはならないという点です。

さらに、文字の引き出しなどでも、会社によって60度の線で引き出したり45度の線で引き出したり、矢印が開いていたり、塗りつぶしだったり、まさにいろいろ。これらになるべくフレキシブルに対応させる必要があります。(下図)
建築図面は、非常に面倒くさいのです。

vw_003.gif

今日はこれらのルーチンが、一応できたので、ちょっとほっとしているところです。

そのほかに、私が考えた、便利機能の中に「レイヤージャンプ」というものがあります。
通常、AutoCADで現在層を変更するには、レイヤーのプルダウンリストからレイヤーを毎回選んでクリックするか、自分専用のマクロを作るしかありません。
プルダウンからレイヤーを選ぶのは、AutoCAD上級者には非常にかったるい作業です。
マクロを作る方法は、いつも同じレイヤーで作業するならよいのですが、新しいレイヤーを追加すると、もう対応できません。
なんとか、コマンドラインにレイヤー名を打ち込むだけでそのレイヤーが現在層になるようなコマンドはできないか。
たとえば”GRID”と打つだけで、GRIDというレイヤーが現在層になり、しかもどこの会社のどんなレイヤー名にも対応できるものはできないか。

最初はリアクターという機能を使ったのですが、どうしてもうまくいかない。リアクターというのは、何か特定のイベントが発生するたびに特定のプログラムを動かすという機能です。これを利用し、「AutoCADが知らないコマンドが打ち込まれたら、それがレイヤー名のひとつであるかどうかを調べ、そうであればそのレイヤーを現在層にする」という方法を試みたのですが、だめでした。
その後、3日間考えたり、調べたりしました。

そしたらできたんです。しかもかなり単純な話でした。
おまけ機能として、オブジェクトが選択されている状態で、”GRID”とレイヤー名を打ち込むとそのオブジェクトとのレイヤーが”GRID”になるようにしました。

いずれ公開したいと思っているのですが、いろいろ整備しなければならないこともあるので、まだ時間がかかりそうです。

どなたかAutoLISPに取り組んでいる方いましたら、メールをください。結構孤独なんですよ、、わからないことがあっても聞く人がいないので。

コメント (6)

あまり内容はわかりませんが、とにかく進んでいて
よかったですね。
孤独な作業がんばってください。

ところでやはりメニューは日本語と英語版両方選べるように
なっているんですよね。

tom in manila {58} 2007 年 3 月 22 日 @ 6:28 PM

お、鋭い突っ込みです。最終的にはフィリピン人に使わせるので、ダイアログやメッセージの文字を英語にします。簡単な作業なので、1日か2日でできます。
1個のプログラムで複数の言語を内蔵させると、けっこう複雑になるので、ばらばらにしようと思います。
タガログ語版もうけるかな?

Shusei {59} 2007 年 3 月 22 日 @ 8:09 PM

MUIっていうんでしたっけ?
タガログ版はうけるでしょうね、
どういう仕事をされようとしているのか大体わかりました。
一度顧客がつかめれば納期と品質を保てれば継続的な
商売ができるのでしょうか?

tom in manila {60} 2007 年 3 月 22 日 @ 11:25 PM

はい、そう願っております。ただ、非常 に品質・納期は厳しいです。同僚には「無理だよ」と言われております。
TOMさんは製造関係?

Shusei {61} 2007 年 3 月 22 日 @ 11:43 PM

秘密です。
でもShuseiさんはうちの仕事したことあります。

素人考えですが、ポイントは、
1)ものすごくあいまいな日本人のお客の注文をどれだけ
システマティックに聞き出して、それをスタッフへの指示書の
フォーマットに自動的に反映できる仕組みを作れるか?

2)それでも最後は日本人がお客さんにわからないところを
聞かないといけない。または最終チェックを日本人がやらなければならない。そうなった場合、それをもしShuseiさんが
やらないといけないとしたらさばける量に限界が来るから
ただの個人事業の延長となってしまう。
Shuseiさん、または日本人がいないと動かないシステム
であれば、事業を拡大することは難しい。
当然その辺をクリアする策はおありだと思いますが。

3)CADに限らず日系のジグ加工業などは同じ課題を抱えて
います。まずお客の要望を確認するために日本人が必要?
細かい作業条件を指導するのに日本人が必要?
そうなると事業を拡大させることは難しい。

ただソフトを生む会社なのでソフトウエアを進化させることに
よりそうした問題点を解決できる可能性もある。

こんなところでしょうか。

tom in manila {62} 2007 年 3 月 23 日 @ 11:14 PM

鋭いご指摘ありがとうございます。
僕がTOMさんの仕事をしたことがあるんですか?でも僕は現地の仕事はしたことはないけども、なんだろう。建設の方じゃないでしょうか?
それはさておき、核心をつかれてびっくりしております。
1)日本人とのインターフェースは日本人、つまり私自身のみです。それをスタッフに伝えるという仕事は特に難しくないです。日本とのインターフェースまでをフィリピン人にやらせようとするとアウトソーシングの泥沼に陥ります。
2)チェックは初期はどうしても全数チェックになりますが、2年3年たてばスタッフも育ちますので、楽になります。
とはいえ事業の水平展開性ははっきりいってありません。事業の拡大は困難です。スタッフが十分育ったという状態で、私一人で40人が限度と思います。現実的には図面業務は25人までを考えています。
3)おっしゃるとおり水平展開性がないので、第2段階としては、同業種のアウトソーシングのマネジメント業務をやりたいと考えています。ある企業の代理で、採用、労務管理、業務補助を行って海外拠点を立ち上げる、という仕事です。これなら私自身がべったり張り付く必要がありませんが、問題はニーズがあるのかという点です(爆

田んぼへ水を引くのに1本の水路では、それがやられたらアウトですので、小さくてもよいので2本、3本の水路を作っていきたいと思っています。

Shusei {63} 2007 年 3 月 23 日 @ 11:46 PM
 

  • RSS | コメントRSS