DelphiXE3・FireMonkey(FMX)で
俺はCADモドキを作る事が出来るか?ネタ

線幅〜。

DelphiXE3・FireMonkey(FMX)では、ImageやPaintBoxの
Canvas の Stroke.thickness に値を入れる事で、線幅が
表現できる。 なぜか、Single型だけども、
実際に値を入れてみた結果は↓のような感じ
1
20150107a
2
20150107b
3
20150107c
4
20150107d

画像ソフトで拡大して見るとわかるけれども、
1→ 薄い2ドット
2→ 濃い2ドット
3→ 薄い4ドット
4→ 濃い4ドット
ということで、どうも、線幅は偶数単位らしい。
う〜ん・・・

小数点以下も指定出来るけれども、濃さで表現されるのであろう。

実際は、CADもどきでは mm単位で表現されるけれども、例によって、mm→ドットの換算を行ってから画面にドット指定で描画される。

SXF的には、線幅コード 1〜16 に実際の線幅値が割り当てられる。
1  0.13mm
2  0.18mm
3  0.25mm
4  0.35mm
5  0.5mm
6  0.7mm
7  1.0mm
8  1.4mm
9  2.0mm
10 (未使用)
11  ユーザー定義1
12  ユーザー定義2
13  ユーザー定義3
14  ユーザー定義4
15  ユーザー定義5
16  ユーザー定義6
というわけで、自由に指定出来る、という程でもないけれども、沢山指定しまくって、何が何やら分からなくなっても仕方無いし、細線・普通・太線くらいしか使い分けしないのなら、これでも多いくらい、かもしれない?
ユーザー定義は、0<長さ≦10^15 ってあるけど
10^15(10の15乗)なんて指定する奴なんか絶対に居ない。


古くは、DOS時代のCADなんかでは、色(ペン)にプロット時の線幅を割り当てて、色を指定すること=線幅を指定すること、みたいな感じがあった。線幅を忠実に画面に描画するのが難しい(出来たとしても相当遅くなる)というのはあったし、現実的に、プロッタが、そんな感じだったから、っていうのもありますね。
でもまぁ、Windows時代になると、画面描画で線幅を表現するっていうのは比較的簡単になりましたし(開発環境や状況によっては描画速度が遅くなるって場合もありますけど)、図面をカラーで線幅もつけて印刷したい、ってケースも増えましたから、色と線幅は別々に指定出来るようになりましたね。

なので、私のCADモドキも、色は色、線幅は線幅で、指定して描画して印刷する、って方向で行きたいと思います。そのほうが、ウィジウィグって感じだし。