公開ソフトのアップデート(いただいたパッチを丸パクリ)

こちらの記事で、Block PlacerをR2012b以降に対応させるパッチをいただきましたので、それを丸パクリしました。「R2012b以降」さま、どうもありがとうございました。

公開ツールのダウンロードページ

さて、いただいたパッチ自体はとても素晴らしかったのですが、それとは全く別の話として、非常に残念な事が発覚しました。

私がBlock Placerで実現したかったのは、Simulinkブロックを配置する際、

(1)Simulinkモデル上でマウスを右クリック
(2)すばやくテンキーを押す(0.5秒以内、推奨!)

という感じの、サクサク操作感です。ところが、R2012bで動作確認したところ、テンキーが利かない!?

QWERYの1段上の、12345なら効きますので、ツールとして動作しなくは無いのですが、コレは厳しい・・・(0.5秒以内に、あれらのキーを押せない!)

R2010bなら、テンキーがバッチリ利きます。しばらく、R2010bから離れられそうにありません。むぅ。

4 thoughts on “公開ソフトのアップデート(いただいたパッチを丸パクリ)”

  1. パッチ取込ありがとうございます。
    >テンキーが利かない!?
    申し訳ありません、キーボーダー?なのでテンキー動作は
    確認していませんでした。
    R2013aでも確認しましたが同様に利きません。

    そもそもlabelにアンパサンド(&)をつけてアクセスキーを
    有効にするのはMATLAB/Simulinkの固有処理なのでしょうか?
    Simulinkのドキュメントで該当箇所を探して見たのですが
    accesskeyを設定する記述(Ctrlキーが必要でした)以外は
    見つけることができませんでした。Windowsのアクセスキー設定を
    流用していますか?

    なお、回避策として、AutoHotKeyなどのキーボード
    カスタマイズツール(私はDvorakJを使用しています)を使用して、
    テンキーの出力するキーをキーボードの出力する数字キーと
    同じ値に置き換えてやればテンキーも使用できるようになる
    ことを確認しました。
    汎用性はありませんが、ご参考まで。

    DvorakJ:
    http://blechmusik.xii.jp/dvorakj/

  2. おお、キーボードカスタマイズツールを使うのは素晴らしいアイデアですね!これならバッチリです。

    テンキーが効かないのは完全にMATLABのせいだと思っていて、これはマスワークスさんに改良依頼するしか無いと思っていたのですが・・・ここまで教えていただいて恐縮です。

    ちなみにlabelにアンパサンドをつけるのは、Windowsが持っている仕様だったと思います。VisualCでWindowsのAPIを使用してメニューを作成する際に、&をつけるとアクセスキーとして解釈されていました。

    ここから先は、すべて勝手な推測です。

    たぶんMATLABのUIを一新する際に、WindowsのAPIに頼らず、MATLABが独自に右クリックメニューを生成し、&などの文字も独自に解析するようにしたのでしょう。

    クロスプラットフォーム対応のために、OSのAPI依存性を減らしたかったのだと思うのですが、その際にテンキー対応を怠ったのだと思います。マスワークスさんとしても望んでやった現象ではないと思うので、そのうちテンキーにも対応してくれるとは思います。

    ともあれ、色々とありがとうございました。

  3. ご回答ありがとうございます。

    MATLAB/Simulinkは挙動が結構バージョン間で変わっていますが、ドキュメント化されていない動作を解析してカスタマイズしていると、動作が変わっても文句をなかなか言い難い点もあるかと思います。

    私の会社の部署ではR2007bをメインに使っているのですが、このバージョンだと数字キーと記号キーがshiftの有無だけで同じキーに割り当てられていると、キーを押すだけでは挿入してくれずに数値キーに対応したブロックのメニューアイテムが選択された状態のままになってしまいます。内部的にshiftを見ずに同一キーとして認識しているようで、複数候補があるためにこのような動作になってます。もう一回同一キーを押せばshiftキーありのキーが選択され、その上でenterキーを押せば挿入できるのですが2キー余計に必要。。。

    ちなみにこのツールの素晴らしい点はやはりアクセスキーで2アクション(クリック+1キープレス)での瞬時挿入を実現されているところだと思います。
    私はアクセスキーとして+-*/にSum,Subtract,Product,Divideなど、[]{}にはDemux,Mux,Bus Selector,Bus Creatorなど、記号の意味や形状とブロックを対応づけています。これですと、対応付けを一々覚える手間が減るのでお気に入りの設定です。

    今回は、ご対応頂き本当にありがとうございました。
    FreeHILSの方でもまた有用な情報あれば、ご発信頂けるとありがたいです。

  4. アクセスキーの+-*/[]{} の件、目からウロコで、ちょっと感動です。「おや?アクセスキーが増えてるな…」と思いつつそのまま取り込みましたが、まさかそんな割り当てをされているとは!聞いてしまうと、もうこの割り当てしかないという感じです。ぜひマニュアルで紹介しなくては。素晴らしいアイデアをありがとうございました。

    FreeHILSの方は、ずっと放置中です。すみません。HILSについては、株式会社NEATさんの方で低価格品を何やら企画されている様子。いずれ、このブログでご紹介できればと思っています。

Comments are closed.