Indexへ
(4573)//【4587】→(4591)
------------------------
【タイトル】ブロックについて
【記事番号】 4587 (*)
【 日時 】06/01/05 17:18
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



こんにちは。joker です。
ブロック図形について少し書きます。使用バージョンは 5.00a です。

・ブロック化とブロック解除、ブロック定義

新規状態で、適当に図形を描いてブロック化します。名前を「1」にします。
すぐにそれをブロック解除します。
再度、ブロック化します。名前を「1」にしようとすると、
名前「1」のブロックは既に無いにも関わらず、<使用済>エラーが出ます。

ブロック化することによって、ブロック定義データが作成され、
図形はブロック挿入状態となり、以降、これを複写などをすると
ブロック挿入要素が追加されていくことになります。

ブロック解除をすると、そのブロック定義を他で参照していないのであれば
本来は、そのブロック定義も消えて欲しい。
少なくとも、データを保存する際には、ブロック挿入されていないブロック定義
のデータは検索をして、保存しないようにして欲しい、です。

前から何度か書いてますけれど、ブロック一覧機能のようなものがないと、
どんなブロックを使っていて、どんなブロック名が使えるのか、が
分からないと、使う側は、ブロックが使いにくいと思います。
定義だけがあって、実際、使っているかどうかも分からない、ほとんど
ゴミデータ化しているものなどは、使う側は、予測すら出来ません。
AutoCADでいう、PURGE機能のようなもの(現在は、古川さんのツールしか無い)
もないと結構辛いのではないかと思います。
このゴミデータが肥大化することによるトラブルもこれまでに沢山ありますし
ブロック絡みの JWWの不具合は、この辺に起因することが多かったように
思います。

私はブロック一覧を確認するために自作の外部ツールを作っていますが、
(4.20形式には対応してませんけれど(苦笑))
作図作業中の機能として欲しいので、JWWの基本機能として、整備して
いただけたら、と思います。


Indexへ
(4587)←【4591】→(4592)
------------------------
【タイトル】Re(1):ブロックについて
【記事番号】 4591 (4587)
【 日時 】06/01/05 21:45
【 発言者 】jiro

▼jokerさん:

ブロック解除のとき、定義データを消去しないのはいくつか理由があります。

消去したデータのUndoは、消去したデータを保存しておいてUndoの要求があったとき、そのデータを戻してやるという方法をとっています。このため、ブロック解除のとき定義データを消してしまうと、Undoかけたときにこけてしまいます。
また、ブロックデータを複写すると、同じ定義データを参照しているブロックがいくつもできますので、ブロック解除のとき即、定義データを消すという訳にはいきません。もちろん、サーチして未使用なら消すという方法はありますが、やはりUndoとの関係があって、そこまでしなくてもという思いがあります。

一応、保存の時には未使用定義データは削除していますので、ごみデータを増やしているというつもりはないのですが(^_^;)
未使用定義データの削除をコマンドでできるようにすればいいかもしれませんね。

ブロックデータの一覧表示は、少し考えて見ます。

今回、ブロック名の重複を許さないようにしたのは、SXFを意識してのことですが、元々SXF保存のときは、重複チェックしていますので、そこまでする必要はなかったのかもしれません。


>こんにちは。joker です。
>ブロック図形について少し書きます。使用バージョンは 5.00a です。
>
>・ブロック化とブロック解除、ブロック定義
>
>新規状態で、適当に図形を描いてブロック化します。名前を「1」にします。
>すぐにそれをブロック解除します。
>再度、ブロック化します。名前を「1」にしようとすると、
>名前「1」のブロックは既に無いにも関わらず、<使用済>エラーが出ます。
>
>ブロック化することによって、ブロック定義データが作成され、
>図形はブロック挿入状態となり、以降、これを複写などをすると
>ブロック挿入要素が追加されていくことになります。
>
>ブロック解除をすると、そのブロック定義を他で参照していないのであれば
>本来は、そのブロック定義も消えて欲しい。
>少なくとも、データを保存する際には、ブロック挿入されていないブロック定義
>のデータは検索をして、保存しないようにして欲しい、です。
>
>前から何度か書いてますけれど、ブロック一覧機能のようなものがないと、
>どんなブロックを使っていて、どんなブロック名が使えるのか、が
>分からないと、使う側は、ブロックが使いにくいと思います。
>定義だけがあって、実際、使っているかどうかも分からない、ほとんど
>ゴミデータ化しているものなどは、使う側は、予測すら出来ません。
>AutoCADでいう、PURGE機能のようなもの(現在は、古川さんのツールしか無い)
>もないと結構辛いのではないかと思います。
>このゴミデータが肥大化することによるトラブルもこれまでに沢山ありますし
>ブロック絡みの JWWの不具合は、この辺に起因することが多かったように
>思います。
>
>私はブロック一覧を確認するために自作の外部ツールを作っていますが、
>(4.20形式には対応してませんけれど(苦笑))
>作図作業中の機能として欲しいので、JWWの基本機能として、整備して
>いただけたら、と思います。


Indexへ
(4591)←【4592】→(4593)
------------------------
【タイトル】Re(2):ブロックについて
【記事番号】 4592 (4591)
【 日時 】06/01/05 22:37
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼jiroさん: こんにちは。ご返事ありがとうございます。

Undoの仕組みの都合上、ブロック定義データを削除出来ないという事ですね。
了解しました。仕方無いです。Undoのプログラミングがややこしい事は理解
していますので納得です。無理言って申し訳ありませんでした。

>一応、保存の時には未使用定義データは削除していますので、ごみデータを増やしているというつもりはないのですが(^_^;)

いえ、消えてません。CDataList以降はそのまま残った状態です。
バイナリエディタや自作ツールで確認してます。

もし、jiroさんが消したつもりのコードを書いていて、実は消えていなかった、
のであれば、"思わぬ不具合"が発生しているという可能性がありますので、
申し訳ありませんが、再度、確認してみて下さい。

>未使用定義データの削除をコマンドでできるようにすればいいかもしれませんね。
>ブロックデータの一覧表示は、少し考えて見ます。

ブロック定義一覧表示 と ブロックデータ一覧表示
レイヤーと同じような感じで扱えると、SXFの部分図→ブロック の扱いも
しやすくなって、レイヤグループに入れる元の仕様に戻して、というような
要望も減ると思いますけれど・・・最初は高機能でなくてもいいと思います。

定義の方は、通し番号、名前、参照している挿入データの有無、を表で表示して、
参照されていなければ[削除]をクリックすれば消せて、
「Undo出来なくなるが良いか?」メッセージを出せれば十分だと思います。
(ブロック編集時は無効化)

ブロックデータの方は、通し番号、名前、X倍率、Y倍率、回転角度、を表で表示
して、クリックすれば原点に仮点表示をしてハイライト、
ダブルクリックでブロック編集、倍率と角度は表で数値入力で編集可能、
画面の下に[編集][移動][複写][削除]ってボタンがあるとか・・・

画面は、モードレスを期待されるかもしれませんが、モーダルでいいと思います。

ブロックがネストされている場合が問題だと思いますが、当面は何も出来なくても
一覧として見えるだけでも十分、ブロックが有効活用できるんじゃないかと
思います。

>今回、ブロック名の重複を許さないようにしたのは、SXFを意識してのことですが、元々SXF保存のときは、重複チェックしていますので、そこまでする必要はなかったのかもしれません。

ブロック名の重複を許すという事は、同一ブロック名=グループ、のような感じ
になると思いますが、私は、ブロックとグループは別物という意識があります
ので、私は、ブロック名の重複は許さないようにした方がいいと思ってます。
グループとして扱いたいのであれば、曲線属性を付ければいいと思います。


いろいろ書いてすみませんが、よろしくお願い致します。m(_ _)m


Indexへ
(4592)←【4593】→(4594)
------------------------
【タイトル】Re(3):ブロックについて、と・・・
【記事番号】 4593 (4592)
【 日時 】06/01/06 06:25
【 発言者 】ヤギP

あけましておめでとうございます。ver5.00a ありがとうございます。

私もぜひブロック名とネストの構造が視覚的に確認できる(モーダルでもいいと思います)と、とてもありがたいです。詳細タブとかで、joker様が書かれている内容までが見渡せますと、ずっとすてきです。
自分で作ったブロック図形(家具や電気のシンボルが多いのですけど・・・)が、何が入れ子になっているのかわからなくなって、ブロック解除したつもりが、まだ解除できていなかったと言うことも多々ありました。

joker様の公開されているソフトで確認していたのですけど、ブロック解除をしても、ずっとそのファイルにブロック定義があったので、なぞでした。なぞと言うのは、入れ子になったものを順番に解除した時に、消える定義もあるようですので、よくわからなかったのです。わたしもバイナリエディタで確認してみました。

できれば、文字検索(非公開仕様でしょうか・・・)でその場所にぴょんぴょんとんでいくような機能(この時ハイライトのまま飛びたいです)も、いつか付けて頂けるとありがたいです。もちろん、定義部分クリックでハイライトされればうれしいし、そのままそのブロックを選択(ブロック名選択)できればもっとうれしいです。
現在は書き出したブロック名を元に、ブロック名選択させて頂いています。

と、お願いはつきないのですけど、できれば、ブロック名全体が見渡せるだけでも、そういうツールがぜひほしいと、ずっとずっと思っていました。
ツールバーやステータスバーあたりからからピョンッて出てくる窓が好きです。
何卒よろしくお願いいたします。

それから・・・SXFへの対応と言う意味でも、いつの日か、バラバラの線分扱いにならない本来のポリライン、スプライン、ベジェライン、多角形ポリゴンのデータ形式を実装していただければ・・・SXFの仕様で現在の手法が認められているのは知っているのですけど・・・実装していただけると、曲線の編集がぐっと便利になるので・・・すみません、本題外でした

年末年始にかけて、本当にありがとうございます。
本年もよろしくお願い申し上げます。


Indexへ
(4593)←【4594】→(4596)
------------------------
【タイトル】Re(3):ブロックについて
【記事番号】 4594 (4592)
【 日時 】06/01/06 08:44
【 発言者 】jiro

▼jokerさん:
消えてませんか。
消しているつもりだったので、ちょっと見てみます。

>▼jiroさん: こんにちは。ご返事ありがとうございます。
>
>Undoの仕組みの都合上、ブロック定義データを削除出来ないという事ですね。
>了解しました。仕方無いです。Undoのプログラミングがややこしい事は理解
>していますので納得です。無理言って申し訳ありませんでした。
>
>>一応、保存の時には未使用定義データは削除していますので、ごみデータを増やしているというつもりはないのですが(^_^;)
>
>いえ、消えてません。CDataList以降はそのまま残った状態です。
>バイナリエディタや自作ツールで確認してます。
>
>もし、jiroさんが消したつもりのコードを書いていて、実は消えていなかった、
>のであれば、"思わぬ不具合"が発生しているという可能性がありますので、
>申し訳ありませんが、再度、確認してみて下さい。
>
>>未使用定義データの削除をコマンドでできるようにすればいいかもしれませんね。
>>ブロックデータの一覧表示は、少し考えて見ます。
>
>ブロック定義一覧表示 と ブロックデータ一覧表示
>レイヤーと同じような感じで扱えると、SXFの部分図→ブロック の扱いも
>しやすくなって、レイヤグループに入れる元の仕様に戻して、というような
>要望も減ると思いますけれど・・・最初は高機能でなくてもいいと思います。
>
>定義の方は、通し番号、名前、参照している挿入データの有無、を表で表示して、
>参照されていなければ[削除]をクリックすれば消せて、
>「Undo出来なくなるが良いか?」メッセージを出せれば十分だと思います。
>(ブロック編集時は無効化)
>
>ブロックデータの方は、通し番号、名前、X倍率、Y倍率、回転角度、を表で表示
>して、クリックすれば原点に仮点表示をしてハイライト、
>ダブルクリックでブロック編集、倍率と角度は表で数値入力で編集可能、
>画面の下に[編集][移動][複写][削除]ってボタンがあるとか・・・
>
>画面は、モードレスを期待されるかもしれませんが、モーダルでいいと思います。
>
>ブロックがネストされている場合が問題だと思いますが、当面は何も出来なくても
>一覧として見えるだけでも十分、ブロックが有効活用できるんじゃないかと
>思います。
>
>>今回、ブロック名の重複を許さないようにしたのは、SXFを意識してのことですが、元々SXF保存のときは、重複チェックしていますので、そこまでする必要はなかったのかもしれません。
>
>ブロック名の重複を許すという事は、同一ブロック名=グループ、のような感じ
>になると思いますが、私は、ブロックとグループは別物という意識があります
>ので、私は、ブロック名の重複は許さないようにした方がいいと思ってます。
>グループとして扱いたいのであれば、曲線属性を付ければいいと思います。
>
>
>いろいろ書いてすみませんが、よろしくお願い致します。m(_ _)m


Indexへ
(4594)←【4596】→(4626)
------------------------
【タイトル】Re(4):ブロックについて
【記事番号】 4596 (4594)
【 日時 】06/01/06 17:34
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼jiroさん:
>消えてませんか。
>消しているつもりだったので、ちょっと見てみます。

新規で、図形を描いて、ブロック化して、ブロック解除(又はアンドゥ)して、
ファイル保存、で確認できると思います。

よろしくお願い致します。


Indexへ
(4596)←【4626】→(4627)
------------------------
【タイトル】Re(4):ブロックについて
【記事番号】 4626 (4594)
【 日時 】06/01/07 23:34
【 発言者 】Hino

jiroさん遅ればせながらあけましておめでとうございます。
5.00aありがたく使わせていただいてます。

未使用ブロックデータについて。
保存時に未使用ブロックデータを削除してしまうと、その後のアンドゥ・リドゥに支障が出てしまう気がします。
未使用ブロックデータの削除は、アンドゥ・リドゥのバッファをクリアするのとセットでなければならないのではないでしょうか。

そこで考えたのですが、基本設定又は環境設定ファイルで「ウィンドウを閉じるときに未使用ブロックを削除する」
とかの設定を追加するというのはどうでしょう。
ウィンドウを閉じるときはもちろんアンドゥ・リドゥのバッファが開放されるわけですから問題ないのではと考えますが。いかがなものでしょうか。
                              Hino


Indexへ
(4626)←【4627】→(4628)
------------------------
【タイトル】Re(5):ブロックについて
【記事番号】 4627 (4626)
【 日時 】06/01/08 01:06
【 発言者 】joker
【 リンク 】http://www.atsmile.com/jw/



▼Hinoさん:
>保存時に未使用ブロックデータを削除してしまうと、その後のアンドゥ・リドゥに支障が出てしまう気がします。

実際のメモリ内のブロック定義データそのものを消す作業、ではなく、
図面データファイルに保存しない、という処理です。

ですので、保存をしたあと、継続して図面作成を行うとしても、
その後のアンドゥ・リドゥには関係ない状態であると思います。

私が最初に「消して欲しい」と書いたのは、アンドゥ時に、
ブロック挿入データとともに、ブロック定義データも、アンドゥバッファに
入るのだろう、と勝手に思っていたのですが、
その後のやり取りで、そうではない様子ですので、
自動的にブロック定義データを削除してほしいという要望は、取り下げたつもり
です。(だから自分で明示的に削除できるように、ブロック(定義)一覧を付け
手動で消せるようにして欲しい、という方向へ話を持っていっているつもりです)

誤解させてしまったのであれば、すみません。


ちなみに、現状では、
四角を書く→保存
四角を書く→ブロック化→ブロック解除→保存
のファイルを比較すると、後者の方がサイズが大きくなっているのが分かると
思います(エクスプローラでファイルのプロパティで確認)。

以前から、データの割りには、ファイルサイズが非常に大きくなってしまう、
という不具合報告があり、古川さんが
「JWWファイルサイズ修正ソフト(JFchecker)」
http://jwx.hp.infoseek.co.jp/otherSoft.html
というソフトを作成・公開されていますが、そのときに、私が今回あげた
未使用ブロック定義データを保存しないようにしてほしい、という同じ要望を
古川さんがおっしゃっていたと思います。
ただ、古川さんのツールは、旧バージョン対応なので、
新しいバージョンに対応したツールが欲しい、という要望があったという事も
記憶しています。
しかしこれは、後追い作業っぽいので、この際だから、JWWの基本機能として
整備されてほしい、というお願いをさせて頂いている訳です。


Indexへ
(4627)←【4628】→(4629)
------------------------
【タイトル】Re(6):ブロックについて
【記事番号】 4628 (4627)
【 日時 】06/01/08 12:39
【 発言者 】Hino

jokerさんこんにちは。

私も未使用のブロック定義情報を削除できるようにするというのに賛成です。

そこで
>実際のメモリ内のブロック定義データそのものを消す作業、ではなく、
>図面データファイルに保存しない、という処理です。
>
>ですので、保存をしたあと、継続して図面作成を行うとしても、
>その後のアンドゥ・リドゥには関係ない状態であると思います。

なるほど。
しかし4591のjiroさんの記事を引用させていただきますと
>消去したデータのUndoは、消去したデータを保存しておいてUndoの要求があったとき、
>そのデータを戻してやるという方法をとっています。
>このため、ブロック解除のとき定義データを消してしまうと、Undoかけたときにこけてしまいます。
ここで消去されているのは「消去したデータ」ですからこの段階ではファイル内にブロック定義情報が残っていると考えられます。
この事からメモリ内にはブロック定義情報が載っていないと判断しました。
アンドゥ・リドゥではこの「消去したデータ」つまりブロック図形では(外変時に吐き出されるファイル形式で言えば)「BL」で始まる一行を取り扱っているのではないかと。
だからブロック定義情報を削除してしまうとアンドゥ・リドゥでこけてしまう、と。(私の勘違いかも、です)

それじゃどういうのが良いだろうかと私なりに考えてみました。
ブロック定義情報が問題となるのはファイルサイズのみの問題(ですよね?)であるわけですから、そのファイルでの作業を終えて閉じた後にはじめて問題が顕在化します。
作業中に手作業で、というのもアリですが、それだと確かにファイルサイズは肥大化しませんが、(上記の私の考えが勘違いでないとすると)伴ってアンドゥ・リドゥが不可になってしまいます。
それでは一つの問題は解決しているけれども、せっかくのアンドゥ・リドゥの機能が制限されてしまいます。
しかも解決したと見られる問題は、作業中には顕在化していません。さらに手作業で削除した後に消去されたブロック図形の定義情報はファイル内に残ります。
それであれば、ウィンドウを閉じる際にブロック定義情報を削除できるようにすれば、アンドゥ・リドゥに影響を与えることなく解決できそうかな、と考えた次第でした。
(未使用ブロック定義情報が残っている場合は「上書き」されたデータでも閉じる場合に警告が出てしまうのですが。)
このタイミングであれば、jokerさんが当初ご提案された「自動的にブロック定義データを削除」が出来るのではないかと。
(jokerさんがおっしゃるブロック名の重複がはじかれる、という点は解決できていませんが。)

アンドゥ・リドゥのデータ(メモリ内のデータ)にブロック定義情報も格納してしまうのもありえるのでしょうか。
でもこれはバッファサイズが巨大になる懸念もありますので微妙ですね。

ブロックに絡むファイルサイズについては、以前似たような報告を
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?word=JWS%82%CC%83t%83%40%83C%83%8B%83T%83C%83Y&way=0&target=log&view=0&id=003&cmd=src&x=35&y=16
で私が挙げていました。(今読めないようです)
このときはJWSに登録時の図面ファイルに存在するブロック定義情報が残っているのでは、という話でした。
(このときもjokerさんのツールで確認させてもらいました。ありがとうございます)

あとブロックの一覧が表示されるのは便利そうですので一票入れさせて下さい。

                              Hino


Indexへ
(4628)←【4629】→(4670)
------------------------
【タイトル】Re(7):ブロックについて
【記事番号】 4629 (4628)
【 日時 】06/01/08 12:48
【 発言者 】Hino

すみません。改行してなくて読みづらくなってしまいました。
気を付けます。
                       Hino


Indexへ
(4629)←【4670】//(4597)
------------------------
【タイトル】Re(8):ブロックについて
【記事番号】 4670 (4629)
【 日時 】06/01/10 16:03
【 発言者 】ありり

わたしもブロックについて要望があるのですが
(データーについてはよくわかりませんが)
同じなまえが使えなくなった事で
ブロック図形を変更し、あとで元に戻した場合、元の名前には戻れません
(実線の図形を破線にしたり実線に戻したり)
UNDOで戻れない場合などは一回図形を削除して、再配置しかできません
1図形だけを選択して元に戻す事ができればいいんですが
あとは、たとえば5つある同じ図形のうち3つだけを同時に変更などもできれば
いいです(現状では一個づつ又は全部)
あと、ブロック名称を変更した時に登録図形に自動に変わる・・なんて事できないですよね。名称をかえるだけで図形が変わるとか、違う図形に入替えとかできれば
最高です。
要望ばかりでしたが申し訳ありません。
せっかくいい機能なのでこれから期待しています