Shadeバージョン17不具合報告スレッド

shadeのバージョン17.0.1(私の場合はwindows版64ビット standard版)を触ったところ、いくつかバグらしき物を発見しました。
新しく出たばかりのバージョンはまだバグが残っている事があり、それらのバグをできるだけ早く解消してもらいたいため、不具合報告スレッドを作成する事にしました。
(メーカーの方は、このスレッドで見かけたバグの検証と早期改善をお願いします。)

「これは自分のところだけで起きているのか、それとも他の人も起きているのか?」の確認や、「このバグは今のところこういう方法で回避しています。」みたいな情報交換の場としてもご利用ください。

バグ報告の場合は、「使っているOS」「shadeのグレード」などの情報も記載してください。

早速ですが、特定のスクリプトの挙動がバージョン16以前から変わってしまったため、私が今まで作ってきた結構多くのスクリプトが100%フリーズを起こしてしまうようになってしまいました。

具体的には
xshade.scene().active_shape().copy()

です。
バージョン16までは、「ブラウザで選択状態の形状をまるごとクリップボードにコピーする」という仕様でしたが、バージョン17でこれを実行すると、「ブラウザで選択状態の形状の、編集モードで選択している部分のみをクリップボードにコピーする」という風になってしまいます。

球のポリゴンメッシュを作り、頂点編集モードなどで球の上半分のみを選択状態で
xshade.scene().active_shape().copy()
を実行すると、バージョン16までは球全体がクリップボードにコピーされていました。

しかし、バージョン17では球の上半分のみがクリップボードにコピーされるようになったようです。

バグではなくもしかしたらバージョン17からの仕様変更なのかもしれませんが、過去に作った膨大な数のスクリプトが機能しなくなり、またその改修に結構な時間がかかってしまいますため、もしバグではなく仕様変更なら、「xshade.scene().active_shape().copy()」はバージョン16以前の仕様に戻してもらいたいです。

また、「xshade.scene().update_figure_window()」ですが、このメソッドもバージョン16以前とは挙動が変わってしまったよう?
16以前はこれを実行するとすぐに画面の書き変えが行われていたのが、バージョン17ではそうではなくなってるようです。
これも色々なスクリプトに影響が出ているため、17でも「update_figure_window()」をするとすぐに画面が更新されるようにしてもらいたいです。

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

xshade.scene().active_shape().copy()

だけでなく、

xshade.scene().copy()

の方も、編集モードで部分的に頂点や辺、面などを選択していると、その部分のみがコピーされるように変わっているようです。
こちらも以前の仕様に戻してもらえないと正常に動作しなくなるスクリプトが結構あります。

「編集モードで選択している部分のみをクリップボードにコピーする」というメソッドは、それはそれで利用価値はあると思いますが、たとえば

xshade.scene().active_shape().copy_selected()
xshade.scene().copy_selected()

みたいな感じで、新しいメソッド名で実装してはどうでしょうか?

dadada66 さん、こんにちわ

copy() に関する件は、御指摘のように bug というよりも仕様変更の気配が濃厚のように感じます。

本件では、

  • 過去の script 仕様との整合性

  • 操作体系との整合性( Shade script は manual 操作をシミュレートするのが基本らしいです)

の2つの原則の内、後者が優先されているようです。

object mode と modify mode での処理の違いは、例えば 線形状 / 自由曲面 に対する smooth 処理でも copy() と同様な仕様になっていますから、おかしな仕様 とも言い切れない感じもします。

xshade.scene().active_shape().smooth()

開発側の判断がどうなのかは、知る術もありませんが、とりあえず copy_object() で代用できませんでしょうか ?

これなら object mode と modify mode とで処理内容は同じになります。

xshade.scene().active_shape().copy_object(None)

script 仕様の変更などによる書き換えはほんとに大変ですね。

加藤さん、こんにちは。

仕様変更の場合は個々のスクリプトを書き変えて対応という事になりますが、

xshade.scene().active_shape().copy()

xshade.scene().copy()

を過去の仕様の挙動で使っていたスクリプトを全て書き変えるはめになって、その手間が私の場合は膨大な物になるので、眩暈がしそうです。

今まで作った膨大な数のスクリプトを一つ一つ書き変えて、さらにサイトにアップロードしている分も一ページ一ページいちいち新しいのをアップロードし直すというはめになってしまいます。

スクリプト的にはメソッドによってshade本体の特定の動作をさせるという感じになっているとしたら、
xshade.scene().active_shape().copy()

xshade.scene().copy()
は昔のスクリプトの仕様と整合性を持たせるようにmodify mode時も一旦内部的にはobject modeに変更してcopy処理をし、またmodify modeに戻す、みたいな処理にしたらいいのではないでしょうか。

選択部分のみクリップボードにコピーしたい場合は、先ほど書いたように別の名前の新しいメソッドを用意するようにして。

お気持ちはよく解ります。

今回の件の是非はともかくとして、かなりの量の script を作っていらっしゃるようですので、効率よく変更できるようなツールを捜しておいてはどうでしょうか。

  • テキストエディター 検索 置換

  • text editor find search replace

等でググれば、多くの text file を batch 処理するツールがたくさん引っかかると思います。

将来的に python 2.7 から python 3.x への切替が行われる可能性も考えられ、そうなれば、いくつかのルーチンは書き換えが必要になる可能性があります。

どうやら Shade 側で吸収可能な変更だけではすまないのではないかと感じています。

python 3.x への移行に際して 何が変更となるのか を事前に把握しておけば、備えあれば憂いなしですね。

加藤さんアドバイスありがとうございます。

今回の挙動変更が仕様変更なら、こちら側で対応するしかないですね。
その際にはアドバイスいただいた一括処理ツールを使って少しでも手間を減らそうと思います。

しかし、サイトに一つ一つアップしていく手間は変わらないので、できれば過去の仕様と一緒にしてもらいたいです。
メーカーの方、どうかよろしくお願いします。

17.1アップデータでupdate_figure_windowのバグの修正と、形状編集モード時のコピー&ペーストの挙動が16.1以前と同じになるよう修正していただけたようです。
メーカーの方、ご対応ありがとうございました。

バグなのか、分かりませんが、Shade3D v17でイラストレータ形式でエクスポートして、Adobe CC 2018版のイラレで開こうとしても、エラーで開けなく、また、配置でイラレのファイルに配置したら、テキストデータになってしまいます。色々みてみると、イラレの5.5以降になっているようですが、テキストエディタで開けるので、バイナリーになっていないみたいですね。

側面図を図面にしたいのですが、イラレではできない感じです。

環境は Mac MIni 2012 OS macOS High SIerra 10.13です。

どなたか、うまくできる方法があれば、お願いします。

自己解決というか、回避策でもないのですが、開けるようになりましたというか、無理やり開けるようにしました。

テキストで開けるので、自分が持っているソフトの開発環境Xojoで、テキスト形式のファイルからバイナリー形式のファイルに変換するプログラムを書いてやってみると、開けるようにできました。

で、ネットでそういうことできるソフトないか?と探してみましたが、無いようですね。

簡単なプログラムなので、Xojoの書類をあげておきます。Xojoはビルドしなければ、無料で使えます。

bitex.xojo_binary_project.zip (5.4 KB)

OS win7
Shade17 pro

・左上のツールボックスを編集にしていると右クリック→形状作成が出来ない
・図形→全てのビュー→テクスチャ+ワイヤフレームでsift+ドラッグの頂点複数選択すると選択出来ていない頂点が出てくる(ワイヤーフレームなら出来る)

バグなのかウチだけなのかわからないですが。