Indexへ
(22214)//【22217】→(22219)
------------------------
【タイトル】書き込み文字色選択
【記事番号】 22217 (*)
【 日時 】04/09/25 13:52
【 発言者 】非社会人 hisyakaizin@yahoo.co.jp

タイトルの機能って追加できないでしょうか?
DXF読込みのJWWファイルだと文字種は全てFREEで文字種選択不可能です。
色で選択するしか方法がありません。

範囲選択右クリック、左8時ドラッグ右ボタンの
書き込み線色選択で文字色も拾ってくれると大助かりですが。


Indexへ
(22217)←【22219】→(22224)
------------------------
【タイトル】Re(1):書き込み文字色選択
【記事番号】 22219 (22217)
【 日時 】04/09/25 14:23
【 発言者 】siegel

▼非社会人さん:
>タイトルの機能って追加できないでしょうか?
>DXF読込みのJWWファイルだと文字種は全てFREEで文字種選択不可能です。
>色で選択するしか方法がありません。
>
>範囲選択右クリック、左8時ドラッグ右ボタンの
>書き込み線色選択で文字色も拾ってくれると大助かりですが。

任意文字を色別にレイヤ分けしてくれる、外変があります。
(任意文字のみに対応します。)

【ファイル名】mojifuriwake.lzh
【ソフト名 】Jw_cad for windows 外部変形 文字色によるレイヤ振分 Ver1.00
【著作権者名】Copyright (C)2004 Norimasa Azuma
【開発環境 】Windows 2000 VisualC++.NET2003
【ソフト種別】フリーウェア
       http://homepage3.nifty.com/n_azm/jwwgaihen.htm
ご参考まで。


Indexへ
(22219)←【22224】→(22221)
------------------------
【タイトル】RE: Re(1):書き込み文字色選択
【記事番号】 22224 (22219)
【 日時 】04/09/25 15:40
【 発言者 】非社会人 hisyakaizin@yahoo.co.jp

>任意文字を色別にレイヤ分けしてくれる、外変があります。
>(任意文字のみに対応します。)

とりあえずDLはしましたが、任意文字の一つを拾うために、
文字レイヤーがバラバラになってしまうのでは、、、。

文字種に変換の外変もDLはしましたが、JWの文字種は10種類しかなくて、
他のCADのからも文字には殆ど対応できないですね。


Indexへ
(22224)←【22221】→(22223)
------------------------
【タイトル】Re: 書き込み文字色選択
【記事番号】 22221 (22217)
【 日時 】04/09/25 14:56
【 発言者 】とんま 3世 NG-GGA03613@nifty.ne.jp

非社会人さん、こんにちは。 とんま 3世です。

>DXF読込みのJWWファイルだと文字種は全てFREEで文字種選択不可能です。
>色で選択するしか方法がありません。
>
>範囲選択右クリック、左8時ドラッグ右ボタンの
>書き込み線色選択で文字色も拾ってくれると大助かりですが。

文字 -> 変更後の文字種取得(文字種変更 or あれば左下ドラッグ) ->
変えたい色の文字から左PM5時 -> 範囲 -> 前範囲 -> 右PM1時

で、希望がかなうと思いますよ。

範囲 -> 前範囲 がちょっと余分なような気がしますが、
ほかに方法があるかな。(^^;

2004/9/25(土)    とんま 3世/四国/松山
                           By CMN 0.47aβ


Indexへ
(22221)←【22223】→(22226)
------------------------
【タイトル】Re2: 書き込み文字色選択
【記事番号】 22223 (22221)
【 日時 】04/09/25 15:33
【 発言者 】非社会人 hisyakaizin@yahoo.co.jp

> 文字 -> 変更後の文字種取得(文字種変更 or あれば左下ドラッグ) ->
> 変えたい色の文字から左PM5時 -> 範囲 -> 前範囲 -> 右PM1時
>
> で、希望がかなうと思いますよ。

やってみたけど意味不明でした。
左PM5時はハッチで右PM1時は書き込み文字種に変更になりますけど。


Indexへ
(22223)←【22226】→(22229)
------------------------
【タイトル】Re3: 書き込み文字色選択
【記事番号】 22226 (22223)
【 日時 】04/09/25 16:55
【 発言者 】とんま 3世 NG-GGA03613@nifty.ne.jp

非社会人さん、こんにちは。 とんま 3世です。

>やってみたけど意味不明でした。

うぅ、意味不明ですか、それは残念。

>左PM5時はハッチ・・・・

もしこれが本当なら、最初に書いている

>範囲選択右クリック、左8時ドラッグ右ボタンの
>書き込み線色選択で文字色も拾ってくれると大助かりですが。

と、矛盾しているような。(クロック設定)
それともすべてAutoで上2行を設定しているならできません。

どこが意味不明なのかわかればいいんだが。(^^;
うーん、単に時間を間違えているような気がする。

2004/9/25(土)    とんま 3世/四国/松山
                           By CMN 0.47aβ


Indexへ
(22226)←【22229】→(22240)
------------------------
【タイトル】Re4: 書き込み文字色選択
【記事番号】 22229 (22226)
【 日時 】04/09/25 17:28
【 発言者 】非社会人 hisyakaizin@yahoo.co.jp

とんま 3世さん、こんにちは。

> どこが意味不明なのかわかればいいんだが。(^^;
> うーん、単に時間を間違えているような気がする。

半分意味がわかりました。
文字コマンドで選択したい文字上で左5時ドラッグ右ボタンで
FREEの中の同一文字種を選択するわけですね。
このコマンドがあったとはちょっと気がつかなかったです。

ちなみに、私がやりたかったのは、FREE文字で色が違う文字のレイヤー移動です。
でも、同一文字種選択でやれそうです。
教えてくれて、ありがとう。

-- CMN v0.46β --


Indexへ
(22229)←【22240】→(22242)
------------------------
【タイトル】任意文字のサイズ・色・個数を算出する外変
【記事番号】 22240 (22229)
【 日時 】04/09/26 10:23
【 発言者 】コジマ

>文字コマンドで選択したい文字上で左5時ドラッグ右ボタンで
>FREEの中の同一文字種を選択するわけですね。
>このコマンドがあったとはちょっと気がつかなかったです。
>
>ちなみに、私がやりたかったのは、FREE文字で色が違う文字のレイヤー移動です。
>でも、同一文字種選択でやれそうです。

DXF変換された図面の文字は、色は同じでも、サイズの違うものがあります。
図面全体に どのサイズ の文字が何個あるかも分かりません。

そこで、任意文字のサイズ・色・個数を算出する外変を作ってみました。
指定した場所に、任意文字の サイズ・色・個数を csv分割で書き出します。

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

以前、文字色別に指定したレイヤへ移動する外変も作りましたが、同じ色のサイズ違いの文字も同じレイヤになってしまいます。


◎バッチファイル(ファイル名 任意文字分類.bat)

REM 任意文字のサイズ・個数
echo off
REM #jww
REM #cd
REM #h3
REM #g1
REM #0記入点を指示してください。
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 任意文字分類.rb temp.txt > jwc_temp.txt

◎スクリプトファイル(ファイル名 任意文字分類.rb)

BEGIN{
$moji=Array.new
$gyo=5
}
def main
while ARGF.gets
xy=split
if xy[0]=~/^hp1/
  x=xy[1].to_f
  y=xy[2].to_f
end
if xy[0]=="cn0"
  cn=xy
end
if xy[0]=="ch"
  $moji.push(cn)
end
end
moji=$moji.uniq
mojis=moji.collect{|item| item[1].to_f}
sort=mojis.sort_index
mojia=moji.sort_by(sort)
n=0
while (na=$moji.count
b=a[mojia[n]]
print "bz\n"
cn=["cn0","3","3","0",mojia[n][4],"\n"].join("\s")
print cn
printf("ch%e %e %e %e\"幅%s 高%s 間隔%s 色%s 個数%s\n", 0,-$gyo*n, 1,0,
mojia[n][1],mojia[n][2],mojia[n][3],mojia[n][4],b)
n+=1
end
end

class Array
def count
k=Hash.new(0)
self.each{|x| k[x]+=1}
k
end
end
class Array
def sort_index
d=[]
self.each_with_index{|x,i| d[i]=[x,i]}
if block_given?
d.sort {|x,i| yield x[0],y[0]}.collect{|x| x[1]}
else
d.sort.collect{|x| x[1]}
end
end
def sort_by(ord=[])
return nil if self.length!=ord.length
self.indexes(*ord)
end
end
main()


Indexへ
(22240)←【22242】→(22244)
------------------------
【タイトル】Re: 任意文字のサイズ・色・個数を算出する外変
【記事番号】 22242 (22240)
【 日時 】04/09/26 11:25
【 発言者 】非社会人 hisyakaizin@yahoo.co.jp

コジマさん、こんにちは。

>DXF変換された図面の文字は、色は同じでも、サイズの違うものがあります。
>図面全体に どのサイズ の文字が何個あるかも分かりません。

>そこで、任意文字のサイズ・色・個数を算出する外変を作ってみました。
>指定した場所に、任意文字の サイズ・色・個数を csv分割で書き出します。

おお、これいいですねー。
早速、実行してましたが、
はぁー、こんなにfree文字種があったのか、と、呆れました。

freeの文字種検出はjww本体に欲しい機能ですね。

-- CMN v0.46β --


Indexへ
(22242)←【22244】→(22256)
------------------------
【タイトル】修正
【記事番号】 22244 (22242)
【 日時 】04/09/26 14:33
【 発言者 】コジマ

任意文字以外の文字種(文字種1〜10)があると、正常に動作しないようです。
以下のように修正しました。

○任意文字がない時は、(文字種1〜10)画面左上に「任意文字がありません」と表示する。

○書き出し文字もそれぞれの任意文字で記入する。

よって文字属性の選択は、書き出し文字上で、左AM6:00ドラッグ。

同一文字種選択も、「文字」コマンド→書き出し文字上で、左PM5:00ドラッグ

順番とおりにやっていけば、効率的です。

◎スクリプトファイル(ファイル名 任意文字分類.rb)

BEGIN{
$moji=Array.new
$gyo=0
$total=0
}
def main
while ARGF.gets
xy=split
if xy[0]=~/^hp1/
  x=xy[1].to_f
  y=xy[2].to_f
end
if xy[0]=~/^cn/ && xy[0]=~/[0-9]$/
  cn=xy
end
if xy[0]=="ch" or xy[0]=="cs"
  if cn.size==5
   $moji.push(cn)
  end
end
end
if $moji.size>0
  moji=$moji.uniq
  mojis=moji.collect{|item| item[1].to_f}
  sort=mojis.sort_index
  mojia=moji.sort_by(sort)
  n=0
  while (n   a=$moji.count
   b=a[mojia[n]]
   print "bz\n"
   print mojia[n].join("\s")+"\n"
   printf("ch%e %e %e %e\"幅%s 高%s 間隔%s 色%s 個数%s\n", 0,-$gyo, 1,0,
   mojia[n][1],mojia[n][2],mojia[n][3],mojia[n][4],b)
   n+=1
   $total +=b
   break if n==mojia.size
   $gyo +=mojia[n][2].to_f+1
  end
  print "cn5\n"
  printf("ch%e %e %e %e\"合計 %s種類 %s個\n",
  0,-$gyo-10, 1,0,mojia.size,$total)
else
 print("h#任意文字はありません\n")
end
end
class Array
def count
k=Hash.new(0)
self.each{|x| k[x]+=1}
k
end
end
class Array
def sort_index
d=[]
self.each_with_index{|x,i| d[i]=[x,i]}
if block_given?
d.sort {|x,i| yield x[0],y[0]}.collect{|x| x[1]}
else
d.sort.collect{|x| x[1]}
end
end
def sort_by(ord=[])
return nil if self.length!=ord.length
self.indexes(*ord)
end
end
main()


Indexへ
(22244)←【22256】//(22227)
------------------------
【タイトル】任意文字のレイヤと文字種を一気に変更する外変
【記事番号】 22256 (22244)
【 日時 】04/09/27 10:45
【 発言者 】コジマ

以下、タイトルとおりの外変です。
(バッチファイル2、スクリプトファイル2)

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

◎バッチファイル(ファイル名 任意文字.bat)

REM 任意文字のサイズ・個数 txt書出
echo off
REM #jww
REM #cd
REM #h3
REM #hc文字を範囲選択してください
REM #g1
REM #h/任意文字2.bat
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 任意文字.rb temp.txt > jwc_temp.txt
notepad.exe 任意文字.txt

◎バッチファイル(ファイル名 任意文字2.bat)

@REM 任意文字のレイヤ・文字種変更
@echo off
REM #jww
REM #cd
REM #h3
REM #hc文字を範囲選択してください
REM #g1
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 任意文字2.rb temp.txt > jwc_temp.txt

◎スクリプトファイル(ファイル名 任意文字.rb)

BEGIN{
$moji=Array.new

}
def main
while ARGF.gets
xy=split

if xy[0]=~/^cn/ && xy[0]=~/[0-9]$/
  cn=xy
end
if xy[0]=="ch" or xy[0]=="cs"
  if cn.size==5
   $moji.push(cn)
  end
end
end
if $moji.size>0
  moji=$moji.uniq
  mojis=moji.collect{|item| item[1].to_f}
  sort=mojis.sort_index
  mojia=moji.sort_by(sort)
  mojia.collect!{|item| item.join("\s")+"\s"+"ly"+"\s"+"cn"}
  mojia.unshift("文字種 幅 高 間隔 色 ・・の順\n↓")
  mojia.unshift("レイヤ移動したい文字種は、lyの後にレイヤ番号を記入する")
  mojia.unshift("文字種(1〜10)にしたい文字種は、cnの後に文字種番号を記入する")

  text=mojia
  nlines = 0
  File.open("任意文字.txt","w"){|file|
  text.each{|line|
  file.puts line
  nlines += 1
  }
  }
 print("h#任意文字.txtを作成しました\n")
else
  text="任意文字はありません"
  nlines = 0
  File.open("任意文字.txt","w"){|file|
  text.each{|line|
  file.puts line
  nlines += 1
  }
  }

 print("h#任意文字はありません\n")
end
end
class Array
def sort_index
d=[]
self.each_with_index{|x,i| d[i]=[x,i]}
if block_given?
d.sort {|x,i| yield x[0],y[0]}.collect{|x| x[1]}
else
d.sort.collect{|x| x[1]}
end
end
def sort_by(ord=[])
return nil if self.length!=ord.length
self.indexes(*ord)
end
end
main()

◎スクリプトファイル(ファイル名 任意文字2.rb)

BEGIN{
print "hd\n"
File.foreach("任意文字.txt","r") do |line|
    $foo=line.split(/\n/)
    $fo=$foo[4..-1]
end
}
def main
while ARGF.gets

xy=split
if xy[0]=~/^hq/
elsif xy[0]=~/^ly/
  ly=xy[0]

elsif xy[0]=~/^cn/ && xy[0]=~/[0-9]$/
  cn=xy

elsif xy[0]=="ch" or xy[0]=="cs"
  if cn.size==5
   $ab=$fo.select{|item| a=item.split("\s")
   a.pop
   a.pop
   a.join==cn.join}
   if $ab.size>0
     $abc=$ab.join.split("\s")
     if ($abc[5].split('')).size>2 && ($abc[6].split('')).size>2
      print $abc[5]+"\n"
      print $abc[6]+"\n"
      print $_
     elsif ($abc[5].split('')).size>2 && ($abc[6].split('')).size==2
      print $abc[5]+"\n"
      print cn.join("\s")+"\n"
      print $_
     elsif ($abc[5].split('')).size==2 && ($abc[6].split('')).size>2
      print ly+"\n"
      print $abc[6]+"\n"
      print $_
     elsif ($abc[5].split('')).size==2 && ($abc[6].split('')).size==2
      print ly+"\n"
      print cn.join("\s")+"\n"
      print $_
     end
   else
    print ly+"\n"
   print cn.join("\s")+"\n"
    print $_
   end
 else
   print ly+"\n"
   print cn.join("\s")+"\n"
   print $_
 end
else
 print $_
end
end
end
main()