AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
CAD作ろ! 文字を描く(3)
それでは、文字データに対応する事を考えます。
格納するデータですが、文字を構成するデータとしては、配置点X,Y、文字高さ、文字幅、文字間隔、傾き角度[°]、文字の基点、太字かどうか、斜体かどうか、フォント、文字内容、となります。下線や取消線は、文字単位で指定するもので、文字間隔が開くと切れてしまいますから、余りよろしくありません。となると、通常の線を描く事になりますが、それならば、必要とする場合には線データを追加すれば良いであろう、という事にします。勿論、文字のデータとして組み込んでしまうのも良いですが、処理が少し複雑になるでしょう。
TDataEntities = record  // データ定義
 typ : Integer ; // 要素の種類(1:直線 2:円 3:円弧 4:点 5:文字)
 lay : Integer ; // レイヤ番号
 col : Integer ; // 色番号
 lin : Integer ; // 線種番号
 wid : double ;  // 線幅
 p1,p2,p3,p4,p5,p6 : Double; // 第1〜第6データ[mm][°]
 font,moji : String ; // フォント名、文字内容
end;
・・・
Dat : array of TDataEntities; // データ
Dat_N : Integer ; // データ量
文字の基点・太字・斜体を、1つの整数として表す事にします。文字の基点は0〜8。太字の場合には+100、斜体の場合には+1000、を行う事とします。例えば、左下合わせ(=0)の太字の場合には、100、中中合わせ(=4)の斜体の場合には、1004、という感じです。文字の場合には「線種」というのはありませんから、ここに入れる事とします。同様に未使用の「線幅」を使う手もありますが、double型であり扱いが少々異なりますので避けておきます。
文字以外の他の要素には勿論、フォント名や文字内容等は必要のないダミーデータですが、nul値(空状態 '')を入れておけばさほどの容量も消費しないと思われますので、そのままにしておきます。
 
要素の種類としては、簡易CADを作るのが目的ですので、ここまでにしておきます。
 
データ構造を決めたら、実際の文字の描画用の関数を作成し、文字の作図ロジックを作成(文字情報入力→配置点指定→作図・登録、を行う処理部分)、それに応じて、図形範囲への対応、端点検索の対応、全要素表示への対応、等を行います。
文字のクリッピングは、1文字ずつ行うものとして、文字の4隅がクリッピング領域内にある場合は作図を行い、クリッピング領域外にある場合は作図を行いません。
 
 
ここまでのサンプルプログラムです。
サンプルプログラムのソース
 
 
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
 ▲PREV
 ▼NEXT
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.