Indexへ
(30944)//【30908】→(30911)
------------------------
【タイトル】2.5dの植樹作成にについて
【記事番号】 30908 (*)
【 日時 】08/09/10 08:48
【 発言者 】art

お世話になります。
今、公園のパースの下絵を描こうとしているのですが、植樹の2.5dを
巧く作成することが出来ません。(さつきです。)
植樹などの作成方法が分かるような書籍などはないでしょうか。
よろしくお願い致します。


Indexへ
(30908)←【30911】→(30927)
------------------------
【タイトル】Re(1):2.5dの植樹作成にについて
【記事番号】 30911 (30908)
【 日時 】08/09/10 11:16
【 発言者 】鈴木

▼artさん:
>お世話になります。
>今、公園のパースの下絵を描こうとしているのですが、植樹の2.5dを
>巧く作成することが出来ません。(さつきです。)
>植樹などの作成方法が分かるような書籍などはないでしょうか。
>よろしくお願い致します。

●わたしはこの手の低木ものは外変のお世話になっています。
パースを設定したガイド線の中にでも書き込めばOKです。
高木は俯瞰の画にしてもさほど効果はありませんので傾けて貼り付けても
それまでと考えています。
http://www.geocities.jp/syojigtr/


Indexへ
(30911)←【30927】→(30936)
------------------------
【タイトル】Re(2):2.5dの植樹作成にについて
【記事番号】 30927 (30911)
【 日時 】08/09/11 08:54
【 発言者 】art

▼鈴木さん:
お世話になります。回答頂きありがとうございます。
やはり思っているようなモノは無いのでしょうね。
もう少し自分で作れないか考えてみようともいます。

ところで、少し2.5dでの操作について伺いたのですが。
入力した数値を一括で編集しようと思うのですが巧くいきませんでした。
以前コジマ氏に作って頂いた、既存の文字列に一括で任意の文字列を追加できる外部変形(コジマさん 大事に使わせて頂いております。)で編集しようとしたのですが、文字列の追加が出来ませんでした。
(例えば、線分端部に 「0.05」を「0.05,0.5」に一括編集)
2.5dで入力される文字列は、何か属性が有るみたいで、範囲選択し属し解除を
行うと通常の編集が出来ます。
 ところが、文字列編集後に2.5d用の属性を付けようと思うのですが、この
属性の付け方が分かりません。
 2.5dの属性が後から付けることは、出来ないのでしょうか。数値入力の際には、2.5dのコマンドから数値入力をしなければいけないのでしょうか。
 よろしくお願い致します。


Indexへ
(30927)←【30936】→(30937)
------------------------
【タイトル】Re(3):2.5dの植樹作成にについて
【記事番号】 30936 (30927)
【 日時 】08/09/11 22:08
【 発言者 】Rito
【 リンク 】http://www.eucalymint.com/jw_figures/



▼artさん:

>やはり思っているようなモノは無いのでしょうね。
>もう少し自分で作れないか考えてみようともいます。

artさんが希望するものとはかけ離れてるかもしれませんが
ウチに置いてありますのでよろしければどうぞ。
スマートな作り方ではありません...力業です_%^。^;
↓↓↓
http://www.eucalymint.com/jw_figures/sample/syokusai25d.gif
http://www.eucalymint.com/jw_figures/  【Figures → 2.5data】


>(例えば、線分端部に 「0.05」を「0.05,0.5」に一括編集)
>2.5dで入力される文字列は、何か属性が有るみたいで、範囲選択し属し解除を
>行うと通常の編集が出来ます。
> ところが、文字列編集後に2.5d用の属性を付けようと思うのですが、この
>属性の付け方が分かりません。
> 2.5dの属性が後から付けることは、出来ないのでしょうか。数値入力の際には、2.5dのコマンドから数値入力をしなければいけないのでしょうか。

属性を解除しなくても普通の文字編集で修正できませんか?
ボクはできますが...σ(^_^)の勘違い?

...で、以下の方法で"線分端部に 「0.05」を「0.05,0.5」に一括編集"
ができると思います...。(外してましたら失礼)

【Jw_cad】
[範囲]→<目的の2.5dを選択>
→[文字]→[NOTEPAD]・・・にてメモ帳立ち上げ

【メモ帳】
→[編集]→[置換]で「0.05」を「0.05,0.5」に一括編集
[ファイル]→[上書き保存]

【Jw_cad】に戻る


Indexへ
(30936)←【30937】→(30938)
------------------------
【タイトル】Re(4):2.5dの植樹作成にについて
【記事番号】 30937 (30936)
【 日時 】08/09/11 22:25
【 発言者 】art

▼Ritoさん:
回答を頂きありがとうございます。

早速、ホームページにアクセス致しました。
驚きました。
ずいぶんネット上を検索したのにたどり着けませんでした。
大変参考なりました。

入力数値に編集についてですが。

Ritoさんの書き込みの通りの操作は、当方でも確認致しました。
ところが、線分に文字入力で(起点:左下)線分端部に文字を書き込みし
2.5dのコマンドでアイソメを選択しても立ち上がりません。
これは、どうしようもないのでしょうか。


>▼artさん:
>
>>やはり思っているようなモノは無いのでしょうね。
>>もう少し自分で作れないか考えてみようともいます。
>
>artさんが希望するものとはかけ離れてるかもしれませんが
>ウチに置いてありますのでよろしければどうぞ。
>スマートな作り方ではありません...力業です_%^。^;
>↓↓↓
>http://www.eucalymint.com/jw_figures/sample/syokusai25d.gif
>http://www.eucalymint.com/jw_figures/  【Figures → 2.5data】
>
>
>>(例えば、線分端部に 「0.05」を「0.05,0.5」に一括編集)
>>2.5dで入力される文字列は、何か属性が有るみたいで、範囲選択し属し解除を
>>行うと通常の編集が出来ます。
>> ところが、文字列編集後に2.5d用の属性を付けようと思うのですが、この
>>属性の付け方が分かりません。
>> 2.5dの属性が後から付けることは、出来ないのでしょうか。数値入力の際には、2.5dのコマンドから数値入力をしなければいけないのでしょうか。
>
>属性を解除しなくても普通の文字編集で修正できませんか?
>ボクはできますが...σ(^_^)の勘違い?
>
>...で、以下の方法で"線分端部に 「0.05」を「0.05,0.5」に一括編集"
>ができると思います...。(外してましたら失礼)
>
>【Jw_cad】
>[範囲]→<目的の2.5dを選択>
>→[文字]→[NOTEPAD]・・・にてメモ帳立ち上げ
>
>【メモ帳】
>→[編集]→[置換]で「0.05」を「0.05,0.5」に一括編集
>[ファイル]→[上書き保存]
>
>【Jw_cad】に戻る


Indexへ
(30937)←【30938】→(30939)
------------------------
【タイトル】Re(5):2.5dの植樹作成にについて
【記事番号】 30938 (30937)
【 日時 】08/09/11 22:36
【 発言者 】Rito
【 リンク 】http://www.eucalymint.com/jw_figures/



▼artさん:

>入力数値に編集についてですが。
>
>Ritoさんの書き込みの通りの操作は、当方でも確認致しました。
>ところが、線分に文字入力で(起点:左下)線分端部に文字を書き込みし
>2.5dのコマンドでアイソメを選択しても立ち上がりません。
>これは、どうしようもないのでしょうか。

...これはできませんね。こちらでも確認しました。
ボクには分かりませんが、他の方からのレスを待ってみて下さい。
何か良い方法があるかもしれません。


Indexへ
(30938)←【30939】→(31002)
------------------------
【タイトル】Re(5):2.5dの植樹作成にについて
【記事番号】 30939 (30937)
【 日時 】08/09/11 23:45
【 発言者 】joker
【 リンク 】http://jwwfaq.undo.jp/



▼artさん:
>ところが、線分に文字入力で(起点:左下)線分端部に文字を書き込みし
>2.5dのコマンドでアイソメを選択しても立ち上がりません。
>これは、どうしようもないのでしょうか。

2.5Dの文字は、文字に 2.5Dの文字です、という意味の属性が付きます。
普通の文字には、属性は付きません。

座標ファイルの機能で、[ファイル書込]で選択し、
[ファイル編集]で 外部エディタが起動され、
文字列「ch」を 2.5D付きの文字列「c2」に 変更をして、
閉じて
[ファイル読込]で貼り付けをしたものは、2.5D属性文字となります。


Indexへ
(30939)←【31002】→(31017)
------------------------
【タイトル】Re(6):2.5dの植樹作成にについて
【記事番号】 31002 (30939)
【 日時 】08/09/15 10:28
【 発言者 】art

▼jokerさん:
お礼が遅くなって申し訳ありません。
やはり属性が付いてしまうのですね。
入力方法を志度検討します。
ありがとうございました。


Indexへ
(31002)←【31017】→(31024)
------------------------
【タイトル】Re(7):2.5dの植樹作成にについて
【記事番号】 31017 (31002)
【 日時 】08/09/16 13:48
【 発言者 】hayabusa

artさん、こんにちは。

サツキを2.5Dで立体化するのは不可能とは言いませんが
恐ろしく手間がかかるのではないでしょうか ?
簡略でよければ2.5D立面立上げ機能が使えるかもしれません。

話しは変わりますが・・・
別のスレで任意の図形に日影図用高さデータを付加する外部変形
を書込みしましたが2.5Dに準用できますので参考にしてください。

尚、h1=h2の場合はh1のみと同等です。
日影図高さデータは2.5Dでも使用できます。(逆はできません。)

バッチファイル名は「cz2Draw.bat」にしてください。
##下記よりメモ帳にコピペして全角スペース→半角スペースの置換をしてください
@REM 日影図&2.5D高さデータ作図
@echo off
goto do%1
rem ---------------------------------------------------------
rem ※このファイルを編集した場合は上書き保存してください。
rem ※ファイルを閉じなくても編集は反映されます。
rem ※作図設定はこのバッチファイルの47行目からです。
rem ---------------------------------------------------------
REM #jww
REM #cd
REM #hm|日影図高さ L|2.5D高さ R|BAT 編集|
REM #:1
REM #:2
REM #h1
REM #g1 全グループ対象(書込みグループのみ場合はg0)
REM #hc 範囲選択または連続線を直接指示(R)※連続線に於いて異レイヤのデータに注意
REM #c 高さ h1 入力( 単位 m ) [ 無指定 10 ] :/_/a
REM #c 高さ h2 入力( 単位 m ) [ 無指定 0 ] :/_/b
REM #ht10
REM #ht30
REM #ht40
REM #zz
REM #zw
REM #zc
REM #hr
REM #e
REM #:3
REM #h0
REM #hr
REM #e
:do1
:do2
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1 %2 %3 > jwc_temp.txt
del temp.txt
rem pause
exit
goto END
:do3
start notepad.exe cz2Draw.bat
ruby -e 'puts "h# ruby #{RUBY_VERSION} "' > jwc_temp.txt
goto END
#!ruby -Ks
#------------------------------------------------------------
#   日影図または2.5D文字種設定
#
$cn = "2"  #文字種(1〜10) [無指定 書込み文字種]
#------------------------------------------------------------
#   円楕円(弧)線変換設定
#
$ty = "out" #線変換種類( in≡内接; out≡外接 )
#       ※2.5Dの場合は内接に固定
$pl = "on"  #曲線属性化設定( on≡設定有; off≡設定無 )
$div = 15  #線変換分割角度初期設定(1〜30) [単位 度]
#------------------------------------------------------------
def main
 include Math
 $h1,$h2 = "10","0"
 while ARGV.size > 1
  case argument = ARGV.pop
   when /^[12]/
    $koumoku = argument.to_s
   when /^\/a/
    $h1 = argument[2..-1].to_s
   when /^\/b/
    $h2 = argument[2..-1].to_s
  end
 end
 $h1.delete!("+±,"); $h2.delete!("+±,")
 if $cn.to_i < 0 or $cn.to_i > 10
  puts "he 文字種設定エラー。"; exit
 end
 if $ty != "in" && $ty != "out"
  puts "he 線変換種類設定エラー。"; exit
 end
 if $pl != "on" && $pl != "off"
  puts "he 曲線属性設定エラー。"; exit
 end
 if $div < 1 or $div > 30
  puts "he 円楕円(弧)分割角度設定エラー。"; exit
 end
 if $koumoku == "1"
  msg,ct = "日影図用","cz"
 elsif $koumoku == "2"
  msg,ct,$ty = "2.5D用","c2","in"
 end
 $hdata=$h1+","+$h2
 lines1,lines2,lgs,lys = [],[],[],[]
 while ARGF.gets
  if $_ =~ /^hq/
   puts "hd"
  elsif $_ =~ /^lg/
   print
   lgs << $_
  elsif $_ =~ /^ly/
   print
   lys << $_
  elsif $_ =~ /^\s[0-9-]/
   xy = split
   xy.collect!{ |item| sprintf("%0.10f",item).to_f }
   puts xy.join("\s")
   lines1 << [lgs[-1],lys[-1],xy]
   lines2 << [lgs[-1],lys[-1],xy]
  elsif $_ =~ /^ci/
   ci = split
   ci.collect!{ |item| item.to_f }
   flag = 0
   if ci.size == 4
    ci += [0,360,1,0]; flag = 1
   elsif ci.size == 8 && ci[6] != 1.0 && ci[4] == ci[5]
    ci[4],ci[5]=0,360; flag = 1
   end
   ci_lines=ci_keisan(flag,ci)
   if $pl == "on"
    puts "pl"
   end
   for xy in ci_lines
    puts xy.join("\s")
    lines1 << [lgs[-1],lys[-1],xy]
    lines2 << [lgs[-1],lys[-1],xy]
   end
   puts "#"
  else
   print
  end
 end
 lines1.uniq!; lines2.uniq!
 if lines1.size <= 1
  puts "he 作図データが不足しています。"; exit
 end
 lines1.push(lines1[0]); lines2.push(lines2[0])
 puts "cc0"; puts "cn"+$cn
 points = []
 for l1 in lines1
  xy = l1[2]
  xx1,yy1,xx2,yy2 = xy[0],xy[1],xy[2],xy[3]
  lines2.shift
  for l2 in lines2
   ab = l2[2]
   xx3,yy3,xx4,yy4 = ab[0],ab[1],ab[2],ab[3]
   if l1[0] == l2[0] && l1[1] == l2[1]
    if (xx1-xx3).abs <= 10**(-7) && (yy1-yy3).abs <= 10**(-7)
     points << [l1[0],l1[1],[ct,xx1,yy1,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx2,yy2,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx4,yy4,1,0,"\""+$hdata].join("\s")]
    elsif (xx1-xx4).abs <= 10**(-7) && (yy1-yy4).abs <= 10**(-7)
     points << [l1[0],l1[1],[ct,xx1,yy1,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx2,yy2,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx3,yy3,1,0,"\""+$hdata].join("\s")]
    elsif (xx2-xx3).abs <= 10**(-7) && (yy2-yy3).abs <= 10**(-7)
     points << [l1[0],l1[1],[ct,xx2,yy2,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx1,yy1,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx4,yy4,1,0,"\""+$hdata].join("\s")]
    elsif (xx2-xx4).abs <= 10**(-7) && (yy2-yy4).abs <= 10**(-7)
     points << [l1[0],l1[1],[ct,xx2,yy2,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx1,yy1,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx3,yy3,1,0,"\""+$hdata].join("\s")]
    else
     points << [l1[0],l1[1],[ct,xx1,yy1,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx2,yy2,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx3,yy3,1,0,"\""+$hdata].join("\s")]
     points << [l1[0],l1[1],[ct,xx4,yy4,1,0,"\""+$hdata].join("\s")]
    end
   end
  end
 end
 points.uniq!
 points.each{|item|
  puts item[0]; puts item[1]; puts item[2]
 }
 puts lgs[0]; puts lys[0]
 if points.size == 0
  puts "he 結合点がありません。"; exit
 else
  puts "h# 結合点または線端部に #{points.size} 個の#{msg}高さデータを書出しました。"
 end
end
def ci_keisan(flag,ci)
 ci_lines,points = [],[]
 ox,oy,cr,he = ci[1],ci[2],ci[3],ci[6]
 k1,k2,zk = ci[4],ci[5],ci[7]*PI/180.0
 div=$div*PI/180.0
 if k1 < k2
  k1 = k1*PI/180.0
  k2 = k2*PI/180.0
 elsif k1 > k2
  k1 = k1*PI/180.0
  k2 = (k2+360)*PI/180.0
 end
 cr2 = cr/cos(div/2.0)
 if $ty == "in"
  px,py = cr*cos(k1),cr*he*sin(k1)
  jpx,jpy = henkan(zk,px,py)
  points << [ox+jpx,oy+jpy]
 elsif $ty == "out"
  if flag == 0
   px,py = cr*cos(k1),cr*he*sin(k1)
   jpx,jpy = henkan(zk,px,py)
   points << [ox+jpx,oy+jpy]
  end
  px,py = cr2*cos(k1),cr2*he*sin(k1)
  jpx,jpy = henkan(zk,px,py)
  points << [ox+jpx,oy+jpy]
 end
 ki = k1+div
 while ki < k2
  if $ty == "in"
   px,py = cr*cos(ki),cr*he*sin(ki)
  elsif $ty == "out"
   px,py = cr2*cos(ki),cr2*he*sin(ki)
  end
  jpx,jpy = henkan(zk,px,py)
  points << [ox+jpx,oy+jpy]
  ki += div
 end
 if $ty == "in"
  px,py = cr*cos(k2),cr*he*sin(k2)
  jpx,jpy = henkan(zk,px,py)
  points << [ox+jpx,oy+jpy]
 elsif $ty == "out"
  px,py = cr2*cos(k2),cr2*he*sin(k2)
  jpx,jpy = henkan(zk,px,py)
  points << [ox+jpx,oy+jpy]
  if flag == 0
   px,py = cr*cos(k2),cr*he*sin(k2)
   jpx,jpy=henkan(zk,px,py)
   points << [ox+jpx,oy+jpy]
  end
 end
 ii=1; ll=points.length-1
 for idx in ii..ll
  x1=sprintf("%0.10f",points[idx-1][0]).to_f
  y1=sprintf("%0.10f",points[idx-1][1]).to_f
  x2=sprintf("%0.10f",points[idx][0]).to_f
  y2=sprintf("%0.10f",points[idx][1]).to_f
  ci_lines << [x1,y1,x2,y2]
 end
 return ci_lines
end
def henkan(zk,px,py)
 jpx=px*cos(zk)-py*sin(zk)
 jpy=px*sin(zk)+py*cos(zk)
 return jpx,jpy
end
main()
:END
######以上です。


Indexへ
(31017)←【31024】→(31025)
------------------------
【タイトル】Re(8):追記
【記事番号】 31024 (31017)
【 日時 】08/09/16 21:54
【 発言者 】hayabusa

早とちりで書込みしましたが・・

SIMAファイル等から展開した標高付き座標データ(h1)にh2を付加して2.5Dで
立体化したいと言う事であれば別方法になると思います。
如何でしょうか。


Indexへ
(31024)←【31025】→(31026)
------------------------
【タイトル】Re(8):2.5dの植樹作成にについて
【記事番号】 31025 (31017)
【 日時 】08/09/16 21:58
【 発言者 】art

▼hayabusaさん:
外部変形を作って頂いてありがとうございます。
質問ですが。
先に文字列を書き込んでおいて後で一括に2.5dの属性を付加することは、
出来ないでしょうか。
当方、2.5dを使い始めて間もないので、上記のような使い方が、2.5dを巧く使いこなす方法であるか分かず質問をしております。
今、小さな公園のパースをかけないか思案中です。直角三角形の小さな公園でして、公園の中には、丸い(φ1.0m程度)及び、1.0m×3.0mの植樹桝と斜の部分に面して幅w=1.0m程度の花壇(L=30.m程度)があります。
公園内の地面に多少起伏がありこれを2.5dで表現をしたいと思っております。
[私が行った手順]
文字入力した数値で2.5Dがかけると思っておりました。
1.先に現況の地盤を観測しこれを結んでコンタの作画前のような図面を作ります。(三角形の頂点に地盤高が書き込まれている状態。概ねGH=3.55〜4.00m)
2.このまま、2.5Dでアイソメ図を作成すると4.0m立ち上がってしまうので、基準の高さを設定し(今回は、GH=3.5m)これを、全てのGHの数値から外部変形で引きます。(すると、GH=0.05m〜0.50mの表示となる。)
3.植樹桝の立ち上がり高さも上記の通りの手順にて作成する。
4.2.5Dにてアイソメ図を書こうとすると記入した高さで立ち上がらずでした。

地盤の点は、一律ではないため2.5Dでの入力が大変煩雑です。このような使い方が邪道なのかもしれませんが、良い方法は無いでしょうか。
文字コマンドで入力した文字に2.5Dの属性が付くのが理想なのですが。
よろしくお願い致します。


Indexへ
(31025)←【31026】→(31028)
------------------------
【タイトル】Re(9):2.5dの植樹作成にについて
【記事番号】 31026 (31025)
【 日時 】08/09/16 22:35
【 発言者 】hayabusa

こんにちは。

たいへん複雑のようですね。f(^^;)

Jw_cadの2.5Dは主に次のような機能でなりたっています。
1.平面に高さ入力
2.立面立上げ
3.レイヤに高さ奥行を定義
Jw_cad添付のサンプルに2.5D機能を解説したファイルがありますので
参考になります。

私は建築関係ですので通常は2.5Dコマンドから高さ情報を入力して作成
しますが土木測量関係の場合既に作図された標高データを2.5Dデータに
変換して立体化するという手法もあるかと思います。

既存標高を2.5D化することは簡単ですが問題はどの様な形式のみを2.5D
化するかと言う事だと思います。
---例
1.数値の場合のみ変換
2.+±が付いた数値も変換
3.H=等がついた数値も変換
その他


Indexへ
(31026)←【31028】→(31031)
------------------------
【タイトル】Re(10):2.5dの植樹作成にについて
【記事番号】 31028 (31026)
【 日時 】08/09/16 22:44
【 発言者 】art

▼hayabusaさん:
難しく考えているわけでは無いのですが。すいません。

自分としては至ってシンプルでして、文字入力した数値(数字のみです。+−もH=も付いていません。)に2.5D用の属性が付いたらと考えています。

というのも2.5D用の属性が付いてしまうと外部変形で入力数位置からの加算乗除が出来ません。
先ほどの手順のとおり、既に記入された数値を利用して2.5Dの操作ができないかと考えています。あくまで入力されているの数字のみです。

何とか、一括で2.5D用の属性は付けられないでしょうか。
よろしくお願い致します。


Indexへ
(31028)←【31031】→(31033)
------------------------
【タイトル】Re(11):2.5dの植樹作成にについて
【記事番号】 31031 (31028)
【 日時 】08/09/17 00:35
【 発言者 】hayabusa

こんばんは。

下記は高さ文字を2.5Dデータに変換する外部変形です。

※重要
線と高さ文字が同じレイヤでないと変換しても2.5Dデータとして
認識されませんので注意してください。
座標ファイルでch→c2変換しても2.5Dとして認識されないのは
たぶんレイヤが違っている為だと思います。

バッチファイル名は「ch25Dcnv.bat」としてください。
##下記よりメモ帳にコピペして全角スペース→半角スペースの置換をしてください
@REM 高さ文字→2.5D変換
@echo off
goto do%1
rem -------------------------------------------------------------------
rem ※このファイルを編集した場合は上書き保存して閉じてください。
rem ※ファイルを閉じなくても編集は反映されます。
rem -------------------------------------------------------------------
rem 1.線と同じレイヤの文字でないと2.5Dデータとして認識されません。
rem 2.高さ文字を個別選択したい場合は範囲選択の後、左右クリック
rem -------------------------------------------------------------------
REM #jww
REM #cd
REM #hm|2.5D変換 (L)|BAT 編集|
REM #:1
REM #h3
REM #g0 書込みグレープのみ
REM #hc 高さデータ範囲選択---左クリックで確定
REM #ht10
REM #ht20
REM #ht30
REM #ht40
REM #zz
REM #zc
REM #hr
REM #e
REM #:2
REM #h0
REM #hr
REM #e
:do1
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt > jwc_temp.txt
del temp.txt
rem pause
exit
goto END
:do2
start notepad.exe ch25Dcnv.bat
ruby -e 'puts "h# ruby #{RUBY_VERSION} "' > jwc_temp.txt
goto END
#!ruby -Ks
count = 0
while ARGF.gets
 if $_ =~ /^hq/
  puts "hd"
 elsif $_ =~ /^ch/
  ch = split; no = $_.index(/\"/)
  ch_z = $_[no+1..-1].strip
  if ch_z =~ /^[0-9-]/
   puts ["c2",ch[1,4],"\"#{ch_z}"].join("\s")
  else
   print
  end
  count += 1
 else
  print
 end
end
if count == 0
 puts "he 変換する高さ文字がありません。"; exit
else
 puts "h# #{count} 個の高さ文字を2.5D用高さ文字に変換しました。"
end
:END
#####以上です。


Indexへ
(31031)←【31033】→(31034)
------------------------
【タイトル】Re(12):2.5dの植樹作成にについて
【記事番号】 31033 (31031)
【 日時 】08/09/17 08:45
【 発言者 】art

▼hayabusaさん:
遅くまでつきあって頂きましてありがとうございました。
思う通りの動作でした。
これで、他の外部変形との連携が巧くいきそうです。
ありがとうございました。


Indexへ
(31033)←【31034】→(31036)
------------------------
【タイトル】Re(13):拡張版--参考です。
【記事番号】 31034 (31033)
【 日時 】08/09/17 10:43
【 発言者 】hayabusa

こんにちは。

線と高さ文字のレイヤが異なる場合にも自動的に対応する線端部に
高さ文字を付加するようにしました。
また文字基点も自動的に左下になるようにしました。
(左下でないと2.5Dデータとして認識されない)

前回の外部変形と併用して状況に応じて使い分けて下さい。

バッチファイル名は「ch25Dcnv2.bat」としてください。
###下記よりメモ帳にコピペして全角スペース→半角スペースの置換をしてください
@REM 高さ文字→2.5Dデータ変換
@echo off
goto do%1
rem ---------------------------------------------------------------
rem ※このファイルを編集した場合は上書き保存してください。
rem ※ファイルを閉じなくても編集は反映されます。
rem ---------------------------------------------------------------
rem ※注意点
rem 1.対象文字列は全レイヤグループです。
rem  念の為不必要なグループは非表示にしてください。
rem 2.高さ文字は基点の一致する線のグループ、レイヤに移動します。
rem 3.高さ文字の基点は左下に変更して線端部に付加します。
rem 4.線端部と文字作図基点の誤差により認識できない場合があります。
rem ----------------------------------------------------------------
REM #jww
REM #cd
REM #hm|2.5D変換 L|BAT 編集 R|
REM #:1
REM #h2
REM #g1 全グループ対象(書込みグループのみ場合はg0)
REM #hc 線&高さ文字を範囲選択---異縮尺の線と高さ文字に注意
REM #ht10
REM #ht20
REM #ht30
REM #ht40
REM #zz
REM #zc
REM #zw
REM #hr
REM #e
REM #:2
REM #h0
REM #hr
REM #e
:do1
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt > jwc_temp.txt
del temp.txt
rem pause
exit
goto END
:do2
start notepad.exe ch25Dcnv2.bat
ruby -e 'puts "h# ruby #{RUBY_VERSION} "' > jwc_temp.txt
goto END
#!ruby -Ks
count,lgs,lys,cns,lines,c2s = 0,[],[],[],[],[]
while ARGF.gets
 if $_ =~ /^hq/
  puts "hd"
 elsif $_ =~ /^lg/
  print
  lgs << $_
 elsif $_ =~ /^ly/
  print
  lys << $_
 elsif $_ =~ /^cn[0-9]/
  print
  cns << $_
 elsif $_ =~ /^\s[0-9-]/
  xy = split
  xy.collect!{ |item| sprintf("%0.9f",item).to_f }
  puts xy.join("\s")
  lines << [lgs[-1],lys[-1],xy]
 elsif $_ =~ /^ch/
  ch = split; no = $_.index(/\"/)
  ch_z = $_[no+1..-1].strip
  if ch_z =~ /^[0-9-]/
   x = sprintf("%0.9f",ch[1]).to_f
   y = sprintf("%0.9f",ch[2]).to_f
   c2s << [cns[-1],"c2",x,y,ch[3],ch[4],"\"#{ch_z}"]
  else
   print
  end
 else
  print
 end
end
for c2 in c2s
 if lngy = lines.find{|item|(item[2][0,2]==c2[2,2] or item[2][2,2]==c2[2,2])}
  puts c2[0]; puts lngy[0]; puts lngy[1]; puts "cc0"
  puts c2[1..-1].join("\s")
  count += 1
 else
  puts "he 線端部と一致しない高さ文字が存在します。"; exit
 end
end
puts lgs[0]; puts lys[0]
if count == 0
 puts "he 変換する高さ文字がありません。"; exit
else
 puts "h# #{count} 個の高さ文字を2.5D用高さ文字に変換しました。"
end
:END
###以上です。


Indexへ
(31034)←【31036】//(30920)
------------------------
【タイトル】Re(14):拡張版--参考です。
【記事番号】 31036 (31034)
【 日時 】08/09/17 11:01
【 発言者 】art

▼hayabusaさん:
拡張版ありがとうございます。
大切に使わせて頂きます。