Jw_cad 情報交換室−その3New

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

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

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


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

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

Re:建具個数拾い外部変形の難しさ マッチンのパパ 18/8/3(金) 15:43
こんな外部変形? kojima 18/8/4(土) 18:05
Re:こんな外部変形? R.N 18/8/4(土) 19:39
Re:こんな外部変形? kojima 18/8/4(土) 19:53
Re:こんな外部変形? R.N 18/8/4(土) 20:45
Re:こんな外部変形? kojima 18/8/6(月) 21:17
表記に変更 kojima 18/8/4(土) 22:13

Re:建具個数拾い外部変形の難しさ
 マッチンのパパ  - 18/8/3(金) 15:43 -
▼外注図面屋さん:
>建具表を作ってくれとの依頼を受けたんですが(こんな依頼は普通無い)、
>面倒なのが個数拾い。
>
>外部変形で何かないかな?と検索すると、
>mm38さん作のものがヒットしたのですが、hp閉鎖されてdl不可。
>
>さらに探すと無精者さんの文字集計がそれらしいので試して見ると、
>AW-1のように一連の文字列になっていると、見事に数を拾ってくれます。
>
>しかし、AW-と1が別の文字列になってるとアウト、
>または、○の上下にAWと1が描かれている建具符号でもアウト。
>理由は一連の文字列になっていないから。
>AWの文字の数と数字の数を拾ってしまうので。
>
>今回の依頼の書式はAW-1の一連の文字列になっているので使えますが、
>上記書式だと使えません。
>
>あるいは、自分で建具符号をブロック図形にするかですが、
>そんな手間かけるのなら同じ手間で数も拾えるわけで、無意味。
>
>施工図だと必ず一連の文字列になっているので使えますが、
>意匠図だと符号の書式が色々あって、なかなか難しいですね。
 
2005年頃にchi建築設計室さんが造られた建具集計という外変があっていまだに便利に使わさせてもらっています。

丸の中の横線の上に番号の数字下にAWとかSDとかの記号を入れたものを
キープランと言いますか?簡略平面図に所在箇所に書き込みその数を図上に文

字で落とせるもので、プリントしてから検証してみてもバッチリです。
念のために今日、外変でやってみましたが、見事に成功でしたが、chiさん

のサイトが閉鎖されていてダウンロードできません。著作権のことは解りませんが皆さんが利用できるといいのですが!!

うまがらせかな?

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0@vc157.net061206078.thn.ne.jp>
・ツリー全体表示

こんな外部変形?
 kojima  - 18/8/4(土) 18:05 -
▼マッチンのパパさん:
>2005年頃にchi建築設計室さんが造られた建具集計という外変があっていまだに便利に使わさせてもらっています。
>
>丸の中の横線の上に番号の数字下にAWとかSDとかの記号を入れたものを
>キープランと言いますか?簡略平面図に所在箇所に書き込みその数を図上に文
>
>字で落とせるもので、プリントしてから検証してみてもバッチリです。
>念のために今日、外変でやってみましたが、見事に成功でしたが、chiさん
>
>のサイトが閉鎖されていてダウンロードできません。著作権のことは解りませんが皆さんが利用できるといいのですが!!
>
>うまがらせかな?

こんな外部変形かな?

@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
puts "bz"
en_a=[];hch=[];cn_a=[];n=0
while ARGF.gets
xy=$_.split
if xy[0]=~/^hp1/
hpx,hpy=xy[1].to_f,xy[2].to_f
end
if xy[0]=~/^hch/
xy.each{|item|hch<<item.to_f}
end
if xy[0]=~/^cn(\d+)$/
n += 1
cn=$1.to_i
if cn==0
moji_h=xy[2].to_f if n==1
else
moji_h=hch[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]
}
x=hpx;y=hpy
array.each{|a,b|
printf("ch %.11f %.11f 1 0 \"%s:%d\n",x,y,a,b)
y -= moji_h+1
}
if array.size==0
printf("h#円内の文字はありません\n")
end
__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>
・ツリー全体表示

Re:こんな外部変形?
 R.N  - 18/8/4(土) 19:39 -
▼kojimaさん:

こんばんは、

この、chiさんの外変、「建具集計_2」は、
円の中の文字列2つを判断(大文字・小文字も区別)して、集計し書き出すようです。

また、部分出力して、その出力データを再度選択し、合算・集計することもできます。
(後で、データ再確認も、"楽"かもです)

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0@pl22742.ag2323.nttpc.ne.jp>
・ツリー全体表示

Re:こんな外部変形?
 kojima  - 18/8/4(土) 19:53 -
▼R.Nさん:
>▼kojimaさん:
>
>こんばんは、
>
>この、chiさんの外変、「建具集計_2」は、
>円の中の文字列2つを判断(大文字・小文字も区別)して、集計し書き出すようです。

掲載した外部変形は、円内の全ての文字を / で接続し、一つの文字列として集計します。
1行でも2行でも3行でも可。


>また、部分出力して、その出力データを再度選択し、合算・集計することもできます。
>(後で、データ再確認も、"楽"かもです)

この部分は、意味がよく分かりません。

引用なし

パスワード


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

Re:こんな外部変形?
 R.N  - 18/8/4(土) 20:45 -
▼kojimaさん:

書き方が悪くて、すみません。

>>この、chiさんの外変、「建具集計_2」は、
>>円の中の文字列2つを判断(大文字・小文字も区別)して、集計し書き出すようです。
>
>掲載した外部変形は、円内の全ての文字を / で接続し、一つの文字列として集計します。
>1行でも2行でも3行でも可。

使用してみて、問題があるわけではありません。

>>また、部分出力して、その出力データを再度選択し、合算・集計することもできます。
>>(後で、データ再確認も、"楽"かもです)
>
>この部分は、意味がよく分かりません。

kojimaさんのスクリプトも、1行でも2行でも3行でも可---ですが、chiさんのは、円内の文字列は、多分2文字列限定かと思いますが、個別に書き出したデータ同士を、更に選択し、集計することができる、ということです。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0@pl22742.ag2323.nttpc.ne.jp>
・ツリー全体表示

表記に変更
 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>
・ツリー全体表示

Re:こんな外部変形?
 kojima  - 18/8/6(月) 21:17 -
>また、部分出力して、その出力データを再度選択し、合算・集計することもできます。
>(後で、データ再確認も、"楽"かもです)

部分出力?
エリア単位の小集計のこと?
エリア1の少集計とエリア2の少集計を選択して、エリア1とエリア2の合計を書き出す
ということならば、以下の外変で可能。

1、最初に掲載した外変でエリアごとに集計結果を書き出す。(書式例 AW/1:5)
2、1の集計結果を以下の外変で集計結果を全て選択して合計を書き出す。
個人的には必要? と思いますが。


REM 円内毎の文字の集計の合計
@echo off
REM #jww
REM #cd
REM #bz
REM #h3
REM #1集計値記入点を指示してください
REM #k|1)計算式無(L)|2)計算式有(R)|/_/a
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1> jwc_temp.txt
pause
goto end
#!ruby -Ks
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
siki=argument[2..-1].to_i
end
end
puts "bz"
en_a=[];hch=[];cn_a=[];n=0;ch_a=[]
while ARGF.gets
xy=$_.split
if xy[0]=~/^hp1/
hpx,hpy=xy[1].to_f,xy[2].to_f
end
if xy[0]=~/^hch/
xy.each{|item|hch<<item.to_f}
end
if xy[0]=~/^cn(\d+)$/
n += 1
cn=$1.to_i
if cn==0
moji_h=xy[2].to_f if n==1
else
moji_h=hch[cn] if n==1
end
end
if xy[0]=~/^ch/
moji=$'.chomp if $_=~/\"/
if moji=~/\:(\d+)$/
ch_a<<[$`,$1 .to_i]
end
end
end
ch_a.sort!{|a,b|a[0]<=>b[0]}
if ch_a.size==0
printf("h#該当する文字はありません")
exit
end
hash={}
ch_a.each{|a,b|
if hash.key?(a)
hash[a] += b
else
hash[a]=b
end
}
x=hpx;y=hpy
hash2={}
ch_a.each{|a,b|
if hash2.key?(a)
hash2[a] << "+#{b}"
else
hash2[a]= "#{a}:計#{hash[a]}=#{b}"
end
}
array=[]
if siki==1
hash.each{|a,b|array<<sprintf("%s:計%d\n",a,b)}
else
hash2.each{|a,b|array<<sprintf("%s\n",b)}
end
array.sort!
array.each{|item|
printf("ch %.11f %.11f 1 0 \"%s\n",x,y,item)
y -= moji_h+1
}
__END__
:end

引用なし

パスワード


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

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

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