


 
 
 
 
 
 
 |
原点を中央とし、mm-dot比が決まっていれば、画面の端の座標も決まってきます。画面サイズが、X(dot)、Y(dot)の場合、
画面左下(X1,Y1)の座標(mm)は
X1(mm)=−X/2/mm_dot
Y1(mm)=−Y/2/mm_dot
画面右上(X2,Y2)の座標(mm)は
X2(mm)= X/2/mm_dot
Y2(mm)= Y/2/mm_dot
となります。 | |
( ○○(mm)×mm_dot=△△(dot)
→ ○○(mm)=△△(dot)÷mm_dot )
なお、CADでの基準画面(指定用紙サイズを画面一杯に表示している状態)は、例えば用紙サイズをA1横とした場合、
PX(mm)=841
PY(mm)=594
とすると、縦横毎にmm-dot比を計算し、この比の小さい方をmm-dot比とします。
P1=X/PX
P2=Y/PY
if P1<P2 then mm_dot=P1 else mm_dot=P2
という感じです。大きい方を取ると用紙の縦又は横が欠けてしまいます。また、P1をmm_dotにすると横フィット表示、P2をmm_dotにすると縦フィット表示、になります。この mm_dot を求めておいてから上記のX1,Y1,X2,Y2を計算して画面表示をすれば、基準画面表示を行えます。
画面移動や画面拡大は、原点から求めるのではなく、上記の、画面左下(X1,Y1)・画面右上(X2,Y2)の値を操作し、実現させます。これは、原点が必ずしも画面上にあるとは限らないためです。
そうすると、線や円などを作図する場合、原点を元に計算するのではなく、画面の端の点を元に計算する事になります。画面のdot座標の原点(0,0)は画面左上ですので、ここを元にして、計算する事にします。この画面左上は、上記のmm座標系では(X1,Y2)となります。この場合、mm座標値を画面dot座標に変換するには、
mm値
↓
X'(dot)= (x−X1)×mm_dot
Y'(dot)=−(y−Y2)×mm_dot
↑
各要素の座標値(mm)
のようになります。
(画面y座標は正負が逆なので−が掛かっています)
逆に、画面上のドット座標をmm座標に変換するには、上記の式を逆にして、
x(mm)=X1+X'/mm_dot
y(mm)=Y2−Y'/mm_dot
のようになります。
【ソース・プログラム】
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
CAD作ろ!
▲PREV
▼NEXT
|