« 円中心線(改) | トップページ | 多角形ソリッド »

2022年11月19日 (土)

ソリッド図形の重複確認

ソリッド図形に番号を付加する外部変形です。
ソリッド図形が重複している時は、番号が重なるので、
重複を確認することができます。

2022/11/20 スプリクト改定
※座標ソートを追加し、番号付加を左下の頂点に変更
但し、 五角形以上は、
別の頂点にも番号が付加されます。

Photo_20221119182101

2022/11/20 座標ソート追加

@if(0==1) //ソリッド重複確認
@echo off
REM #jww
REM #cd
REM #h4
REM #e
cscript //nologo //e:jscript "%~f0" %*
copy temp.txt jwc_temp.txt
del temp.txt
goto:eof
@end
//ファイルオープン
fs=new ActiveXObject( "Scripting.FileSystemObject" )
r=fs.OpenTextFile("jwc_temp.txt")
w=fs.CreateTextFile("temp.txt")
//設定
cn="cn0 15 15 0 102" //任意サイズ
dq="\"" //ダブルコーテーション
sp=" " //スペース
i=0;j=0 //カウンタ
pt=[];pt_sort=[];xy_pt=[]
//"jwc_temp.txt"読込み
while (!r.AtEndOfLine){
line=r.ReadLine()
if(/hq/.test(line)){
w.WriteLine(cn)}
//ソリッドデータ取得
else if(/s[lceoq]/.test(line)){
xy=line.split(/\s+/)
typ=xy[0]
if(typ=="sl"){
val=xy.length
val=(val-1)/2
for(j=0;j<val;j++){
pt[j]=[xy[2*j+1],xy[2*j+2]]}
pt_sort=xysort(pt)
xy_pt=pt_sort[0]
x=xy_pt[0];y=xy_pt[1]}
else{x=xy[1];y=xy[2]}
num=["ch",x,y,1,0,dq+i]
num=num.join(sp)
w.WriteLine(num)
i=i+1}
else{}}
/////座標ソート
function xysort(xy){
//y基準ソート
xy_y=xy.sort(
function(a,b){
return(parseFloat(a[1])-parseFloat(b[1]))})
//x基準ソート
xy_x=xy_y.sort(
function(a,b){
return(parseFloat(a[0])-parseFloat(b[0]))})
return xy_x}
w.Close();r.Close()

|

« 円中心線(改) | トップページ | 多角形ソリッド »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 円中心線(改) | トップページ | 多角形ソリッド »