ソリッド図形の重複確認
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()
| 固定リンク
コメント