SyntaxHighlighter

2021-12-23

[C#][Windows] MessageBox中に改行処理

仕事メモです。

Windowsプログラミングによく使用するMessageBox。大量の内容を見せやすくするには改行が必要不可欠です。

いちいちCrLfを追加するのが面倒くさいので、より分かりやすくなる名前はC#内にあるようです。

Environment.NewLine

上記の意味ある内部変数を使ったらいいです。将来LinuxやMacに変更しても同じもので対応可能。通常のCrLfはWindowsのみであり、OSによる覚え間違いは減りますが、長い英単語を覚える方が逆に難しい…なんです。

2021-10-03

LeetCode 01: Two Sum

 長い間ウワサは聞いておりますが、初めて触りました。リートコード(LeetCode)という中国発のネットジャージシステム。一応自分が登録したのはアメリカサーバですけどね。

多分アルゴリズム上ではそこまで最適化していませんが、一応コードを記録しておくことに:


public class Solution {
    public int[] TwoSum(int[] nums, int target) {
            int index1=0;
            int index2=1;

            int maxindex = nums.Length;

            while (true)
            {
                int solution = nums[index1] + nums[index2];
                if (solution == target)
                {
                    int[] result = new int[] { index1, index2 };
                    return result;
                }

                index2++;

                if(index2 >= maxindex)
                {
                    index1++;
                    index2 = index1 + 1;
                }
            }
    }
}
            

2021-09-13

在多個專案中同時設定依賴專案版本

如果你像我在做Blazor的披薩工作坊時,執行build卻發生像下面的錯誤:

warning NU1604: Project dependency 'PackageA' (<= 9.0.0) does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.

很好,第一步你找對地方了。這是一個msbuild的問題,也是這個工作坊內容的一個小問題。
這個專案中牽扯到了nuget包裝版本問題。而通常我們在github等上傳資料時,並不會包含nuget引用的封包(可以自己抓的就不要浪費網路流量啦)。

基本上專案用的方法並沒有錯,他只是少傳了一個檔案。在這個檔案中,我們可以將多個proj所需的最低版本放到同一個檔案中集中管理,這樣升級的時候就不需要一個一個去打開專案檔修改參考版本。

你所需要做的動作如下:
1. 在Solution檔案夾下放一個共通的檔案。如果你像我常常使用VSCode,那就是把檔案放在sln檔的同一個目錄中。在標準設定中,他會被叫做Directory.Build.props
2. 修改檔案內容,改成像下面這樣:
<Project>
<PropertyGroup Label="Package Dependencies">
<AspNetCoreVersion>5.0</AspNetCoreVersion>
<EntityFrameworkVersion>5.0</EntityFrameworkVersion>
<BlazorVersion>5.0</BlazorVersion>
<SystemNetHttpJsonVersion>5.0</SystemNetHttpJsonVersion>
</PropertyGroup>
</Project>
3. 如果你是用dotnet cli或是Visual Studio,恭喜你,你已經可以正常build了。
如果你不是使用標準build。那你就繼續做下一步。
4. 打開你的各個專案檔(就是那些csproj檔)。在<Project>的最上層添加下面這行
<import Project="..\Directory.Build.props" />
5. 結束。這樣應該又恢復正常了。未來有升級的時候,自己進去修改所需最低nuget的版本,看是要改成6.0還是什麼的,就看大家造詣了。

ref: https://github.com/dotnet-presentations/blazor-workshop

keyword: asp.net, dependencies.props, Directory.Build.props, .net core

2021-02-12

DataGridCheckBoxColumn動作模式變更

DataGridCheckBoxColumn裡的CheckBox,在預設狀態下,必須先點一次,Row取得focurs之後才能改變狀態。使用上不是很直覺,跟一般的CheckBox不太一樣。

背後的原因是因為DataGridCell本身有分成顯示用的ElementStyle跟編輯用的EditElementStyle兩種模式,為了做出區分,犧牲了CheckBox的直覺性。

可以依靠設定Style的方法,使操作更為直覺。

修改方式如下:

在各自的Style設定中(可以放在上位DataGrid的DataGrid.Resource裡),加入以下程式碼
<Style TargetType="CheckBox" x:Key="CheckBoxCellStyle" />

或是
<Style TargetType="CheckBox" x:Key="CellCheckBoxStyle"
       BasedOn="{StaticResource {x:Type CheckBox}}" />

然後就可以在DataGridCheckBoxColumn上設定我們所需的ElementStyle
<DataGridCheckBoxColumn Binding="{Binding Selected}"
                        ElementStyle="{StaticResource CheckBoxCellStyle}" />

做完以上的設定,指定的DataGridCheckBoxColumn裡面的CheckBox就會是我們常用的單點就會有反應的CheckBox了。

以上。

2020-10-09

SQL 改行コードの処理

SQL中に、改行コードはCHAR(13)あるいはCHAR(13)+CHAR(10)が該当します。 
それらを用いて保存すると、CSV出力やExcelにコピーする際にちょっと厄介です。

次のコードで、一括それら改行コードを削除できます。

UPDATE [TableName] SET [FieldName] = REPLACE([FieldName], CHAR(13) + CHAR(10), '') WHERE [FieldName] LIKE '%' + CHAR(13) + CHAR(10) + '%';
UPDATE [TableName] SET [FieldName] = REPLACE([FieldName], CHAR(13), '') WHERE [FieldName] LIKE '%' + CHAR(13) + '%';

2020-09-28

PrismでDIコンテナを使用するRegister vs RegisterInstance vs RegisterSingleton

Prism 7以降に、サービスを注入する際に、Register, RegisterSingleton, RegisterInstance三つのメソッドが使えます。それぞれを使用する場面について、ちょっとした解説を書き残します。

実際にサービスを登録する場合、そのサービスを使用する場面によって、異なるサービスを使用するべきと言われていますが、次のように大まかに分けています:

  • Register 該当Interfaceが注入された場合、DIコンテナが自動的に新しいインスタンスを生成し、終わったときにインスタンスを廃棄する。
  • RegisterSingleton 全部の注入には同じインスタンスで対応する。
  • RegisterInstance 主にRegisterSingletonと同じだが、生成されるInstanceは自分で管理する場合使用。

では、どれを使うほうか正解ですか?

まぁ、ほとんどなサービスはSingletonとして登録されます。ViewModelはそれらのサービスによって通信できるようにするためです。例えば、EventAggregatorサービスで、あなたが持つあるViewModelからEventを発行する際に、他の何かはそのことを知らせたいですが、それは同じインスタンスのサブスクリプションを発行者サービスとして登録している場合受け取ることができます。とはいえ、WCFクライアントは、同じシングルトンを使用する必要はありません。なぜならば、その処理はサーバー側が処理すべきなのです。

場合によっては、インスタンスを登録することは嫌がります。特に登録(register)と逆解析(resolve)が混在している場合。インスタンスを作成する際にそのインスタンスの依頼先をすべて確保する場合も。(だからResolveを呼び出す。その呼び出す自体がやや気に障るが。)

ひとつのメソッドですべての必要項目を全部登録してしまえば問題は減りますが、複数の交互依頼モジュールがある場合にはちょっと頭痛いです。

訳者注記

最近のプロジェクトでDBのアクセスサービスに、Singletonの登録にはちょっと問題あると気付きました。EntityFrameworkのDbContextを利用していますが、すべての画面が同じDbContextを登録した場合、DB側に更新がある場合、リアルタイムにReloadができません。渋々にSingletonを解除して、画面ごとに新しいDbContextを使うことにしたら、キレイに解決しました。ネットで検索したら、DbContextは長時間メモリに滞在するようには良い影響はしないようです。とりあえずEntityFrameworkのDbContextはSingleton登録しないようにする方が良いです。あるいは必要の場合自分でインスタンスを管理する方が良いかもしれません。

2020-08-16

[IAmTimCorey]15 Visual Studio Editor Tips

這是一連串的文章,關於我所知道的C#推廣者 Tim Corey 頻道 IAmTimCorey 的內容。
這同時是我的學習筆記。以下的中文用詞,大部分是個人慣用語。一般來說會附上英文原詞,方便大家對照。

原始連結: https://www.youtube.com/watch?v=qv6ZflueASY

這次的題目,是有關那個號稱地表最強IDE的Visual Studio在設定上的一些小技巧與內容。

2020-08-05

Excelに外部データベースを自動取り入れする方法

ここで使用する技は、次の使用状況を前提に考えた:

- 参照するキーはExcel上もともとある資料
- 外部データベース(今回はSQL Serverを例にする)には、すでに必要な資料を整理してある(つまり、DB内のTableのJOIN等は、Viewなどの形で、すでに整理してある)

使用する技の中身を明かすと、次のように分解する:
1. 必要なパラメータをそれぞれTableにする(Queryを掛けるときには必要)
2. それぞれのパラメータをクエリに変換。(後ほど詳しく説明)
3. 本当にデータをクエリし、必要のパラメータフィルタはひとまず「定数」で設定。
4. 上記定数のパラメータをそれぞれクエリに入れ替え。

それでは、ステップ分けて説明する。

パラメータをテーブルに設定

例として、MicrosoftのNorthwindデータベースをSqlServerのLocalDBに構築した前提で進む。目標としては[Order Details Extended]というViewの中で、OrderIDが同一するものを抽出する。

では、まずは[OrderID]をTableに設定する。A1のセルにOrderIDと入力し、例えの内容として、"10254"をA2に入力する。

A1のセルをクリックして、[挿入] - [テーブル]をクリックして、該当範囲をテーブルに変換する。ショートカットは[Ctrl-T]を押しても同じようなものが出る。注意すべきのは、「先頭行をテーブルの見出しとして使用する」にチェックを入れること。Excelの設計上、必ず一番上のマスにタイトルを入れるので、自分でタイトルを入れないと、Excelが勝手にタイトルを付けておくようになってしまう。

以上で、パラメータをテーブルに変換する手順が終わる。

パラメータをクエリに変換

次に、それぞれのパラメータテーブルをクエリに変換していく。
テーブルの一部をクリックして、[データ] - (取得と変換) - [テーブルから]をクリックする。とすると、Power Queryエディターが出てくる。

先ずはタイトルの部分を注目。ここでは「数値」としてマスの内容を認識しているはず。どっちにしよう、SQLクエリを掛けるのに、「文字」タイプが一番ベスト。ゆえに、ここは一度文字へ変換しておく。また、テーブルが複数欄になってしまった場合、ここで一度整理整頓を行う。一つのパラメータは一つの欄だけにすることが大事。

そして、1欄目のところに右クリックして、「ドリルダウン」をクリックする。とすると、ちょっと変な形になるが、使用上支障はないので、無視する。右側にプロパティが出るので、ここで名前をQueryOrderIDとする。

そのままの形で、ホーム - 閉じて次に読み込む (閉じて読み込むの裏にある)をクリックする。読み込み先が聞かれてくるが、「接続の作成のみ」として読み込み。

上記の繰り返して、すべてのパラメータをクエリへ変換しておく。

一度本クエリを行う

データ⇒新しいクエリ⇒データベースから⇒SqlServerデータベースからをクリック、接続のダイアログを出す。サーバーは (localdb)\MSSQLLocalDB で、データベースは Northwind となる。

実際に接続するときには、毎回接続情報を聞いてくるが、そこは各自に解決してください…

今回接続したいテーブル(実はView)は前述の「Order Details Extended」、そして下の「編集」をクリックする。

それぞれパラメータを掛けたいところに、タイトルの右にあるドリルダウンボタンをクリックし、フィルタを掛ける。今回の案では、10254とフィルタする。

終了したときは、同じホーム ⇒ 閉じて次に読み込む として、同じ表のA4セルに読み込む。

クエリのパラメータを入れ替える

鬼門が来た。前のステップで作成した本クエリのところをクリックして、編集を掛ける。編集を行いやすいように、表示 - レイアウト - 数式バー にチェックを入れる。

とすると、数式バーに「[OrderID] = 10254」のような文字が書いてある。10254のところをOrderIDと書き換える。

同じように、掛けたいパラメータのところをそれぞれ対応するクエリ名に入れ替えて置く。

完成したら、閉じて読み込む。

以上で、完成。

おわりに

SQLクエリを変更可能なパラメータで行うには上記のやり方で可能だが、実際に操作してみてはやはり面倒くさいし、いろいろセキュリティ上の問題で、ネットでこれらの方法を展開していないのは理由が分かる気がする。自分でもやってみて「VBAにした方が楽だなぁ」と思ったりする。なにかいい方法があれば教えてください。




2019-12-09

WPFでEFオブジェクトにData Bindingする場合の4t自動設定

WPFコントロールに自動的にBindingする場合、
デフォルトの4Tフレームワークで生成するファイルに少しだけの変更を入れると、あとはいつもの通りに任せきりにします。

内容はMSDNの公式文書からの抜粋で、私なりに必要な部分だけ取り出しました。

まず、適用する環境は次の通り:

  • Visual Studio Express 2017 for Windows Desktop
  • SQL Server Express 2017(大事でないけど、一応記録しておく。)
  • EF 6.0
  • WPF 3.0以上
そして、使用する手法はDatabase Firstで、ある程度データベースに保存するデータの形はDBですでに定義している前提で進みます。

ちなみに、MSDN公式は次の通り
MSDN公式を閲覧した時点では内容めちゃくちゃなので、蛇足ですが私なりに訳しておきました。
https://hackmd.io/@rokashou/rkSHqVM2H

カギになる設定の部分を抜粋:

  • ソリューションエクスプローラーを開き、edmxファイルの下にあるttファイル探します。編集としてファイルを開けます。
  • 二箇所にある「ICollection」を「ObservableCollection」へ置き換えます。それぞれは約296行目と484行目あたりにあります。
  • 最初に出た「HashSet」を見つけて「ObservableCollection」に置き換えます。 それは約50行目にあります。コードの後半にある2番目のHashSetを置き換えないでください。
  • 一回だけある「System.Collections.Generic」を検索し、「System.Collections.ObjectModel」に置き換えます。 それは約424行目にあります。
  • .ttファイルを保存します。 これにより、エンティティのコードが再生成されます。 コードが自動的に再生成されない場合は、.ttファイルを右クリックして、「カスタムツールの実行」を選択します。

以上。

あとは普通にプログラムを組んでください。
ちょっと前のやつにはいろいろ不具合があるようで、見つけた次第にエラーでないように更新していく…



2019-11-20

Markdown記法, HackMDとGitHub

ちょっと前まではwiki記法が流行っていたが、最近ではGitHubでのreadme.mdの記入としてMarkdown記法が流行っている方です。

一応、関連のサイトのリンクを貼り付けておく:

Markdownは、特定の文字をHTML標準タグへ変換することで、ブラウザで表示されると、HTMLで記入したハイパーテキストと同じような表示ができること。まぁ、Wikiとは似ている同志ですね。

関連文法/説明文書はここでは割愛。
HackMDのTutorialだけは置いておく。異なるサイトによるMDの文法が多少違うけど、基本的なところは同じですね。


では、また次のときに。

2019-06-21

認証プロキシ非対応アプリケーションを、認証プロキシ環境下で動かす方法

いやー、非常に助かります。


仕事上でVS Expressを入れたいのに、会社の環境でproxyが設定されて、何回か試しても公式サイトにつながらないので、いろいろ探した末に、この方法にたどり着いた。


カギになる部分だけを記録しておく:
1. Fiddlerをダウンロードし、インストール。最新版ではFiddlerScriptも同梱しているので、特に分けて設置する必要はありません。
2. IEで任意のウェブサイトを閲覧し、通信を行う。
3. Fiddlerのinspectorsで、Headers中のProxy-Authorizationのtokenを取得(前提条件はその合法的なtokenを取得できることですが…
4. FiddlerScriptを編集し、onBeforeRequestの中に、最後に上記のProxy-Authorizationを注入。
oSession.oRequest["Proxy-Authorization"]="TOKEN";
5. Script保存して完了!


ちなみに、使用するアプリケーションはフリーで、商用利用不可とは書いてません。


参考になったサイトは次の通り
https://qiita.com/Nuits/items/1bd84b45b0b092527d8d


無事に設定して、現在VS Expressをダウンロード中。。。


では、また今度~~


そろそろネットワークについて勉強しないとなぁ。

2018-12-24

在Ubuntu Server加裝Desktop(GUI)環境

對於許多老骨董來說,CUI環境總是比較有親和力(咦?)又快速,但是安裝之後有時候要用一些東西又想轉回GUI

打入以下指令可以在Ubuntu Server上面加裝Desktop(GUI)環境

首先更新你的package list
$ sudo apt-get update

然後安裝desktop環境
$ sudo apt-get install ubuntu-desktop

最後,重開機讓他自己去讀取GUI介面
$ sudo shutdown -r now

結束。

参考資料:

2018-10-04

Time Machine reset

最近やたらTime Machineがバックアップできない・完了しない。
あれこれでosX 10.12以降かな…

いろいろネットにある情報を探してみましたが、次の有利情報が手に入った。
参考サイト:https://wayohoo.com/mac/troubles/how-to-deal-with-the-problem-of-backup-for-time-machine.html

何をするというと、Time Machineの設定を削除して、1からやり直す…
まぁ、できないよりはマシかな?

という訳で、やってみましょう

つぎの設定ファイルを削除する
/Library/Preferences/com.apple.TimeMachine.plist

できるかどうかわからないが、とりあえずひとメモ。

2018-09-26

SSA, ASS 字幕特效參數

ref url
https://www.douban.com/note/284573295/
字幕软件Aegisub ASS代码使用指南
https://blog.xuite.net/allenyin/blog/63417097-SSA%E3%80%81ASS+%E5%8F%83%E6%95%B8-%E6%94%BB%E7%95%A5
SSA、ASS 參數-攻略
https://github.com/weizhenye/ASS/wiki/ASS-%E5%AD%97%E5%B9%95%E6%A0%BC%E5%BC%8F%E8%A7%84%E8%8C%83
ASS 字幕格式规范
https://arctime.org/subtitle-special-effect.html
Arctime 特殊字幕效果的制作

SSA、ASS 參數-攻略


說明:
<參數>
[可選項]
<../..>任選其中一項

[Script Info]部分

PlayResX
屏幕的寬度。
影響到字幕中的距離單位,最好和視頻文件的高寬相等
PlayResY
屏幕的高度

[v4+ Styles]部分

Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColor, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Name
字體名稱
Fontname
所使用的字型
Fontsize
字體大小
PrimaryColour
主體顏色
顏色格式為AABBGGRR,十六進制,00-FF,alpha藍綠紅,和SSA不同
SecondaryColour
次要顏色
卡拉OK中使用
OutlineColor
邊框顏色
就是SSA的 TertiaryColour
BackColour
陰影顏色
Bold
粗體
0關閉,-1開啟。Italic,Underline,Strikeout相同
Italic
斜體
Underline
下劃線
Strikeout
刪除線
ScaleX
橫向縮放
單位是%,默認為100,即正常大小
ScaleY
縱向縮放
Spacing
字間距
Angle
旋轉
BorderStyle
邊框樣式
Outline
邊框寬度
Shadow
陰影距離
Alignment
對齊方式
ASS
左中右
上789
中456
下123
SSA
左中右
上567
中91011
下123
MarginL
字幕距左邊的距離,右對齊時無效
MarginR
字幕距右邊的距離,左對齊時無效
MarginV
字幕高度
下對齊時表示到底部的距離
上對齊時表示到頂部的距離
中對齊時無效
Encoding
編碼
AlphaLevel
透明度
SSA 中用 AlphaLevel 來控制透明度。在ASS中被取消。

[Events]部分

Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Layer
字幕層次
字幕重疊時數值大的顯示在上層
Start
開始時間
格式0:00:00.00
最小單位1/100秒
End
結束時間
Style
字體名稱
Name
名字,相當於注釋
MarginL
同[v4+ Styles]
MarginR
同[v4+ Styles]
MarginV
同[v4+ Styles]
Effect 特效
Scroll up;<y1>;<y2>;<delay>[;<fadeawayheight>]
字幕從下向上捲動
Scroll down;<y1>;<y2>;<delay>[;<fadeawayheight>]
字幕從上向下捲動
y1,y2
上下範圍
delay
速度
表示移動一像素所用的時間,單位為1/1000秒
delay=5表示一秒移動200的距離
fadeawayheight
上下的淡出淡入範圍
Banner;<delay>[;<lefttoright>[;<fadeawaywidth>]]
跑馬燈效果
lefttoright <0/1>
0從右向左移動,1從左向右移動

fadeawaywidth
左右的淡出淡入範圍
Karaoke
卡拉OK,在字幕正文中使用代碼{\k}
Text
字幕正文
字幕正文中可以添加代碼來實現各種特效

ASS 正文特效代碼

所有代碼加{}表示,\n,\N,\h除外
所有代碼由\開頭
\n空格,寬度超出範圍後自動換行
\N硬回車
\h硬空格
\b<0/1>粗體
0關閉,1開啟
\i<0/1>斜體
\u<0/1>下劃線
\s<0/1>刪除線
\bord<width>邊框寬度
\shad<depth>陰影距離
\fn<font name>改變字型
\fs<font size>改變字號
\fsc<x/y><percent>字符縮放
正常大小為100%
\fsp<pixels>調整字間距
\fr[<x/y/z>]<degrees>旋轉
\frz= \fr,和[v4+Styles]中的Angle效果相同
旋轉所圍繞的中心由\a或\an決定
\fe<charset>改變編碼
\c&H<bbggrr>&改變顏色
十六進制00-ff,藍綠紅
\c = \1c
\1c&H<bbggrr>&改變主體顏色
\2c&H<bbggrr>&改變次要顏色
\3c&H<bbggrr>&改變邊框顏色
\4c&H<bbggrr>&改變陰影顏色
\alpha&H<aa>&改變透明度
\alpha是同時改變字幕所有部分的透明度
\1a&H<aa>&
改變主體透明度
\2a&H<aa>&
改變次要透明度
\3a&H<aa>&
改變邊框透明度
\4a&H<aa>&
改變陰影透明度
\r[<style>]\r恢復成最初的字體
\r <style>可以改變成其它的字體
\a<alignment>設置對齊方式
和SSA相同
左 中 右
上 5 6 7
中 9 10 11
下 1 2 3
一般正文用\a2,特效用\a10
\an<alignment> 設置對齊方式
和ASS相同
左 中 右
上 7 8 9
中 4 5 6
下 1 2 3
一般正文用\an2,特效用\an5
\a和\an對整個字幕有效,不論放在何處.調整對齊方式非常重要,它決定了字幕旋轉,縮放,移動時的參照點。
對齊方式是針對字幕的整體有效,字幕中的每個字符都是向下方對齊的。
如果要使用不同大小的字符,應該將一段字幕分為多段時間軸相同的字幕
\k<duration>卡拉OK
\k 無平滑效果
\K或\kf 有平滑效果
\ko有邊框的卡拉OK效果。時間單位是1/100秒
{\K50}aaaa表示用0.5秒來顯示歌詞aaaa----------後面沒有字符表示停頓一段時間
\t([<t1>, <t2>, ] [<accel>,] <style modifiers> )動態效果
t1,t2分別是動態效果開始和結束時間,省略後以時間軸的開始結束時間為准
accel控制動態效果的運動速度 1 正常速度
0<accel<1 速度從快到慢減速運動
1<accel 速度從慢到快加速運動
計算公式為 t時的動作完成量 = pow((t-t1)/(t2-t1), accel)
style modifiers可以使用的效果 \c,\<1/2/3/4>c,\alpha,\<1/2/3/4>a,\fs,\fr[<x/y/z>],\fsc<x/y>,\fsp,\bord,\shad
可同時使用多個效果
\move(<x1>, <y1>, <x2>, <y2>[, <t1>, <t2>])x1,y1為移動開始的位置
x2,y2為移動結束的位置
屏幕的確左上角是0,0,右下角由[Script Info]中的PlayResX:和PlayResY:決定
t1,t2是移動開始和結束時間,省略後以時間軸的開始結束時間為准,只能使用一次。
\pos(<x>, <y> )改變位置。只能使用一次。
使用\move或\pos後MarginL,MarginR,MarginV無效
\fade(<a1>, <a2>, <a3>, <t1>, <t2>, <t3>, <t4> )淡出淡入效果
a1是顯示開始時的透明度,t1,t2表示顯示的開始和結束時間
a2是顯示結束到消失開始時的透明度
a3是消失結束時的透明度,t3,t4表示消失的開始和結束時間
此處透明度必須使用十進制來表示,範圍0-255
\fad(<t1>, <t2> )淡出淡入效果
t1表示顯示使用的時間
t2表示消失使用的時間
\p<0/1/2...>繪圖,參數1/2...表示繪圖比例,0表示繪圖結束
\p<1/2...><繪圖命令>
\p0 繪制圖形,繪制出的圖形作為一個字符來處理,可以近行旋轉,縮放等
繪圖命令
m <x> <y>移動到x,y並開始繪制
繪圖開始時必須使用一次
n <x> <y>移動到x,y並開始繪制,但不關閉上一個繪圖
l <x> <y>畫直線到x,y
可以用l <x1> <y2> <x2> <y2> ... <xn> <yn>的方式畫連續直線
b <x1> <y1> <x2> <y2> <x3> <y3>畫曲線
s <x1> <y1> <x2> <y2> <x3> <y3> ... <xn> <yn>畫封閉曲線
p <x> <y>延伸封閉曲線
c關閉封閉曲線
繪制的圖形是實心的,在前面添加\1a&Hff&可以得到空心的圖形

2018-09-22

Homebrew 系統升級後設定

這次的問題發生在MacOS 10.13以後的版本上。主要由於MacOS本身升級後改掉了一些目錄的設定,導致Homebrew抓不到自己的設定。還好Homebrew自己的設定還滿容易升級的。

錯誤訊息發生於執行brew update時,brew會告訴你/usr/local這個目錄的使用者權限有問題,叫你用下面的指令進行修復後繼續


sudo chown -R $(whoami):admin /usr/local


但是執行了指令之後並沒有多大作用。還是一樣跳一大堆錯誤之後停下來。

找了找網路的解法,看起來是要重新install過brew。執行下面指令(建議先自己跑過Xcode把CommandLine Tool更新一下)


/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

以上,解決。暫時完成brew更新的問題。

參考資料:
High SierraにアップデートされたMacでHomebrewがうまく動かない時https://qiita.com/takustaqu/items/65aa67286345baac363e

2018-09-17

控制盤燈號顏色等規定




IEC 60073 Basic and safety principles for man -machine interface, marking and identification – Coding principles for indicators and actuators


ISO 3864 Safety colours and safety signs


ISO 13850 Safety of machinery – Emergency stop – Principles for design


CNS 14816-1(IEC 60947-1:2004) 低電壓開關裝置及控制裝置 - 第1部 : 通則
(Low-voltage switchgear and controlgear – Part 1: General rules)


CNS 14816-5-1(IEC 60947-5-1:2003) Low-voltage switchgear and controlgear – Part 5-1: Control circuit devices and switching elements – Electromechanical control circuit devices


CNS 5741 C 1067 指示燈及按鈕之顏色

2018-07-23

代替小畫家的免費繪圖軟體

小畫家殺手...有點言過於實了,畢竟小畫家太弱XD
Windows馴染みのペイントの代わりですが、私がよく使っている方をお紹介します。

1. GIMP https://www.gimp.org/
最強殺手,以前是號稱推倒Photoshop...
昔からフリーウェアなので使っていますが、「オープンソース界のPhotoshop」と言われるほど有名だと思います。

2.Krita https://krita.org/zh/
開源版的 illustrators,向量圖就靠它了。
新たに紹介された「オープンソース界のillustrators」です。ベクター画像の編集にはこっちのほうが向いています。
3.Inkscape https://inkscape.org/zh-hant/
其實講到開源的向量圖軟體,在下對這個軟體比較耳熟能詳。網路上的比較也比Krita好得多,只能說可能是因為針對中文用戶的支援太少,導致其在華文世界的評價不是很高。
正直こっちのほうが僕にとってのオープンソース界のillustratorsですが、なぜか他のサイトでは上のKritaが紹介された。まぁ、アジア系のサポートが悪いのかな?

4. Paint .NET https://www.getpaint.net/
操作上最接近原來的小畫家。缺點是只能在Windows上用。
画面と操作にはWindowsのペイントに一番近いですが、残念ながらWindowsしか使えません(.NET Frameworkを使うので)。

2018-06-04

Adobe Reader DC icon lost/missing

不確定是不是因為Adobe跟Windows 10吵架。每當更新Adobe Reader DC之後,桌面跟快速列上的ICON(圖示)就會爛掉(變成空白)。

稍微搜尋一下,似乎這是常態性的問題,只能手動修正。

以下手續進行修正:
Step 1. 打開C:\ProgramData\Microsoft\Windows\Start Menu\Programs資料夾,刪除其中的Adobe Reader DC的捷徑。

Step 2. 另外在桌面新建一個捷徑,指向C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe,並將它改名為Adobe Reader DC

Step 3. 好,你猜到了。把剛剛桌面上建好的那個捷徑拉到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs 資料夾裡面。

以上,完成。

reference:
https://www.mysysadmintips.com/windows/clients/700-broken-adobe-reader-dc-icon-in-windows-10-start-menu

2018-03-31

VBE6EXT.OLB無法載入

今天Solidworks開啟時發生一個問題
「VBE6EXT.OLD無法載入」

問題其實影響很大,會讓後續開啟小窗格要修正尺寸的時候一直警報不讓你改。
(聽說不只Solidworks, AutoCAD也會有類似的狀況)


主要原因是Windows的登錄檔不知什麼原因將VBA 6.0的登錄刪掉了。
VBE6EXT.OLD檔案本身應該還在下面的目錄中

C:\Program Files (x86)\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB

稍微搜尋了一下解決方法,網路上很多把這個X86的DLL轉貼到VBA7.1的目錄裡面的做法,那並不是正道。正確的應該是像https://forum.solidworks.com/thread/40593中Luke Malpass前輩的做法,另外將VBAE6EXT.OLB這個檔案登錄回去。

登錄碼如下:

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}]

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3]
"PrimaryInteropAssemblyName"="Microsoft.Vbe.Interop, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
@="Microsoft Visual Basic for Applications Extensibility 5.3"

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\0]

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\0\win32]
@="C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB"

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\FLAGS]
@="0"

[HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-0000-C000-000000000046}\5.3\HELPDIR]
@="[{0002E157-0000-0000-C000-000000000046}]"

或者是直接下載論壇上的附檔
https://forum.solidworks.com/servlet/JiveServlet/download/204911-63820/reg.reg.zip

以上

2018-03-26

Solidworks解決雙點無法直接開啟問題

又是一個困擾我已久的問題
從Windows 10開始,灌完Solidworks之後,總是無法直接從檔案總管打開文件。

找了一下之後,發現有不少人遇到同樣的問題。試了一下網友提供的解法,嘿,還真解決了。

快速筆記如下:
1. 以「系統管理員身分」開啟Solidworks
進設定->系統選項->檔案Explorer
點擊「還原檔案關聯」

2. 以「系統管理員身分」開啟命令提示字元(cmd)

輸入以下指令重新註冊DLL檔(記得先確認DLL檔位置)
regsvr32 "D:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\sldthumbnailprovider.dll"
regsvr32 "C:\Program Files\Common Files\SOLIDWORKS Shared\sldwinshellextu.dll"
3. 再次從檔案總管確認預設開啟程式。應該要是"SOLIDWORKS Launcher"

以上,解決。

參考資料:http://solidworks.org.tw/forum.php?mod=viewthread&tid=25495

人気の投稿