過去ログ

                                Page     450
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼建具個数拾い外部変形の難しさ  外注図面屋 18/5/26(土) 12:06
   ┣Re:建具個数拾い外部変形の難しさ  Fu〜 18/5/26(土) 14:17
   ┃  ┗Re:建具個数拾い外部変形の難しさ  外注図面屋 18/5/26(土) 17:33
   ┣Re:建具個数拾い外部変形の難しさ  牛渡 18/7/10(火) 11:27
   ┣図形の検索・置換  kojima 18/7/21(土) 11:22
   ┗Re:建具個数拾い外部変形の難しさ  マッチンのパパ 18/8/3(金) 15:43
      ┗こんな外部変形?  kojima 18/8/4(土) 18:05
         ┣[投稿者削除]   
         ┃  ┣Re:こんな外部変形?  kojima 18/8/4(土) 19:53
         ┃  ┗Re:こんな外部変形?  kojima 18/8/6(月) 21:17
         ┗表記に変更  kojima 18/8/4(土) 22:13

 ───────────────────────────────────────
 ■題名 : 建具個数拾い外部変形の難しさ
 ■名前 : 外注図面屋
 ■日付 : 18/5/26(土) 12:06
 -------------------------------------------------------------------------
   建具表を作ってくれとの依頼を受けたんですが(こんな依頼は普通無い)、
面倒なのが個数拾い。

外部変形で何かないかな?と検索すると、
mm38さん作のものがヒットしたのですが、hp閉鎖されてdl不可。

さらに探すと無精者さんの文字集計がそれらしいので試して見ると、
AW-1のように一連の文字列になっていると、見事に数を拾ってくれます。

しかし、AW-と1が別の文字列になってるとアウト、
または、○の上下にAWと1が描かれている建具符号でもアウト。
理由は一連の文字列になっていないから。
AWの文字の数と数字の数を拾ってしまうので。

今回の依頼の書式はAW-1の一連の文字列になっているので使えますが、
上記書式だと使えません。

あるいは、自分で建具符号をブロック図形にするかですが、
そんな手間かけるのなら同じ手間で数も拾えるわけで、無意味。

施工図だと必ず一連の文字列になっているので使えますが、
意匠図だと符号の書式が色々あって、なかなか難しいですね。

 ───────────────────────────────────────  ■題名 : Re:建具個数拾い外部変形の難しさ  ■名前 : Fu〜  ■日付 : 18/5/26(土) 14:17  ■Web : http://fu-s.cafe.coocan.jp/  -------------------------------------------------------------------------
   ▼外注図面屋さん:

私は

Jw_cadにも文字集計がありますので
自分で書く時は、おっしゃる通り文字集計しやすいようにしてます

集計ができない人の書いたものは、大きい物件では数えるたびに数が違います(^^)
変更があるたびに確認するのも大変です
ですので、拾い漏れがないように、1つずつ建具の近くに補助文字をかいて文字集計をしてます

他にはどんな方法があるんでしょうかね?

 ───────────────────────────────────────  ■題名 : Re:建具個数拾い外部変形の難しさ  ■名前 : 外注図面屋  ■日付 : 18/5/26(土) 17:33  -------------------------------------------------------------------------
   おー、JWの基本機能であったとは気がつかなかったです。
一連の文字列になっていない建具符合は補助文字で、ですか。
拾うよりこっちの方が楽そうだし、間違いがないですね。
アドバイスに感謝です。

 ───────────────────────────────────────  ■題名 : Re:建具個数拾い外部変形の難しさ  ■名前 : 牛渡  ■日付 : 18/7/10(火) 11:27  ■Web : https://miscellaneous-data-storage2.blogspot.com/  -------------------------------------------------------------------------
   建具記号をブロック図形化してブロック名をカウントするとか?

私なら、レイヤを決めて、数字だけカウントしちゃいます。


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

 ───────────────────────────────────────  ■題名 : 図形の検索・置換  ■名前 : kojima  ■日付 : 18/7/21(土) 11:22  -------------------------------------------------------------------------
   図形の検索・置換
http://www.farchi.jp/filemgmt/index.php?id=1866

▼外注図面屋さん:
>建具表を作ってくれとの依頼を受けたんですが(こんな依頼は普通無い)、
>面倒なのが個数拾い。
>
>外部変形で何かないかな?と検索すると、
>mm38さん作のものがヒットしたのですが、hp閉鎖されてdl不可。
>
>さらに探すと無精者さんの文字集計がそれらしいので試して見ると、
>AW-1のように一連の文字列になっていると、見事に数を拾ってくれます。
>
>しかし、AW-と1が別の文字列になってるとアウト、
>または、○の上下にAWと1が描かれている建具符号でもアウト。
>理由は一連の文字列になっていないから。
>AWの文字の数と数字の数を拾ってしまうので。

それぞれの文字の位置関係が寸分違わないのであれば
上記の外変で可能ですね。(ただし、図形単位の検索)

>あるいは、自分で建具符号をブロック図形にするかですが、
>そんな手間かけるのなら同じ手間で数も拾えるわけで、無意味。

上記の外変は、ブロック図形にする必要はありません。

>施工図だと必ず一連の文字列になっているので使えますが、
>意匠図だと符号の書式が色々あって、なかなか難しいですね。

書式が統一されていれば、上記の外変で可能。。(ただし、図形単位の検索)

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

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

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

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

うまがらせかな?

 ───────────────────────────────────────  ■題名 : こんな外部変形?  ■名前 : 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

 ───────────────────────────────────────  ■題名 : [投稿者削除]  ■名前 :  ■日付 :  -------------------------------------------------------------------------
   この書き込みは投稿者によって削除されました。(20/4/5(日) 11:38)

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

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


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

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

 ───────────────────────────────────────  ■題名 : 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

 ───────────────────────────────────────  ■題名 : 表記に変更  ■名前 : 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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 450