Indexへ
(15189)//【15191】→(15192)
------------------------
【タイトル】線色別の要素数
【記事番号】 15191 (*)
【 日時 】04/03/22 11:16
【 発言者 】aiko

基本設定の一般に線数や文字数等の要素数は出ていますが、
線色別の要素数を調べることは出来ますか?
要素数まではわからなくても、その指定した線色が図中で
使用されているかいないか、わかる方法はありますか?
(図面が大きく、スケールが1/50000なので、全範囲選択などで
色指定してみても、目では判別できません・・・><)


Indexへ
(15191)←【15192】→(15203)
------------------------
【タイトル】Re: 線色別の要素数
【記事番号】 15192 (15191)
【 日時 】04/03/22 11:28
【 発言者 】makuma makuma@desu.ne.jp

範囲コマンドで全選択後、属性選択で目的の線色を指定して

対象線があれば作業待ち状態
対象線がなければ、再選択状態

になります。存在するかどうかの確認は出来るかと。


Indexへ
(15192)←【15203】→(15194)
------------------------
【タイトル】Re(1): 線色別の要素数
【記事番号】 15203 (15192)
【 日時 】04/03/22 19:51
【 発言者 】高橋

▼makumaさん:
>範囲コマンドで全選択後、属性選択で目的の線色を指定して
>
>対象線があれば作業待ち状態
>対象線がなければ、再選択状態
>
>になります。存在するかどうかの確認は出来るかと。

すこし補足させてください。

寸法図形とブロック図形は、
線色選択のとき選択されませんので、
目的により、
予め、寸法図形解除とブロック解除を行います。

なお、選択しているものは、コピーして、
新規ファイルに貼り付けると、
分かり易いです。


Indexへ
(15203)←【15194】→(15245)
------------------------
【タイトル】Re(1):線色別の要素数
【記事番号】 15194 (15191)
【 日時 】04/03/22 12:12
【 発言者 】コジマ

▼aikoさん:
>基本設定の一般に線数や文字数等の要素数は出ていますが、
>線色別の要素数を調べることは出来ますか?
>要素数まではわからなくても、その指定した線色が図中で
>使用されているかいないか、わかる方法はありますか?
>(図面が大きく、スケールが1/50000なので、全範囲選択などで
>色指定してみても、目では判別できません・・・><)

以下、自作の外部変形です。(ActiveRuby スクリプト)

バッチファイルは、適当に名前をつけて保存してください。
スクリプトファイルは、「指定色線数.rb 」と名前をつけてバッチファイルと同じフォルダに保存してください。

ActiveRuby は、うしわたりさんのサイトで入手してインストールしてください。
http://homepage2.nifty.com/ushiwatari/tips/install.html


◎バッチファイル

REM 範囲内指定色の線数を記入する
@echo off
REM #jww
REM #cd
REM #c指定線色
REM #c指定線種
REM #h1
REM #0記入点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul
cscript //nologo 指定色線数.rb temp.txt %1 %2> jwc_temp.txt


◎スクリプトファイル

範囲内指定色の線数を記入する Rubyスクリプト
BEGIN{
   $sensu=Array.new
   $lc = ARGV[1].to_s  # 指定線色
   $lt = ARGV[2].to_s  # 指定線種
   $lcc="lc"+$lc
   $ltt="lt"+$lt
    while ARGV.length > 1
      ARGV.pop
    end
}
def main
   while ARGF.gets
    xy=split
if xy[0] =~ /^hq1/
   x=xy[1].to_f
   y=xy[2].to_f
end
if xy[0] =~ /^lc/
    $senc=xy[0].to_s
end
if xy[0] =~ /^lt/
    $sent=xy[0].to_s
end
if xy[0] =~ /^[0-9]/ or xy[0] =~ /^-/
  if $senc==$lcc && $sent==$ltt
  xy.collect!{ |item| item.to_f }        # 数値化

xx=xy[2]-xy[0]
yy=xy[3]-xy[1]
$xy=Math.sqrt(xx**2+yy**2)/1000
dx=xx/$xy
dy=yy/$xy
print "cn3\n"
printf("cs %e %e %e %e \"%.3f\n",xy[0]+xx/2,xy[1]+yy/2,dx,dy,$xy)
$sen=$sensu.push($xy)
end
end
end

printf("cs %e %e %e %e \"%s\n",0,0,1,0,$sen.size)
end
main()


Indexへ
(15194)←【15245】→(15248)
------------------------
【タイトル】ネットスケープNでのDL方法
【記事番号】 15245 (15194)
【 日時 】04/03/24 09:31
【 発言者 】o_men

▼コジマさん:

横から失礼します。
コジマさんの外変これは便利!とコピーして動作させましたが
実行できません。
pauseをかけてみると
rb(41.1)RScript:undefined method`size`
とでています。
temp.txtではちゃんと線分要素をひろっていますが。
記入点指示後は線分の数が記入されるのですか?
ご助言お願いいたします。
ちなみにActiveRuby1.6.8.3です。


Indexへ
(15245)←【15248】→(15249)
------------------------
【タイトル】修正版
【記事番号】 15248 (15245)
【 日時 】04/03/24 10:41
【 発言者 】コジマ

▼o_menさん:
>▼コジマさん:
>
>横から失礼します。
>コジマさんの外変これは便利!とコピーして動作させましたが
>実行できません。
>pauseをかけてみると
>rb(41.1)RScript:undefined method`size`

指定線色&線種の要素が0の時の、エラー表示だと思います。
この場合は、線数 0 と判断して使っていましたが。

尚、このスクリプトは線の長さも記入しますので、
線数のみを記入するように修正しました。

線数 0 の時は 0 と記入するようにしました。

コピー ペーストでは、うまくいかないかも知れません。

私も、以前、この投稿欄から線記号変形データをコピー ペーストしたのですが、正常に動作しませんでした。(というよりも、正常に表示されませんでした。)

同じように自分で書き込むと、動作しました。


# 範囲内指定色の線数を記入する Rubyスクリプト
BEGIN{
   $sensu=Array.new
   $lc = ARGV[1].to_s  # 指定線色
   $lt = ARGV[2].to_s  # 指定線種
   $lcc="lc"+$lc
   $ltt="lt"+$lt
    while ARGV.length > 1
      ARGV.pop
    end
}
def main
   while ARGF.gets
    xy=split
if xy[0] =~ /^hq1/
   x=xy[1].to_f
   y=xy[2].to_f
end
if xy[0] =~ /^lc/
    $senc=xy[0].to_s
end
if xy[0] =~ /^lt/
    $sent=xy[0].to_s
end
if xy[0] =~ /^[0-9]/ or xy[0] =~ /^-/
  if $senc==$lcc && $sent==$ltt
$sen=$sensu.push(xy)
  end
end
end
unless  $sen==nil
printf("ch %e %e %e %e \"%s\n",0,0,1,0,$sen.size)
else
printf("ch %e %e %e %e \"%s\n",0,0,1,0,"0")
end
end
main()


Indexへ
(15248)←【15249】→(15251)
------------------------
【タイトル】指定線色&線種の入力
【記事番号】 15249 (15245)
【 日時 】04/03/24 11:50
【 発言者 】コジマ

指定線色及び線種の入力は、
半角数字 1 〜 9 の数字のみとしてください。余分な文字があるとエラーになります。

尚、高橋さんが補足されているように、ブロック図形、寸法図形の線には対応しません。(線データとして書き出されない)


Indexへ
(15249)←【15251】→(15253)
------------------------
【タイトル】Re(1):指定線色&線種の入力
【記事番号】 15251 (15249)
【 日時 】04/03/24 14:18
【 発言者 】o_men

▼コジマさん:

修正版ありがとうございます。
ただ、使い方が悪いのか、どうやっても線数は0と打ち出されます。
コジマさんが仰られるようにコピペでは問題が残るのでしょうか。
時間ができたら書換えをやってみます。

先の題名が以前投稿した時のままでした。失礼いたしました。


Indexへ
(15251)←【15253】→(15255)
------------------------
【タイトル】RE:コピペでマズイのは全角スペース?
【記事番号】 15253 (15251)
【 日時 】04/03/24 14:50
【 発言者 】Yacht za79d_NOSPAM@hotmail.com

o_menさん、こんにちは。

>コジマさんが仰られるようにコピペでは問題が残るのでしょうか。

ここの掲示板は、投稿時での連続する半角スペースを全角スペースに置換している
みたいですので、コピペでうまくいかないのはそのせいだと思います。

逆にコピペ後に、ワードパッドなどで全角スペースを半角スペースに置換し直して
やれば問題なくなると思います。

今回の件はそれで十分だと思いますが、外部変形に限らずJwwを使い倒そうと思うなら、
やはりメモ帳では役不足なので、テキストエディタを使用されることをお勧めします。
TeraPadなどのエディタですと、全角スペースやTAB文字などを明示してくれる機能が
付いていますし、他にも検索や置換機能など、上手に使えば大変便利になること間違
い無しです(^_^)

私自身、仕事するにはJwwと秀丸エディタとExcelは無くてはならない物になっています(^^ゞ


Indexへ
(15253)←【15255】→(15272)
------------------------
【タイトル】全く知りませんでした。
【記事番号】 15255 (15253)
【 日時 】04/03/24 15:54
【 発言者 】コジマ

▼Yachtさん:
>o_menさん、こんにちは。
>
>>コジマさんが仰られるようにコピペでは問題が残るのでしょうか。
>
>ここの掲示板は、投稿時での連続する半角スペースを全角スペースに置換している
>みたいですので、コピペでうまくいかないのはそのせいだと思います。
>
>逆にコピペ後に、ワードパッドなどで全角スペースを半角スペースに置換し直して
>やれば問題なくなると思います。

早速試してみたところ、バッチファイルで9個、スクリプトファイルにいたっては、51個も全角スペースになっていました。

この投稿欄がそういう仕組みになっているとは、今まで、全く知りませんでした。
(長い間の疑問が解けました。)

o_menさんのほうは、また別の原因かもしれませんが?


Indexへ
(15255)←【15272】→(15275)
------------------------
【タイトル】Re(2):線色別の要素数
【記事番号】 15272 (15194)
【 日時 】04/03/25 09:57
【 発言者 】aiko

▼コジマさん:
外変、無事に動作しました^^
とても便利ですね。ありがとうございます!


Indexへ
(15272)←【15275】→(15286)
------------------------
【タイトル】Re(3):線色別の要素数
【記事番号】 15275 (15272)
【 日時 】04/03/25 11:31
【 発言者 】aiko

▼aikoさん:
>▼コジマさん:
>外変、無事に動作しました^^
>とても便利ですね。ありがとうございます!

実際使ってみて思ったのですが、線色のみの指定で動かすことはできませんか?
線種が違っても、同線色であれば一度に検出したいのですが・・・。
どこをどう変えたらいいのかも、素人なので全くわかりません。><
よろしければ、教えていただけませんか。


Indexへ
(15275)←【15286】→(15294)
------------------------
【タイトル】再修正版
【記事番号】 15286 (15275)
【 日時 】04/03/25 15:20
【 発言者 】コジマ

▼aikoさん:
>実際使ってみて思ったのですが、線色のみの指定で動かすことはできませんか?
>線種が違っても、同線色であれば一度に検出したいのですが・・・。
>どこをどう変えたらいいのかも、素人なので全くわかりません。><
>よろしければ、教えていただけませんか。

以下、再修正しました。
(半角スペース部分は、又、全角スペースになっていると思いますので、コピペ後に、一括置換してください。)

1、線色のみ指定。線種の指定をしない。

2、スクリプト実行後、画面左上に、結果を表示する。


◎バッチファイル

REM 範囲内指定色の線数を記入する
@echo off
REM #jww
REM #cd
REM #c指定線色
REM #h1
REM #0記入点を指示してください
REM #e
copy jwc_temp.txt temp.txt > nul
cscript //nologo 指定色線数.rb temp.txt %1> jwc_temp.txt


◎スクリプトファイル

# 範囲内指定色の線数を記入する Rubyスクリプト
BEGIN{
   $sensu=Array.new
   $lc = ARGV[1].to_s  # 指定線色
   $lcc="lc"+$lc

    while ARGV.length > 1
      ARGV.pop
    end
}
def main
   while ARGF.gets
    xy=split
if xy[0] =~ /^hq1/
   x=xy[1].to_f
   y=xy[2].to_f
end
if xy[0] =~ /^lc/
    $senc=xy[0].to_s
end
if xy[0] =~ /^[0-9]/ or xy[0] =~ /^-/
  if $senc==$lcc
$sen=$sensu.push(xy)
  end
end
end
unless  $sen==nil
printf("ch %e %e %e %e \"%s\n",0,0,1,0,$sen.size)
printf("h# %s%s%s%s%s\n","線色",$lc,"\s"," 線数 ",$sen.size)
else
printf("ch %e %e %e %e \"%s\n",0,0,1,0,"0")
printf("h# %s%s%s%s%s\n","線色",$lc,"\s"," 線数 ","0")
end
end
main()


Indexへ
(15286)←【15294】→(15325)
------------------------
【タイトル】Re(1):再修正版
【記事番号】 15294 (15286)
【 日時 】04/03/25 17:25
【 発言者 】aiko

▼コジマさん:
わざわざ修正していただき、ありがとうございます!!


Indexへ
(15294)←【15325】→(15213)
------------------------
【タイトル】一括記入
【記事番号】 15325 (15294)
【 日時 】04/03/26 13:13
【 発言者 】コジマ

ついでに、一括記入版もつくってみました。

ブロック図形と寸法図形には、対応しないと思っていましたが、寸法図形は拾います。

なので、以下のスクリプトの合計線数は、「基本設定」に表示されている「線数」と
「寸法」の合計になります。

寸法図形がある図面では、「基本設定」の「線数」と一致しません。

◎バッチファイル(適当に名前を付けて保存)変換子(.bat)

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


◎スクリプトファイル(ファイル名「色別線数一覧.rb」として保存)

# 範囲内の色別の線数一覧を記入する Rubyスクリプト
BEGIN{
$sensu1=Array.new;$sensu2=Array.new;$sensu3=Array.new;$sensu4=Array.new
$sensu5=Array.new;$sensu6=Array.new;$sensu7=Array.new;$sensu8=Array.new
$sensu9=Array.new;$gyo=6 #行間(図寸)
}
def main
   while ARGF.gets
    xy=split
if xy[0] =~ /^hq1/;x=xy[1].to_f;y=xy[2].to_f;end
if xy[0] =~ /^lc/;$senc=xy[0].to_s;end
if xy[0] =~ /^[0-9]/ or xy[0] =~ /^-/
if $senc=="lc1";$sen1=$sensu1.push(xy);end
if $senc=="lc2";$sen2=$sensu2.push(xy);end
if $senc=="lc3";$sen3=$sensu3.push(xy);end
if $senc=="lc4";$sen4=$sensu4.push(xy);end
if $senc=="lc5";$sen5=$sensu5.push(xy);end
if $senc=="lc6";$sen6=$sensu6.push(xy);end
if $senc=="lc7";$sen7=$sensu7.push(xy);end
if $senc=="lc8";$sen8=$sensu8.push(xy);end
if $senc=="lc9";$sen9=$sensu9.push(xy);end;end;end
print "bz\n"
unless $sen1==nil;$s1=$sen1.size;else;$s1=0;end
print"cn0 5 5 0.5 1\n";printf("ch %e %e %e %e \"%s%s\n",0,0,1,0,"線色1→",$s1)
unless $sen2==nil;$s2=$sen2.size;else;$s2=0;end
print"cn0 5 5 0.5 2\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo,1,0,"線色2→",$s2)
unless $sen3==nil;$s3=$sen3.size;else;$s3=0;end
print"cn0 5 5 0.5 3\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*2,1,0,"線色3→",$s3)
unless $sen4==nil;$s4=$sen4.size;else;$s4=0;end
print"cn0 5 5 0.5 4\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*3,1,0,"線色4→",$s4)
unless $sen5==nil;$s5=$sen5.size;else;$s5=0;end
print"cn0 5 5 0.5 5\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*4,1,0,"線色5→",$s5)
unless $sen6==nil;$s6=$sen6.size;else;$s6=0;end
print"cn0 5 5 0.5 6\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*5,1,0,"線色6→",$s6)
unless $sen7==nil;$s7=$sen7.size;else;$s7=0;end
print"cn0 5 5 0.5 7\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*6,1,0,"線色7→",$s7)
unless  $sen8==nil;$s8=$sen8.size;else;$s8=0 ;end
print"cn0 5 5 0.5 8\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*7,1,0,"線色8→",$s8)
unless $sen9==nil;$s9=$sen9.size;else;$s9=0;end
print"cn0 5 5 0.5 9\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*8,1,0,"線色9→",$s9)
$sum=($s1+$s2+$s3+$s4+$s5+$s6+$s7+$s8+$s9)
print"cn0 5 5 0.5 2\n";printf("ch %e %e %e %e \"%s%s\n",0,-$gyo*9,1,0,"計\s→→",$sum)
printf("h# %s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n","線色1→",$s1,"\s\s","線色2→",$s2,"\s\s","線色3→",$s3,"\s\s","線色4→",$s4,"\s\s","線色5→",$s5,"\s\s","線色6→",$s6,"\s\s","線色7→",$s7,"\s\s","線色8→",$s8,"\s\s","線色9→",$s9,"\s\s","\s計→",$sum)
end
main()


Indexへ
(15325)←【15213】//(15193)
------------------------
【タイトル】Re(1):線色別の要素数
【記事番号】 15213 (15191)
【 日時 】04/03/23 12:52
【 発言者 】aiko

▼aikoさん:
返信ありがとうございます。やはり、要素数まではわからないのですね。
コジマさんから教えて頂いた外変はあとで挑戦してみようと思います。
ありがとうございました。