takashiskiのブログ

覚書の殴り書き

CorelDRAWのマクロをC#で組む

世間ではIllustrator全盛ですが、レーザー加工機などでは何故かCorelDRAWが強めです。そのためCorelDRAWを使い始めたのですが、全く情報がありません。マクロはどうやらVBAで書けるようなのですが、辛すぎるので探して回りました。

C#が使えるぞ!

ツール>マクロの下に、マクロエディタ以外に「VSTAエディタ」なる謎の項目があります。これを選択するとVisual Studioが起動することから*1、これはVisual Studio Tools for Applicationsの略だということがわかります。そう、そうなのです。VBAだけではなくC#でもマクロを記述できるのです!

APIドキュメント

非常にgoogle検索に引っかかりにくいため見つけるまでに難儀しました。Corel Deveroper Area内の、API Documentationです。やたら重いです。

API Documentation - Developer Area - CorelDRAW Community

ここに書かれている内容すべてがCorel.Interop.VGCore以下に入っています。最初はCorelDRAWの気持ちが中々わからずとても苦労しました。なのでメモ程度ですが記録を残します。

絶対やったほうがいいこと

例えば、1000個Rectangleを生成するマクロを実行すると、とても時間がかかります。それこそ糞ほど時間がかかる上にエディタは操作を受け付けなくなります。途中終了はできません。また実行中はコードの書き換えが不可です。地獄ですね。

なぜこのようになるのかというと、何かしらのObjectの生成や移動のたびに再描画が実施されているからです。

生成数が増えるにつれてデバッグすら辛くなるありさまです。流石に何か方法があるだろうと適当なワードでGoogle検索をしたところ、7年前にVBAの記事が見つかりました。幸い、CorelScriptではなかったのでVBAの記述を参考にドキュメントを読んだところ、描画を一括で行うようにする方法が見つかりました。

Speed up your macros. - Code snippets feedback - Developer Area - CorelDRAW Community

Application.Optimization property - Developer Area - CorelDRAW Community

まずマクロの先頭に次の文を挿入します。これにより、変更時に再描画がされなくなります。

app.Optimazation=true;

マクロの最後に次の文を挿入します。再描画を有効にした後、再描画を実行します。この処理を忘れると文書が真っ白になります。

app.Optimazation=false;
app.Reflesh();

また、マクロの途中でエラーが発生・停止した場合も真っ白になります。単にフラグを折って再描画をするだけのマクロ関数を用意しておくと平和かもしれません。

他にも最適化手法があるようですが、とりあえずこれだけで劇的に変化します。実質フリーズなし。

メモ

なんか起こったら追記します。

重要

バージョン

CorelDRAW2017の場合はVSもVSTAも2017じゃないとだめっぽい。2018の場合も同様。

データ保存

信頼するな。CorelDRAWが起きているときは残っているが、閉じるとどうなるかわからない。VSTAだけどの瞬間かわからない程度前までロールバックしていた。

また、VBAマクロと扱いが違うようでグローバルにしか置けない可能性がある。ちゃんと調べてない。

Startup()

最初に呼ばれる関数です。ここで初期化など実施します。

app

親です。Corel.Interop.VGCore.Application Main.appだそうです。

たぶん Applicationクラスを参照すればよいと思います。ここからDocumentとかPageとかLayerとかShapeをたどっていきます。

Application class - Developer Area - CorelDRAW Community

図形を検索したい

まず、所属するLayerをエディタから検索します。わからない場合は、すべてのLayerを走査します。

LayerのSelectableShapesまたはShapesからShapes(Shapeではない)を得ます。Shapesをforeachなどで走査し、NameやTypeを使って特定してください。

図形の色を変えたい

Shapeは色属性を持っていません。Corelでは外形とフィルに分かれていますので、Shape.OutlineやShape.FillのメンバのColorに対してアクセスします。

図形Aの中心と図形Bの中心を一致させたい。

アンカーが両方とも中心にある前提であれば、ShapeはCenterXとCenterYを持っていますので、SetPositionやPositionX/PositionYに対して他方のCenterX/CenterYを適用することで中心を一致させることができます。

CorelDRAW Essentials Suite 2018(最新)|ダウンロード版

CorelDRAW Essentials Suite 2018(最新)|ダウンロード版

CorelDRAW Graphics Suite 2018

CorelDRAW Graphics Suite 2018

*1:対応したバージョンのVisualStudioとVisual Studio Tools for Applicationsがインストールされている場合のみ

読もうぜ!漫画!

アニメばっかみてないで漫画を読みましょう!!!

2018年7月くらいから買った漫画をざーっとみていって、他の人と感想話したいなぁと思った漫画をリストアップしました。選定の閾値高めにしたので冊数少な目。あと明らかに話題になってるブルーピリオドとかBEASTERSみたいなやつとか、古めのやつは除外しました。

ライアーバード

何とも形容しがたいのでとりあえず読んで。

ライアーバード 1 (リュウコミックス)

ライアーバード 1 (リュウコミックス)

凪を探して:「猫がいない」短編集

ライアーバードの作者の脇田茜の短編集。全部今はもういない猫が絡む話。

Artiste

パリの問題に巻き込まれ続ける料理人の話。 すごく得意なこととすごく不得意なことがある生きづらい人々ばかりが出てくる漫画。

Artiste 1巻 (バンチコミックス)

Artiste 1巻 (バンチコミックス)

ミステリと言う勿れ

とても理屈っぽい主人公が問題に巻き込まれたり首突っ込んだりする話。あんまり語られない論理が多いと思う。

概念ドロボウ

泥棒もの。前作のエンバンメイズが好きだったので買ったのだけど最初の事件の盗まれたものが最後にネタ晴らしされるまで全然わからなくてなかなか衝撃を受けた。

概念ドロボウ(1) (アフタヌーンKC)

概念ドロボウ(1) (アフタヌーンKC)

美少女菩薩ミロクちゃん

この世のすべてを呪って死んだ少女が救済して回る話。救ったり救われたりの定義って難しいよね。

美少女菩薩ミロクちゃん(1) (ガンガンコミックスJOKER)

美少女菩薩ミロクちゃん(1) (ガンガンコミックスJOKER)

二月の勝者

都内の中学受験戦争を勝ち抜かせるために新米塾講師が七転八倒する話。

ゴブリンはもう十分に強い

可愛い絵柄なのにいちいち表現がえげつない。

八百森のエリー

取引数量最小化の原理と不確実性プールの原理

八百森のエリー(1) (モーニングコミックス)

八百森のエリー(1) (モーニングコミックス)

Change!

お嬢様がフリースタイルバトルをする漫画

絢爛たるグランドセーヌ

プロのバレエダンサーを目指して色々やる話

映画大好きポンポさん 2巻

でないとおもった2巻が出てきた。とてもよかった。

宮廷画家のうるさい余白

宮廷画家があれこれする話。

ピーターグリルと賢者の時間

色んな種族の女性が主人公の精子を狙って襲ってくる話

乙女ゲームの破滅フラグしかない悪役令嬢に転生してしまった

なろうでよくある題材だけど漫画として絵がすごい好きだった。

ごほうびおひとり鮨

30にして結婚するつもりだった人に振られた女性会社員が東京中の寿司屋をひたすら食べ歩く話。

洗い出した感想

真摯に立ち向かう系とコメディが好きっぽい。あと理性的なド根性。

あと、以前に比べて漫画全然読んでないな、と思いました。アンテナそこまで張れてなくて、セールとかで読み返したくなったずいぶん前に読んだ漫画とか、続き読んでなかった漫画ばかり読んでる感じ。体感ではそんな感じだった。体感では。

おまけ

知り合いが漫画のモデルになったそうです。

【速報】俺氏、3次元で脱童貞したかもしれんが、質問ある?

https://bookwalker.jp/de5487c252-6633-4d04-9be6-54a5552bf99f/?acode=CKmce3jD

問題 : MX Ergoに変えてからある日を境に突然スクロールがとてもピーキーになった

問題

MX Ergoにしてから、ある日を境にスクロールがとてもピーキーになってしまった。

具体的には、PDFの表示が縮小されているので拡大しようとCtrlを押しながらスクロールをすると、1クリックしかしていないにも関わらず拡大率が非常に大きくなる。

また、Youtubeでは音量が100から0、または0から100にしか変更できないという問題も発生した。

解決策

拡大率及び音量は滑らかに変化しているので、何か悪さをしているソフトがいるだろうとあたりを付けた。

犯人は、しつこくインストール要求のポップアップを出してきたlogicool optionsであった。

画像のように、ポイント&スクロールのスムーズスクロールを無効にすることで解決した。

f:id:takashiski:20180911121051p:plain

動作に問題がないのに余計なソフトウェアを入れることはよくないことだと痛感した。

以上。

C94 メカざざむし@金西も08b 御品書き

サークル「メカざざむし」でC94に出展します。金西も08bです。

@PLHXと実質二人のサークルです。 彼の出すものは下記です。

メカざざむし [MECH-3364]

自分の出すものは昇華転写印刷のメカニカルキーボード用キーキャップです。

CherryMXなどのメカニカルスイッチが使われているキーボードにしか使えません。 Topreはステム変換器を使えば刺さります。

全てPBT DSA 白です。夜なべして作りました。人力です。

どこぞのキーボードキット販売者ではないですが、売れないと来月の請求がやばいので買ってください。

わんこキーキャップ30キー(全2種類) 5000円

自分以外絶対作らないであろう犬が印字されたキーキャップです。 アルファベットと ;,./ の合計30キーです。

秋田犬、柴犬、ダックス、フレンチブル、ゴールデンレトリバーなど様々な種類の犬を印字しました。

もう一種類はアフガンハウンド、シベリアンハスキー、ダルメシアンとなっています。記号は共通です。

頑張って印字してますけど各5セットくらいになりそうです。

キャラクターキーキャップ(いろいろ) 1個300円 偶数個で500円

許可をもらえたのでどっかで見たことあるアイコンが出てくる予定です。

おうちにメカニカルキーボードがない人は、後述の簡易ストラップか、amazonで買えるストラップを購入するとカバンなどにぶら下げていつでもスイッチを押せます。

RAISE/LOWER 1個300円 偶数個で500円

Comic Sansを使用したカラフルなRAISE/LOWERキーキャップです。

gateron緑軸/白軸キースイッチストラップ+キーキャップ一つ 500円

余ってる軸になんとなくストラップつないだらキーストラップっぽくできたので出します。おうちにメカニカルキーボードがなくても可愛いキーキャップを持つ意味が生まれましたね!

gateronの緑と白な理由はなぜか大量に余っていたからです。緑はクリック音があるタイプで、青より重いです。gateron白は押したときに引っかかりなどがないタイプで、赤軸より軽く、realforce偏荷重の小指キーくらい軽いです。

その他

間に合えばいくらか現在市販されていないフォントのキーキャップ(30キー)を持っていきます。

1uのCtrlとかAltとかも持ってきます。

ライセンス表記

当日購入者に紙面でも共有いたします。

@マーク表記は原則twitterアカウントといたします。

わんこキーキャップ

このキーキャップは @yukakuma 氏が作成したフォント yukakuma dog とComic Sans MSを使用いたしました。

hecomi アイコン

hecomiアイコンは @hecomiがデザインされました。

Gopher

このThe Go gopherは、 kemas_Ti によってデザインされました。 オリジナルのThe Go gopherは、Renée Frenchによってデザインされました。

こはくちゃんズ、大鳥こはく

© Unity Technologies Japan/UCL

自作キーボードポエム

寝る前にMFTで聞かれていろいろ考えたことをがーっと書くだけ。

何故自作するのか

そこに不満が生まれたから。現行の量産キーボードは歴史的経緯の塊なので、betterな方法はいくらでもある。ある不満を解消する方法がそこにあるから、自作する。

突き詰めると、「しゃべるよりも自然に文字入力がしたい」になる。

また基本的に不満駆動開発のため、自分くらいしか感じない/コストを払うに値しない不満の解決は自分でやっていくしかない。

なんで格子配列にするの?

構造的理由で設定された、打ちにくいだけのタイプライター準拠のずらしかたを維持する理由がない。そもそも、人間の指は直線的に曲がる構造になっている。

そして、製造の観点からは、1uと2uの2種類だけあれば原則成立する、ということがある。現行の量産品は1u,1.25u,1.5u,1.75u,2u,ISO Enter, 様々な長さのスペースバーなど揃えるサイズが多すぎる。

なんで分割するの?

「胸を開く姿勢がとれるので首や肩・背中に負担がかからない」というのがあるが、これは一段階飛ばしてると考えている。

キーが単に横一列に並んでいると、手首が曲がってつらい。この手首のつらさをなくす手段は二つあって、一つは左手分担部分と右手分担部分の間でまげて、ゆるいV字にすることで、もう一つが左右の分担で割ってしまうことだ。分割のほうがはやっている理由は、割ることでPCBやケースを小さくすることができ、安くできる、ということがあるだろう。

何故キーを減らすの?

ホームポジションから遠くて、かつ頻度が低いから。「しゃべるよりも自然に打つ」ためにはホームポジションからなるべく手を動かさないことが重要である。

ホームポジションから手を放して目視しないと触れないキーは論外。そのためF1-F12は真っ先に削られる。数字キーが残っている場合、レイヤーキーを使って、レイヤー切り替えキーを押している間は数字行がF1-F12になるようにすることが多いだろう。しかし、その数字キーすら遠い。なのでアルファベットと記号+最下段+αまで削られることが多々ある。たいていはレイヤー切り替えキーが二つ(LOWER/RAISE)とShiftキーがあるのでキーの組み合わせによって単純に見えてる部分の3倍は追加で取り扱えるキーがある。

もちろん、数字を入力する頻度が高い場合は数字キーはいらないキーではない。

おすすめの学習パスは?

現状に不満がないならやる必要がない。不満に沿った方法を考えるべきである。

しいて言うならばXD75が私のおすすめである。基板の一つのXD75reははんだ付けがいらないため、はんだ付け機材を用意する必要がない。プレート、ケース、キースイッチ、キーキャップを追加で購入すれば刺してねじ止めするだけで完成である。75キーがあるため、HHKBよりも多い機能を詰め込める。atomic_styleというほとんど現行量産配列ままの配置が選べる。そして、キーマップが自由に変更できることが念頭にあると、「このキーこっちのほうがいいな」など徐々に不満が生まれてくるだろう。そして、最終的に分割したくなるだろう。親指がぶつかって窮屈...

MFT2018で展示します

H/14-03 Self Made Keyboard in Japanに混ぜてもらって展示します。

makezine.jp

私の展示物は、最近作ってるキーキャップです。XD75に乗せて展示します。

提案としては2点です。

  1. 意外と移行コストがでかいオーソリニアな自作キーボードへの導入・学習コストを減らしたJP配列の提案
  2. ダサいダサい言われてるけどComic Sans可愛いじゃん!!!

XD75は名前のごとく75キーの格子配列キーボードです。

最近のキーキャップ活動は以下のモーメントにまとめたので気になる人は見てみてください。

twitter.com

概ねモーメントのままだけど、C94でちょっとだけ売り出す予定なので興味があったら見に来てね!

個人事業主になるときに確定申告のために準備しておきたいこと

とりあえず4点。覚書としてかく。

記帳サービスと契約する

私はMFクラウド

freeeとかそれ以外でもいいと思うけど以下の2点は満たすサービスにしたい。

  1. WEBでできる(オフライン保存でない)
  2. 金融機関と連携できる

書き方がよくわからなくても、とりあえずなんとなく自分で考えて記帳すると商工会や税務署の記帳相談をしにいくとすごい勢いで解決する。

自分で考えずに適当に書いてると、わからないがわからなくて質問もできない、目の前に大量に記帳しなきゃいけないことがあることだけわかる、という状況になる。

税金とか会計?の本を一冊読む

金を出さない限り基本的にだれも守ってくれない。自衛のために読む必要がある。

口座・クレジットカードなど金の移動する経路を分ける

事業で使う口座の中の金の出し入れは全て記帳する必要がある。

まめにやっていれば問題ないが、まとめてやる場合は生活で細かい出し入れが多いと非常に面倒になる。

事業用口座で分けてしまえば、「全て事業に関するやり取り」とわかるのでわかりやすくなる。

領収書の管理方法を決める

紙ですべて保管しなければならないことになっている。 糞めんどくさいけど節税のために必要なのでやるしかない。

とりあえず以下のものは必ず買うことをお勧めしたい。

  • A4コピー用紙
  • テープのり
  • クリアファイル
  • 書類入れ
  • 印刷機

クリアファイルは100枚単位で買ってしまうのが良いだろう。月別・記帳/未記帳で分けて管理するのがよい。

領収書の管理フロー

領収書はすべてA4サイズで管理する。 A4のものはそのまま、A4に満たないサイズのものはA4コピー用紙に貼り付ける。 大小さまざまな領収書のサイズをそろえることで、扱いやすさと見落としを減らすことが目的である。 見通しがよくなるので、レシートの束よりは怖くない。

記帳済みかそうでないかが判断つく状態にしておくのも重要。

店頭購入の場合

作業場に帰ったときか、一日の最後にA4コピー用紙にレシートを貼り付ける。余白はレシートと同じ大きさ程度とることが望ましい。また、管理の簡便化のために、日付別で用意するとよいだろう。

余白には何を買ったのかメモする。特に品名が詳細に書かれていないレシートは必ずやること。 これをやらないと後で思い出せなくて非常にめんどくさいことになる。絶対思い出せない。なんだよ部門01って。

A4コピー用紙に貼り付けたら、元気がないときは未記帳クリアファイルに入れる。元気があったら記帳して記帳済みクリアファイルに入れる。

ネット注文の場合

糞面倒なことに、紙保管をしないといけないので印刷しておくしかない。ネットの海から領収書を探すのは非常に面倒である。

注文を受け取り次第、領収書が発行できるようになるはずなので領収書のPDFをダウンロード、印刷する。

クレカ払いであればクレカ連携で読み込めるので、品名のメモだけ書いて記帳する。

最後に、記帳済みクリアファイルに入れる。