前記事で紹介したツール
【実績】CAD図面内のオブジェクト数を出力(矩形編)の開発にて、CAD図面データ(.jww)を
SCF形式のテキストファイルで保存し
図面内の矩形(正方形・長方形)の数を出力させました。
その際のポイントを備忘録として
残しておこうと思います。
Windows10 64bit
VisualStudio2019
SFCファイルの構造
「線」の形式
SFCファイル内で線はこのように表記されていました。
調べてみると「line_feature」内の
後ろ4つの小数が、ある1直線の
「始点x座標」「始点y座標」「終点x座標」「終点y座標」
を表してるそうです。
つまりこのテキストファイルを読込み
「line_feature」の行に対して
これら4要素を取り出す事ができれば後は要らないですね!
line_featureの行は
カンマ区切りにすると8要素あるので
その分が入る配列に格納しておきましょう!
※line_feature(…) の部分は1行分の文字列を表してます
2次元配列で四角形を特定
2次元配列にxy終始点を格納
いま1行分のline_feature文字列が
arySplit配列に入っているので
そこから四角形の4点(xy終始点)を
抜き出して2次元配列に格納する。
4点(xy終始点)は
arySplit配列の4、5、6、7インデックスにあるので
それらを分けて2次元配列に格納します。
これでi行目の4点(xy終始点)は
xyProt(i,4) xyProt(i,5) xyProt(i,6) xyProt(i,7)
と表すことができますね!
矩形を定義する条件は何か
「矩形」とは「正方形」「長方形」を指します。
正方形・長方形の条件
「2本の対角線の長さが等しい四角形」
ということなので
まず先ほど2次元配列に格納した4点の座標から
辺の長さを算出します。
後は三平方の定理(a^2 + b^2 = c^2)から
対角線の長さが出ます
ので
矩形かどうか判断できますね!
これで矩形が特定できるので
あとは特定した件数を出力すると
それが矩形の数になりますね!
プログラムも大事ですけど
図形の考え方などはやはりその分野の知識が
ある程度必要になってきそうです!