Jw_cad 情報交換室−その3New

 JWW についての情報交換の場としてお使いください
初心者の方などのご相談は Jw_cad 相談 室−その2をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

2009年9月以前の発言過去ログのページからご覧ください。

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
4 / 326 ツリー    ←次へ | 前へ→

建具個数拾い外部変形の難しさ 外注図面屋 18/5/26(土) 12:06

表記に変更 kojima 18/8/4(土) 22:13

表記に変更
 kojima  - 18/8/4(土) 22:13 -
集計を表記入に変更しました。

@REM 円内毎の文字の集計
@echo off
REM #jww
REM #cd
REM #bz
REM #h1
REM #1集計値記入点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt > jwc_temp.txt
pause
goto end
#!ruby -Ks
include Math
def size(str)
if RUBY_VERSION=~/^1.9|^2/
return str.bytesize
else
return str.size
end
end
def str_l(str,moji_w,moji_d)
str_a=str.split('')
if size(str_a[0])==1
l=moji_w/2
else
l=moji_w
end
if str_a.size>1
1.upto(str_a.size-1){|i|
if size(str_a[i-1])==1
l += moji_d/2
else
l += moji_d
end
if size(str_a[i])==1
l += moji_w/2
else
l += moji_w
end
}
end
return l
end
puts "bz"
en_a=[];hcw=[];hch=[];hcd=[];cn_a=[];n=0
while ARGF.gets
xy=$_.split
hpx,hpy=xy[1].to_f,xy[2].to_f if xy[0]=~/^hp1/
xy.each{|item|hcw<<item.to_f} if xy[0]=~/^hcw/
xy.each{|item|hch<<item.to_f} if xy[0]=~/^hch/
xy.each{|item|hcd<<item.to_f} if xy[0]=~/^hcd/
if xy[0]=~/^cn(\d+)$/
n += 1
cn=$1.to_i
if cn==0
moji_w=xy[1].to_f if n==1
moji_h=xy[2].to_f if n==1
moji_d=xy[3].to_f if n==1
else
moji_w=hcw[cn] if n==1
moji_h=hch[cn] if n==1
moji_d=hcd[cn] if n==1
end
end
if xy[0]=~/^ci/
xy.collect!{|item|item.to_f}
en_a<<[xy[1],xy[2],xy[3]] if xy.size==4 or xy[4]==xy[5]
end
end
ch_a=[]
open("temp.txt","r"){|f|
while f.gets
xy=$_.split
if xy[0]=~/^ch/
moji=$'.chomp if $_ =~/\"/
ch_a<<[xy[1].to_f,xy[2].to_f,moji]
end
end
}
moji_a=[]
en_a.each{|item|
x,y,r=item
ch_a2=ch_a.select{|item2|
x2,y2,moji=item2
x-r<x2 && x+r>x2 && y-r<y2 && y+r>y2
}
if ch_a2 && ch_a2.size>0
ch_a2.sort!{|a,b|b[1]<=>a[1]}
ar=[]
ch_a2.each{|item2|ar<<item2[2]}
moji_a<<ar.join("/")
end
ch_a -= ch_a2
}
moji_a.sort!
moji_a2=moji_a.uniq
array=[]
moji_a2.each{|item|
n=0
moji_a.each{|item2|
n +=1 if item==item2
}
array<<[item,n]
}
if array.size==0
printf("h#円内の文字はありません\n")
exit
end
moji_l=0
array.each{|a,b|moji_l=str_l(a,moji_w,moji_d) if moji_l<str_l(a,moji_w,moji_d)}
y=hpy
array.each{|a,b|
x=hpx
printf("ch %.11f %.11f 1 0 \"%s\n",x,y,a)
printf("ch %.11f %.11f 1 0 \"%d\n",x+moji_l+moji_w*2,y,b)
y -= moji_h+2
}
puts "cc1"
printf("ch %.11f %.11f 1 0 \"記号\n",hpx+(moji_l+moji_w)/2,hpy+moji_h+2)
l=moji_w/2*4+moji_d/2*3
printf("ch %.11f %.11f 1 0 \"数量\n",hpx+moji_l+moji_w*2+l/2,hpy+moji_h+2)
y=hpy+moji_h*2+3
printf(" %.11f %.11f %.11f %.11f\n",hpx-1,y,hpx+moji_l+moji_w*2+l+1,y)
y -= moji_h+2
(array.size+1).times{
printf(" %.11f %.11f %.11f %.11f\n",hpx-1,y,hpx+moji_l+moji_w*2+l+1,y)
y -= moji_h+2
}
y1=hpy+moji_h*2+3;y2=y+moji_h+2
printf(" %.11f %.11f %.11f %.11f\n",hpx-1,y1,hpx-1,y2)
x=hpx+moji_l+moji_w*2+l+1
printf(" %.11f %.11f %.11f %.11f\n",x,y1,x,y2)
x=hpx+moji_l+moji_w*2-2
printf(" %.11f %.11f %.11f %.11f\n",x,y1,x,y2)
__END__
:end

引用なし

パスワード


<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MALNJS; rv:11.0) like Gecko@ai126174008137.26.access-internet.ne.jp>
・ツリー全体表示

4 / 326 ツリー    ←次へ | 前へ→
  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム  
 833954
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b3
Jw_cad Copyright (C)1997-2016 Jiro Shimizu & Yoshifumi Tanaka