TOP>2009年08月

2009年08月31日

[JWW] クリップボードツール

Jw_cad作者さんのサイトの掲示板で以下のような発言がありました。
VisualBasicでJwwのデータを有効利用できないかをテーマに研究しているHiroCom777です。
JwwデータにアクセスするExcelマクロを公開していますがこの度Jwwデータのクリップボードデータにもアクセスできる様になりました。これで、座標情報をExcelに取り込める(様なもの)になったのですかね?ご意見ご感想などお待ちしています(^_^)/
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=15656;id=003
Visual BASICは、Ver.2.0J の頃はよく使っていたっけ。
MS-DOS から Windows3.1の時代になって、MS-DOS時代は、N88BASIC(86)、MASM、MS-C、を特によく使っていましたが(QuickBASIC、BASIC/98、QuickC、Borand C、LatticeC、LSICも経験済)Windows3.1になって、さてどうするか?ってときに、MS-C & SDKというハードルが速攻で嫌になって、取りあえず、Visual BASIC に乗っかったって感じでした。まぁ幾つかプログラムは作ったんですが、余り速くないって事と、ランタイムライブラリとかセットアッププログラムの絡みで段々使うのが嫌になってきて、ある大学の先生に教えてもらった「Delphi 1.0J」を購入して勉強し使い出して、それ以来、Delphi ばっかりな私です、はい。
一応、Visual BASIC & C++ は、Visual Studio 6.0 まではバージョンアップしましたけれど。最近は全然使ってませんのですっかり忘れてしまいました。

そういう訳で、各種ツールは全て、Delphi。
外部変形も全て、Delphi。
いやあ~~~

そういう訳で、JW_CAD/Jw_cad データアクセスについても全て Delphi で作っていますが、私は Excel とか OpenOffice ってほとんど使ってないのでそっちの話は全然わかんないし、マクロとかは全然勉強してないです。業務とかで必要無いし。まぁ、Delphi から OLE 等を経由してExcelと接続して、Excel のセルにデータをほうりこむような事が出来ればさほどの問題もないだろう、とかは思ったりしてますけど。

Jw_cad クリップボード関連のツールとしては
・JWクリボ・JWクリボス
・AFJWV
・script!
・その他?
だけども、クリップボード経由だと確かにブロック図形が読めるっていうのはいいんだけども、問題は、マウスで範囲選択~コピー~貼り付け時にマウスクリック、という具合に、マウス操作と、図形の位置が固定化されない、って辺りに、自動製図的ユーザーコマンドとしてのネックがあって、コマンドとして利用する場合のマウス指示とかも出来ないから、まぁ、図形コマンド的なことしか出来ないというのがありまして。
で、現在、外部変形の勉強をしていたりするわけですが、外部変形の場合、ブロック図形にアクセス出来ない事、曲線属性や寸法図形などの扱い、など、まぁ色々と組み合わせて出来ると面白い事が出来るかも?などと思いつつ・・・

でもまぁ、現状、Jw_cad をとりまく Jw_cad ワールドというか、Jw_cad 文化、というものは、結構、行き渡っているような気もするんですけれど。これ以上、どういう需要があるのかとか、イマイチ、よく分らないというか。

勿論、細かい不具合対応とか機能拡張とか、SXF対応とか、あるにしても。

基本的に、Jw_cad の基本機能として出来ること・出来ないこと、出来ない事は線記号変形・建具・図形・外部変形・各種ツールで行えばいいと思うのですが。

で、クリップボード関連ツール、に関しては、まぁ色々と考えられるかもしれませんし、私自身も「JWクリボス」で「JWクリボス外変」みたいな事も考えましたが、取りあえず、この件についての質問・要望というのは、全然無いですね。作った時に少しあっただけで。
自分で幾つかサンプルを作ってみましたが、結果、インターフェイスとしてはやっぱり、普通の外部変形のほうがやりやすいかも・・・?とか思ってしまったりで。通常、ブロック図形の外側から内側まで一括して作業をするようなカスタマイズ・コマンドというのが、どれくらい必要なのか?っていうのも「?」。ブロックツリーのような形でブロック図形を管理編集するような機能というのがあるにしても、それ以外には?となると、なかなか難しいような気もして。

ブロック化=内部の保護・内部のブラックボックス化、と考えた場合、逆に、簡単に触れない方がいいのだろうか? とかも思ったりで。 とかいいつつも、外部ツール系な変換ソフト系では、ブロック内部まで一気に変換するというようなものを幾つか作ったりしているんですけど。まぁある意味危険かもしれないから、元ファイルは残したりバックアップしたりするんですけど。

まぁなんだかんだ言っても
やっぱり、需要があってこそのツール類なので
「こういう事がしたいのだけれども?」という質問や要望があると、外部変形なり、各種ツールなり、は、作りやすいというのはありますね。

2009年08月31日

[JWW] 要望?

Jw_cad作者さんのサイトの掲示板で以下のような要望?がありました。
こんにちは、いつもjwwを使っていてこうすればもっとよくなるのに
と思っていることを提案します。
最も良く使うコマンドの操作を充実させてください。移動、削除、トリミングが最もよく使うコマンドではないでしょうか。ほとんど使わない機能は削除かオプションにして、こういう機能を強化するようにバージョンアップして欲しいです。たとえば、ショートカットボタンを頻度の高いコマンドについては大きく表示する
あるいは、jwwでは先に移動コマンドを選んで範囲指定する方式ですが、範囲指定したのちに、簡単な移動コマンドを間に挟んで移動出来るようにならないでしょうか。
他のCADにくらべて、jwwはすごく疲れます。もっともよく使うコマンドが、使いづらいからではないかと思いました。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=35366;id=004
まず、ほとんど使わない機能は削除、というようなことは、多くの人が使っていない基本コマンドは無くすって事になると、そのコマンドを使っている少数の人のダメージに繋がるので、いかがなものかと思いますね。オプションというのも、例えば、線記号・建具・外部変形って事になるのが通例ですが、同じく、そのコマンドを使う少数の人にとってはマイナスかもしれません。
機能強化、という事は、例えば、コマンド内の様々なスイッチとか入力とかを増やすってパターンがありますが、あまりやりすぎると複雑化=煩雑化して使いにくくなるという事はあります。
まぁ、要望という事であれば、こういうことが基本コマンドで出来るようになって欲しい、というような具体的案を書かれると良いかと思います。そうすれば、その機能を作者さんがおいしいと思われると、例えば先日の節間消しみたいな拡張も行われるかと思います。
ツールボタンの大きさを変える、というのは、他(ボタンやバー等)とのバランスとか、ボタン絵のビットマップを増やすのかリサイズ表示させるのか等はありますが、まぁ、その分、作図画面が狭くなることを考えると、勘弁してほしいというユーザーは多いかもしれません。

ちなみに、当方の「JwwMenu」のようなツールを利用する、というのは可能だと思いますけれど~

また、よく利用するコマンドを「ユーザーバー」として自分でまとめる、というのも1つの手法だし、キーやクロックメニューに割り当てるというのも1つの手法だし、当方の「JwwMenu」や「AFMouMenu」系を利用するというのも1つの手法です。

ちなみに Jw_cad では「トリミング」って名前は使われてないです。Jw_cad 的には、コーナー処理、伸縮、包絡、って辺り、プラス/面取り・丸めって辺りですが、今でも十分な機能はあると思いますが、これについても、こういう事は出来ないだろうか?という事を具体的に書かれると良いと思いますね。他のCADを使っているようだから、例えば、他のCADにあるこういうコマンドみたいな機能が欲しい、とか。

その次の、範囲選択~移動、については、もともと Jw_cad では出来ますが、「簡単な移動コマンドを間に挟んで移動」という意味がちょっと分らないです。範囲選択~移動~移動~は現状出来ますし。

疲れる、使いづらい、という事であれば、Jw_cadはフリーウェアで利用するのは自由ですから、使わなければいい、とも思いますが、例えば、自分が欲しいような機能は外部変形で作ってしまって、クロックメニューに登録して利用するとかも出来るんだし、ツールを使って便利に利用する事もできるかもしれないし、ん~
使いにくい、使いにくい、という事を言うだけだったら、あまり建設的ではないので、もっと具体的に、こういう事は出来ないだろうか?等と書かれるほうがいいと思いますけど・・・

2009年08月30日

[JWW外変] p115_破線な曲線

Pcataに、外部変形アプリケーション
p115_破線な曲線 をアップしました。
http://p-cata.from.tv/jwwgapp/p115.html
Ver.6.21a現在の Jw_cad では、ベジェ曲線やスプライン曲線は、短い線分の集まりとして表現されますが、綺麗に描かせようとすると分割数を多めにして作図を行いますが、実線以外の点線・破線などでは、綺麗に表示出来ない場合があります。
この外部変形アプリケーションは、独自の線種ピッチを登録・指定して、そのピッチとなる実線の集まりを作図する事により、点線・破線などの曲線でも綺麗に表示させようというソフトウェアです。
 
曲線の検索開始点・範囲選択をおこない、曲線を検索後、指定した線種ピッチ間隔による短い線分(実線)及び実点の集まりに変更します(円弧・楕円弧にはなりません)。そのため要素データ数が多くなると思われますので御注意下さい。
 
曲線の検索では、同一のレイヤグループ(現在のレイヤグループ)・レイヤ・線色・線種であり、端点同士が同一として接続されている連続の線分・円弧を対象としています。途中で枝分かれしている場合には最初に検索したほうへ進みます。
 
ピッチ間隔はあまり大きすぎず小さすぎず、ちょうど良いと思われる数値を入力して下さい。長さ表示やピッチ間隔は図寸mmとなっています。変換後、見た目1本の線のように見えても実際には複数の線になる場合があります。
 
現在の(書込み)レイヤグループ・レイヤ・線色・線幅、又は、選択した曲線(第1データ要素)のレイヤ・線色・線幅で作図を行います。曲線属性は連続線とならないため付加されません。
という訳で、
以前、掲示板で質問のあった話のネタで、外部変形アプリを作ってみました。

確かスターさんがコメントをされていて、スターさんが既に同様の外部変形アプリを作成されていたかと思いますけれども、私はそちらは一切見ていません。あくまで、私的な感覚で私独自に作ったものです。

2009年08月29日

[JWW] 燃える寸法値話!

Jw_cad作者さんのサイトの掲示板での寸法線・寸法値の話、いや~ 話がはずんでますね~
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=35254;id=004
おっと、sugiさんの参加は、私が振っちゃった形でしたか~
私のブログっていっても知ってる人は少ないと思うけど~

基本的には、寸法値の反転、というよりは、まっとーな寸法線状態を書きましょう~と考えた方が簡単だと思うんですが、まず、JIS Z 8317「製図における寸法記入方法」の 5.2寸法数値で寸法値の文字の傾きについて少し書かれてますが、この書き方だと、文字の傾きが 90°~120°と270°~300°の間のグレーゾーンはどうなのよ?って感じはしますが、製図本によれば、まぎらわしいのでそういう記入はしない or 上向き(水平状態)で記入する、って話もあるようですが、CADのようなプログラムではそういう訳にも行かない。おおむね
 0°<角度≦ 90°: そのまま
90°<角度≦270°: 反転
270°<角度≦360°=0°: そのまま
って事が多い様子。
寸法値は、寸法値線の上に乗せるのが普通で(寸法値線の中央に空白部を開けてそこにってパターンもありますが)、寸法値が反転状態になる時には、寸法値線の始点・終点(寸法値線の傾き角度)を逆に考えないといけない、って処理になります。
寸法値は、寸法値線と少し離して書く事が多いですが、その距離と、文字高さ・文字の基点を考慮しないといけない。文字基点が中央系であればいいですけど、左・右系だと、文字幅・文字間隔・文字内容を考慮した文字枠範囲を考慮しないといけない。
で、
寸法図形であれば、寸法値と寸法値線は1セットですからまだいいのですが、寸法図形ではない場合、寸法値の文字列と、寸法値線の線分は、バラバラで、作図したあとに編集する事などを考えると、それが一緒になってるって事はありえないと考えて、選択した要素データ全ての位置・角度を考慮して検索し、この文字とこの線が、1セットの寸法値と寸法値線であると正しく判断するようプログラミングしないといけない。まぁ、寸法属性を見てある程度は絞れるかもしれませんが、例えば DXFファイル等で来るデータ等まで考えると、それに頼ることも出来ない訳で。

例えば、連続寸法などで寸法値が記入できないから少し離して記入した場合には対応出来ないかもしれない。左出し・右出しの場合もある。寸法値線の長さと寸法値内容が似ているって事も考慮に入れる事も出来る場合もありますが、寸法値編集で代表文字に置き換えている場合は無効、単位、丸め、カンマ、等も考慮しないといけないから以外と処理は面倒臭くなりそう。

では、手動でやればいいじゃんって話になってくるかもしれないけれども、それはもともとの、範囲選択して一括して、って事からスタートしているので本末転倒な訳で。勿論、手動でやる分には、手動でやればいいんですけど。

という訳で、最初から寸法図形になっていれば・・・うがぁ~~・・・って先の書き込みになるんだけど。

あ、そうそう、数学な話でしたら、少しですが、私のサイトにも書いてます。

2009年08月29日

[JWW外変] p114_2曲線の中心線

Pcataに、外部変形アプリケーション
p114_2曲線の中心線 をアップしました。
http://p-cata.from.tv/jwwgapp/p114.html
第1曲線の検索開始点・第2曲線の検索開始点・範囲選択をおこない、第1曲線・第2曲線を検索後、それぞれの分割点位置を算出し、分割点間の中点を結んでいって、2曲線の中心線を作図しよう、という外部変形アプリケーションです。
 
曲線の検索では、同一のレイヤグループ(現在のレイヤグループ)・レイヤ・線色・線種であり、端点同士が同一として接続されている連続の線分・円弧を対象としています。途中で枝分かれしている場合には最初に検索したほうへ進みます。
 
分割距離を入力して分割点位置を算出します。分割数入力も出来るようにしていますが、分割数から分割距離を算出して同じ手法で作図しています。
分割距離/分割数はあまり大きすぎず小さすぎず、ちょうど良いと思われる数値を入力して下さい。分割距離が小さい場合、見た目1本の線のように見えても、複数の連続線になっている場合があります。また、分割距離が大きい場合は綺麗な中心線にならない場合があります。
 
長さ表示や分割距離は実寸mmとなっていますが、バッチファイルで「REM #bz」を指定すると図寸mmで行えるようになります。
 
現在の(書込み)レイヤグループ・レイヤ・線色・線種・線幅にて連続となる線分の作図を行います。曲線属性を付加させています。
というわけで、
あまりに違う2曲線の中心線というのはうまく描けないと思います。状況によっては、スキャンラインのように交点を計算させてその中点を取っていくような外部変形の方がいい場合もあると思いますが、この外部変形ではそういう処理は行われません。

2009年08月28日

[JWW] ソリッドの重なり

Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
ソリッドの重なった部分の色を、たとえば黄色と青が重なると緑になるという様に表現したいのですが、出来るのでしょうか?ハッチだと、垂直線と水平線が重なると格子になるみたいに・・・よろしくお願いします。
ソリッド色面積の外変を使わせてもらってます。(ありがとうございます)その時に重なった色が、どれか1色になってしまい。見た目が、面積数値と合わなくなってしまうため困っていました。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=35330;id=004
ソリッドで透過となると、タールさんの「ラスタマン」を思い出しますが、そもそも、ソリッド図形を選択して面積計算を行うのであれば、ソリッドが重なっていると計算結果が合わないと思うんだけど、自動で重なり具合を判断して計算されるのでしょうか?ソリッド色別に面積計算を行う外部変形は幾つかありますので、どの外部変形を利用されているのかは知りませんけれど。