Indexへ
(16078)//【16061】→(16062)
------------------------
【タイトル】数量拾い出し
【記事番号】 16061 (*)
【 日時 】04/04/18 18:41
【 発言者 】kei

jwwで電気設計図面作成後、プリントアウトして
結局、手作業で電線数量等を積算しています。
もちろん、図形等のレイヤーは全て分けています。
指定線色のトータル数量を集計できる機能はないのでしょうか?


Indexへ
(16061)←【16062】→(16064)
------------------------
【タイトル】Re(1):数量拾い出し
【記事番号】 16062 (16061)
【 日時 】04/04/18 20:10
【 発言者 】siegel

▼keiさん:
>jwwで電気設計図面作成後、プリントアウトして
>結局、手作業で電線数量等を積算しています。
>もちろん、図形等のレイヤーは全て分けています。
>指定線色のトータル数量を集計できる機能はないのでしょうか?

建築用ですが、牛渡さんの「LP_COUNT / L_LIST 線長・点の集計 Ver. 0.3」

http://homepage2.nifty.com/ushiwatari/libraries.html

サンプル等を参照して下さい。(尚、gawk が必要な外部変形です)


Indexへ
(16062)←【16064】→(16063)
------------------------
【タイトル】Re(2):数量拾い出し
【記事番号】 16064 (16062)
【 日時 】04/04/18 20:38
【 発言者 】のの eucaly@arc.design.co.jp.NOSPAM

▼siegelさん:
>▼keiさん:
>
>建築用ですが、牛渡さんの「LP_COUNT / L_LIST 線長・点の集計 Ver. 0.3」
>
>http://homepage2.nifty.com/ushiwatari/libraries.html

私も便乗してDLしてみました.リストまで作図してくれる優れものです.
曲線も拾ってくれるともっといいですね


Indexへ
(16064)←【16063】→(16079)
------------------------
【タイトル】Re(1):数量拾い出し
【記事番号】 16063 (16061)
【 日時 】04/04/18 20:12
【 発言者 】のの eucaly@arc.design.co.jp.NOSPAM

▼keiさん:
>jwwで電気設計図面作成後、プリントアウトして
>結局、手作業で電線数量等を積算しています。
>もちろん、図形等のレイヤーは全て分けています。
>指定線色のトータル数量を集計できる機能はないのでしょうか?


検索したところいくつか見つかりました.
他にもあるかもしれません_%・・
----------------------------------------------------------
◇無精者の道具箱さまの「総線長合計」 Sentyou.lzh
http://www.page.sannet.ne.jp/kiyoaki-oikawa/

※範囲選択した要素の長さを合計して表示/記入する外部変形

----------------------------------------------------------
◇Yoshiki SAKAI様のJw_Cad活用ツール

http://www.vector.co.jp/soft/win95/business/se088253.html

JwBmX100.LZH: Jwc2Bmp2 / Jwc2BmpX Jw_Cad活用ツール

機能は色々ありますがその中に以下があります.
* レイヤ内の線データの長さの集計をしたい。(積算処理など)

※JWC(Dos版)のデータだけに対応しているみたいです.
 保存形式をJWC(Dos版)にて保存する必要があると思います.
----------------------------------------------------------


Indexへ
(16063)←【16079】//(16065)
------------------------
【タイトル】一括作表、外変
【記事番号】 16079 (16061)
【 日時 】04/04/19 11:52
【 発言者 】コジマ

▼keiさん:
>jwwで電気設計図面作成後、プリントアウトして
>結局、手作業で電線数量等を積算しています。
>もちろん、図形等のレイヤーは全て分けています。
>指定線色のトータル数量を集計できる機能はないのでしょうか?

以下、自作の外部変形です。(ActiveRubyスクリプト)
線色別に線長、円弧長(円、楕円、曲線は除く)

この外部変形の実行には、ActiveRubyのインストールが必要です。
牛渡さんのサイトで入手できます。
  http://homepage2.nifty.com/ushiwatari/tips/install.html

コピペ後、全角スペースを半角スペースに一括置換してください。

◎バッチファイル(ファイル名 色別線円弧長一覧.bat で保存)

REM 範囲内色別の線円弧長さ一覧を記入する
@echo off
REM #jww
REM #cd
REM #h1
REM #g1
REM #0総延長記入点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul
cscript //nologo 色別線円弧長一覧.rb temp.txt > jwc_temp.txt

◎スクリプトファイル(ファイル名 色別線円弧長一覧.rb で保存)

# 範囲内色別の線円弧長を記入
BEGIN{
$sentyo1=Array.new;$sentyo2=Array.new;$sentyo3=Array.new;$sentyo4=Array.new
$sentyo5=Array.new;$sentyo6=Array.new;$sentyo7=Array.new;$sentyo8=Array.new
$daen=Array.new;$gyo=6 #行間(図寸)
}
def main
while ARGF.gets
xy =split      
if xy[0]=~/^hp1/;a =xy[1].to_f;b =xy[2].to_f;end
if xy[0]=~/^lc/;$lc=xy[0];end
if xy[0]=~/^[0-9]/ or xy[0]=~ /^-/
xy.collect!{ |item| item.to_f }        # 数値化
xx=xy[2]-xy[0];yy=xy[3]-xy[1]
$xy=Math.sqrt(xx**2+yy**2)/1000
if $lc=="lc1";$sengoukei1=$sentyo1.push($xy);end
if $lc=="lc2";$sengoukei2=$sentyo2.push($xy);end
if $lc=="lc3";$sengoukei3=$sentyo3.push($xy);end
if $lc=="lc4";$sengoukei4=$sentyo4.push($xy);end
if $lc=="lc5";$sengoukei5=$sentyo5.push($xy);end
if $lc=="lc6";$sengoukei6=$sentyo6.push($xy);end
if $lc=="lc7";$sengoukei7=$sentyo7.push($xy);end
if $lc=="lc8";$sengoukei8=$sentyo8.push($xy);end
end
if xy[0] = /^ci/
if xy.size==8
 $x=xy[1].to_f;$y=xy[2].to_f;$r=xy[3].to_f;$sikaku=xy[4].to_f;$syukaku=xy[5].to_f
  if $syukaku-$sikaku < 0;$kakudo=360+($syukaku-$sikaku)
    else
    $kakudo=$syukaku-$sikaku
  end
$razian=$kakudo/360;$enko=(($r*2*Math::PI)*$razian)/1000
if xy[6]=="1"
if $lc=="lc1";$sengoukei1=$sentyo1.push($enko);end
if $lc=="lc2";$sengoukei2=$sentyo2.push($enko);end
if $lc=="lc3";$sengoukei3=$sentyo3.push($enko);end
if $lc=="lc4";$sengoukei4=$sentyo4.push($enko);end
if $lc=="lc5";$sengoukei5=$sentyo5.push($enko);end
if $lc=="lc6";$sengoukei6=$sentyo6.push($enko);end
if $lc=="lc7";$sengoukei7=$sentyo7.push($enko);end
if $lc=="lc8";$sengoukei8=$sentyo8.push($enko);end
end
unless xy[6] =="1";$daen.push($enko)
print"cn0 7 7 0 9\n"
printf("ch %e %e %e %e \"%s\n",$x,$y,1,0,"楕円")
end;end;end;end
print "bz\n"
unless $sengoukei1==nil
$sen1=$sengoukei1.collect!{ |item| item.to_f }.sort    
$sensyukei1 =$sen1[0]
n=0;while (n < ($sen1.size)-1);n += 1
$sensyukei1 += $sen1[n]
end
print"cn3\n"
print "lc1\n";print "lt1\n"
yokosen( 53, 58, 2)
printf("ch %e %e %e %e \"%.3f\n",17,0,10,0,$sensyukei1)
printf("ch %e %e %e %e \"%s\n",42,0,10,0,"m")
$a=0;else;$a=-1;end
unless $sengoukei2==nil
$sen2=$sengoukei2.collect!{ |item| item.to_f }.sort    
$sensyukei2 =$sen2[0]
n=0;while (n < ($sen2.size)-1);n += 1
$sensyukei2 += $sen2[n]
end
print "lc2\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($a+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($a+1),10,0,$sensyukei2)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($a+1),10,0,"m")
$b=$a+1;else;$b=$a;end
unless $sengoukei3==nil
$sen3=$sengoukei3.collect!{ |item| item.to_f }.sort    
$sensyukei3 =$sen3[0]
n=0;while (n < ($sen3.size)-1);n += 1
$sensyukei3 += $sen3[n]
end
print "lc3\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($b+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($b+1),10,0,$sensyukei3)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($b+1),10,0,"m")
$c=$b+1;else;$c=$b
end
unless $sengoukei4==nil
$sen4=$sengoukei4.collect!{ |item| item.to_f }.sort    
$sensyukei4 =$sen4[0]
n=0
while (n < ($sen4.size)-1)
n += 1;$sensyukei4 += $sen4[n]
end
print "lc4\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($c+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($c+1),10,0,$sensyukei4)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($c+1),10,0,"m")
$d=$c+1;else;$d=$c
end
unless $sengoukei5==nil
$sen5=$sengoukei5.collect!{ |item| item.to_f }.sort    
$sensyukei5 =$sen5[0]
n=0;while (n < ($sen5.size)-1);n += 1
$sensyukei5 += $sen5[n]
end
print "lc5\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($d+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($d+1),10,0,$sensyukei5)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($d+1),10,0,"m")
$e=$d+1;else;$e=$d
end
unless $sengoukei6==nil
$sen6=$sengoukei6.collect!{ |item| item.to_f }.sort    
$sensyukei6 =$sen6[0]
n=0;while (n < ($sen6.size)-1);n += 1
$sensyukei6 += $sen6[n]
end
print "lc6\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($e+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($e+1),10,0,$sensyukei6)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($e+1),10,0,"m")
$f=$e+1;else;$f=$e
end
unless $sengoukei7==nil
$sen7=$sengoukei7.collect!{ |item| item.to_f }.sort    
$sensyukei7 =$sen7[0]
n=0;while (n < ($sen7.size)-1);n += 1
$sensyukei7 += $sen7[n]
end
print "lc7\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($f+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($f+1),10,0,$sensyukei7)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($f+1),10,0,"m")
$g=$f+1;else;$g=$f
end
unless $sengoukei8==nil
$sen8=$sengoukei8.collect!{ |item| item.to_f }.sort    
$sensyukei8 =$sen8[0]
n=0;while (n < ($sen8.size)-1);n += 1
$sensyukei8 += $sen8[n]
end
print "lc8\n";print "lt1\n"
yokosen( 53, 58, -$gyo*($g+1)+2)
printf("ch %e %e %e %e \"%.3f\n",17,-$gyo*($g+1),10,0,$sensyukei8)
printf("ch %e %e %e %e \"%s\n",42,-$gyo*($g+1),10,0,"m")
$h=$g+1;else;$h=$g
end
printf("h# %s%s%s\n","楕円=",$daen.size,"個。楕円は測定コマンドを使用してください")
print "lc1\n";print "lt1\n"
yokosen( -1, 60, $gyo*2-1 )
yokosen( -1, 60, $gyo*1-1 )
m=-1;while (m < $h);m += 1
yokosen( -1, 60, -$gyo*m-1 )
end
tatesen( $gyo*2-1,-$gyo*$h-1, -1)
tatesen( $gyo*2-1,-$gyo*$h-1, 14)
tatesen( $gyo*2-1,-$gyo*$h-1, 36)
tatesen( $gyo*2-1,-$gyo*$h-1, 51)
tatesen( $gyo*2-1,-$gyo*$h-1, 60)
print"cn3\n"
printf("ch %e %e %e %e \"%s\n",2,$gyo,10,0,"名 称")
printf("ch %e %e %e %e \"%s\n",20,$gyo,10,0,"長 さ")
printf("ch %e %e %e %e \"%s\n",39,$gyo,10,0,"単 位")
printf("ch %e %e %e %e \"%s\n",53,$gyo,10,0,"線色")
end
def yokosen( x1, x2, y1 )
  printf("%e %e %e %e\n", x1, y1, x2, y1)
end
def tatesen( y1,y2, x1)
  print "lc1\n";print "lt1\n"
  printf("%e %e %e %e\n", x1, y1, x1, y2)
end
main()