Page 53 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼寸法測定書込み手順 他 oyaji 15/04/27(月) 20:50 ┣Re(1):寸法測定書込み手順 他 Fu〜 15/04/27(月) 21:58 ┃ ┗Re(2):寸法測定書込み手順 他 oyaji 15/04/28(火) 8:32 ┃ ┗Re(3):寸法測定書込み手順 他 Fu〜 15/04/28(火) 20:59 ┣Re(1):寸法測定書込み手順 他 kojima 15/04/29(水) 11:16 ┃ ┗kojimaさんの外変にて oyaji 15/04/30(木) 13:53 ┃ ┗Re(1):kojimaさんの外変にて kojima 15/04/30(木) 15:25 ┃ ┗Re(2):kojimaさんの外変にて oyaji 15/04/30(木) 17:56 ┣Re(1):寸法測定書込み手順 他 oyaji 15/04/29(水) 20:22 ┃ ┗Re(2):寸法測定書込み手順 他 O.M 15/04/30(木) 10:37 ┃ ┗Re(3):寸法測定書込み手順 他 卯之介 15/04/30(木) 11:07 ┃ ┗Re(4):寸法測定書込み手順 他 O.M 15/04/30(木) 12:59 ┃ ┗Re(5):寸法測定書込み手順 他 R.N 15/04/30(木) 17:49 ┃ ┗Re(6):寸法測定書込み手順 他 O.M 15/04/30(木) 18:41 ┃ ┗Re(7):寸法測定書込み手順 他 R.N 15/04/30(木) 18:49 ┃ ┗Re(8):寸法測定書込み手順 他 O.M 15/04/30(木) 19:06 ┗Re(1):寸法測定書込み手順 他 oyaji 15/05/06(水) 0:40 ┗Re(2):寸法測定書込み手順 他 kojima 15/05/06(水) 9:43 ┣Re(3):寸法測定書込み手順 他 oyaji 15/05/06(水) 11:27 ┃ ┣Re(4):寸法測定書込み手順 他 LA 15/05/06(水) 12:11 ┃ ┣Re(4):寸法測定書込み手順 他 kojima 15/05/06(水) 15:55 ┃ ┣出来ました。 oyaji 15/05/06(水) 19:46 ┃ ┗Re(4):寸法測定書込み手順 他 エルフ 15/05/14(木) 12:10 ┗Re(3):寸法測定書込み手順 他 R.N 15/05/07(木) 14:27 ┗Re(4):寸法測定書込み手順 他 kojima 15/05/07(木) 17:59 ─────────────────────────────────────── ■題名 : 寸法測定書込み手順 他 ■名前 : oyaji ■日付 : 15/04/27(月) 20:50 -------------------------------------------------------------------------
いつも皆さんにはお世話になっており 感謝しております。 寸法の書き込みについてお聞きします。 それぞれの辺の長さが違う五角形が書いてあります。 この状態のままでの五角形の高さと幅を書き出したいのですが、 まず 高さを測定する場合 私の場合 JWでは 1.底点(または頂点)から水平線を引く 2.コマンド測定 → コマンド間隔 を選んで今書いた線と頂点をクリック 3.測定結果書込 → 書出したい場所でクリック にて 高さを書き出しています。 同じような手順にて幅寸法も書き出しているのですが、 この手順が一番いいのでしょうか? 他にやり方があればご教授お願いします。 JWの測定書き込みはタテを測定して書き込み、 ヨコを測定して書き込みと 言う具合に1個ずつ測定書き込みが 出来ませんが、 先にタテ・ヨコを測定して 一度で測定結果が 出るように何か方法はないでしょうか? 宜しくお願いします。 |
▼oyajiさん: >1.底点(または頂点)から水平線を引く >2.コマンド測定 → コマンド間隔 を選んで今書いた線と頂点をクリック >3.測定結果書込 → 書出したい場所でクリック > にて 高さを書き出しています。 今一理解してないかもしれませんが 2点間の垂直距離と水平距離を知りたい。ということでしたら 寸法コマンドで,傾き「90」と「0」で2回するのでは,駄目なのでしょうか? 数が多いと大変ですが・・・・・・ |
▼Fu〜さん: >2点間の垂直距離と水平距離を知りたい。ということでしたら > >寸法コマンドで,傾き「90」と「0」で2回するのでは,駄目なのでしょうか? Fu〜さん capさん ありがとうございます。 私の説明が悪かったです。 まさに「2点間の垂直距離と水平距離を知りたい」ということなんですが、 寸法コマンドで その図に書込むのではなく、別の位置へ作製した表に 測定結果を書込みたいのです。 例に五角形としてしまいましたが、例を変更します。 4つの辺の長さが違うひし形ということで。 ひし形の頂点(12時方向の点)をA 他の点を時計回りにB・C・Dしして ACの垂直距離とBDの水平距離を別の場所に作ってある表に書き出したいのです。 AとCは同じ垂直線上ではなく 又 BとDも同じ水平線上ではないものとします。 このような場合 どのような手順で書込むのが良いのでしょうか? JWの場合 垂直・水平線をそれぞれ一方を書かないと測定できないのでは? 先にも書きましたが 垂直・水平を一度で書込む方法は何かないでしょうか。 解り辛い説明ですいません。宜しくお願いします。 |
▼oyajiさん: capさんの手順が良さそうですね 測定コマンド・・・座標測定 C点で右クリック・・・A点で右クリック 測定結果書込,,,書込場所近くで左クリック (クリアーを左クリック,D点で右クリック・・・B点で右クリック,測定結果書込,,,書込場所近くで左クリック) CからAまでのxy座標値が書き込まれているので,Y座標値が高さになるので文字コマンドで表の中に移動 X座標値は消す DB間のX座標値を移動して,Y座標値は消す こんな操作でしょうか? いい外部変形があるかは,わかりません |
普通では面白くないのでヒネってみました。 バッチファイルにRubyスクリプトを記述した外部変形です。 Rubyのインストールが必要です。 コピペ後、全角スペースを半角スペースに一括置換してください。 @REM 各々の多角形に接する仮想矩形の幅と高さ記入 @echo off REM #jww REM #cd REM #h1 REM #0NO記入の基点を指示してください REM #1横幅記入の基点を指示してください REM #2高さ記入の基点を指示してください REM #c書込文字種 無指定:3/_/a REM #c行間隔(図寸) 無指定:5/_/b REM #c小数点以下有効桁数 無指定:3/_/c REM #k長さの単位|1) MM (L)|2) M (R)|/_/d REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1 %2 %3 %4> jwc_temp.txt pause exit #!ruby -Ks include Math mojisyu=3;keta=3;gyo=5 while ARGV.size>1 case argument=ARGV.pop when /\/a/ mojisyu=argument[2..-1].to_i when /\/b/ gyo=argument[2..-1].to_f when /\/c/ keta=argument[2..-1].to_i when /\/d/ tani=argument[2..-1].to_i end end #線データのクラス class Sen attr_accessor :x1, :y1, :x2, :y2 def initialize(x1,y1,x2,y2) @x1=x1 @y1=y1 @x2=x2 @y2=y2 end end #線の配列senから閉鎖図形を区分けする def loop_zukei(sen) a=sen.shift renzoku=[a] begin b=sen.find{|item2| item2.x1==a.x2 && item2.y1==a.y2 or item2.x2==a.x2 && item2.y2==a.y2 } if b if renzoku[-1].x2==b.x1 && renzoku[-1].y2==b.y1 a=Sen.new(b.x1,b.y1,b.x2,b.y2) elsif renzoku[-1].x2==b.x2 && renzoku[-1].y2==b.y2 a=Sen.new(b.x2,b.y2,b.x1,b.y1) end sen.delete_if{|item2|item2==b} renzoku<<a end end while(b) if renzoku[-1].x2==renzoku[0].x1 && renzoku[-1].y2==renzoku[0].y1 return renzoku else return nil end end def sq_draw(x_min,y_min,x_max,y_max) puts "lc9","lt9" printf(" %.11f %.11f %.11f %.11f\n",x_min,y_min,x_max,y_min) printf(" %.11f %.11f %.11f %.11f\n",x_max,y_min,x_max,y_max) printf(" %.11f %.11f %.11f %.11f\n",x_max,y_max,x_min,y_max) printf(" %.11f %.11f %.11f %.11f\n",x_min,y_max,x_min,y_min) end def str_write(y,zusun,mojisyu,moji_w,moji_d,keta,no,xl,yh,xl_x,yh_x) str_no=sprintf("%d",no) n=str_no.size moji_nol=(moji_w*n+moji_d*(n-1))*zusun/2 str_x=sprintf("%.#{keta}f",xl) n=str_x.size moji_xl=(moji_w*n+moji_d*(n-1))*zusun/2 str_y=sprintf("%.#{keta}f",yh) n=str_y.size moji_yl=(moji_w*n+moji_d*(n-1))*zusun/2 puts "cc0" printf("ch %.11f %.11f 1 0 \"%s\n",0,y,str_no) printf("ch %.11f %.11f 1 0 \"%s\n",xl_x,y,str_x) printf("ch %.11f %.11f 1 0 \"%s\n",yh_x,y,str_y) end sen=[];by=[];hcw=[];hch=[];hcd=[] while ARGF.gets xy=$_.split if xy[0] =~ /^hs/ xy[1..-1].each{|item|by<<item.to_i} end if xy[0] =~ /^hcw/ xy.each{|item|hcw<<item.to_f} end if xy[0] =~ /^hch/ xy.each{|item|hch<<item.to_f} end if xy[0] =~ /^hcd/ xy.each{|item|hcd<<item.to_f} end if xy[0] =~ /^hp1/ xl_x=xy[1].to_f end if xy[0] =~ /^hp2/ yh_x=xy[1].to_f end if xy[0] =~ /^lg/ zusun=by[xy[0][2,1].hex] end if xy[0] =~ /^\d|^-/ xy.collect!{|item|item.to_f} ln=Sen.new(xy[0],xy[1],xy[2],xy[3]) sen<<ln end end moji_w=hcw[mojisyu];moji_h=hch[mojisyu];moji_d=hcd[mojisyu] tani==1 ? m=1 : m=1000 no=0;y=0 while sen.size>0 zukei=loop_zukei(sen) if zukei != nil x_a=[];y_a=[];no+=1 zukei.each{|item| x_a<<item.x1<<item.x2 y_a<<item.y1<<item.y2 } x_min=x_a.min;x_max=x_a.max;y_min=y_a.min;y_max=y_a.max puts "cc4" moji_x=x_min+(x_max-x_min)/2 moji_y=y_min+(y_max-y_min)/2 puts "cn#{mojisyu+1}" printf("ch %.11f %.11f 1 0 \"%d\n",moji_x,moji_y,no) puts "cc1","cn#{mojisyu}" moji_x=x_min+(x_max-x_min)/2 moji_y=y_max+1*zusun printf("ch %.11f %.11f 1 0 \"%.#{keta}f\n",moji_x,moji_y,(x_max-x_min)/m) moji_x=x_min-1*zusun moji_y=y_min+(y_max-y_min)/2 printf("ch %.11f %.11f 0 1 \"%.#{keta}f\n",moji_x,moji_y,(y_max-y_min)/m) sq_draw(x_min,y_min,x_max,y_max) str_write(y,zusun,mojisyu,moji_w,moji_d,keta,no,(x_max-x_min)/m,(y_max-y_min)/m,xl_x,yh_x) y -= (moji_h+2)*zusun end end |
kojima様 又 皆さん 大変大変 失礼いたしました。 kojimaさんに作っていただいた外変にて 私の思うことができていました。 「コピペ後、全角スペースを半角スペースに一括置換してください。」 を 自宅のPC(OS=windows7)で行なった際 REM等の前にスペ-スがあった為 削除して使用してみたところ REM #0NO記入の基点を指示してください REM #1横幅記入の基点を指示してください REM #2高さ記入の基点を指示してください REM #c書込文字種 無指定:3/_/a REM #c行間隔(図寸) 無指定:5/_/b の入力画面が出てきておらず、出来上がったのは 図形を囲う□の枠とそのタテヨコの寸法のみ。 で 会社のPC(windows XP)にて先程 改めて再度 「コピペ後、全角スペースを半角スペースに一括置換してください。」 を行なうと REMの前にスペ-スは無くそのままの状態で 保存してやってみたところ私の思うことがそのまんま出来ました。 OSの違いで出来なかったのか 何が原因なのか 全く解りませんが・・・。 kojima様には 毎回毎回お世話になっており 感謝しております。 皆さん お騒がせしてすいませんでした。 ありがとうございました。 |
▼oyajiさん: >kojima様 又 皆さん 大変大変 失礼いたしました。 >REM #0NO記入の基点を指示してください >REM #1横幅記入の基点を指示してください >REM #2高さ記入の基点を指示してください >REM #c書込文字種 無指定:3/_/a >REM #c行間隔(図寸) 無指定:5/_/b >の入力画面が出てきておらず、出来上がったのは >図形を囲う□の枠とそのタテヨコの寸法のみ。 最初にアップした外部変形です。 表記入部分はありません。 >で 会社のPC(windows XP)にて先程 改めて再度 >「コピペ後、全角スペースを半角スペースに一括置換してください。」 >を行なうと REMの前にスペ-スは無くそのままの状態で >保存してやってみたところ私の思うことがそのまんま出来ました。 >OSの違いで出来なかったのか 何が原因なのか 全く解りませんが・・・。 >kojima様には 毎回毎回お世話になっており 感謝しております。 2度目にアップした外部変形です。(表記入を追加) 最初の外部変形のレスは削除しました。 > >皆さん お騒がせしてすいませんでした。 >ありがとうございました。 |
kojima様 ありがとうございます。 0Sが どうのこうのではなく そういうことだったんですね。 解決し ホ-とました。 外部変形 使わせていただきます。 ありがとうございました。 |
皆さん ありがとうございます。 Fu〜さんには 座標値で書出す方法を教えていただき、 mirrorさんには 補助線に寸法値で書出す方法を教えていただき、 kojimaさんには 多角形でも対応する外部変形まで作っていただき、 感謝しております。 それぞれ いろんなやり方があるのだな---と実感しています。 「タテ ヨコ の寸法を指定した場所に書出す」という作業なんですが、 共通するのは どうしても寸法を表に移動しなくてはいけないということ。 そして補助線・寸法線は後で消去という手順と なるのですね。 外部変形でもこれは難しいのですね。 うる覚えなのですが 仕事の客先のcadで 見たことがあったので 質問させて戴きました。 測定コマンド→ 距離測定→ このあとに □水平・垂直 のようにチェック欄が出来ればいいのですが こんなこともバ-ジョンアップに 盛り込めていただければいいなあ---と 勝ってに要望を書いてしまいました。 皆さん ありがとうございました。 |
もう見ていないかもしれないですが、気になったので欠きこませていただきます。 kojimaさんの外部変形の手法は希望とちがっていたのでしょうか? (今PCにRuby入ってない状態で、内容未確認です) なんとなくですが、外部変形で希望の動作はできそうな気がします。 何をしたいのかが正直理解できていないので、私は作るに作れないですし、ややこしそうなら作ろう思わない、というのはあります。 思い浮かんだのが下記の5点です。 1.選択した多角形の重心から頂点への水平距離(垂直距離)を指示位置に文字列として一括記入 2.選択した多角形の辺への隣り合う頂点から頂点への水平距離(垂直距離)を指示位置に文字列として一括記入 3.選択した多角形を中に収めることのできる最少サイズの長方形の水平距離(垂直距離)を指示位置に文字列として記入 ※多角形の角度と長方形の角度の条件要確認 4.指示した2点の水平距離(垂直距離)を指示位置に文字列で記入 5.実は多角計の面積計算をするために、多角形を3角形に分解し分解した三角形のそれぞれの底辺と高さを表で書き出して、面積計算を行いたい 5なら既に外部変形がいろいろ作成されています。 1・2・4は、公開されているかどうかはわからないですが、作成はできると思います。 3も、処理条件を明確にすれば、可能かと思います。 測定結果を表としてjwwに作図も外部変形を作成すればできます。 (jwwに付属の三斜面積計算のJWW_SMPL.BATも測定結果を表で書き出しています) 選択したjww内の表の指定位置に測定結果を作図となると面倒だと思いますが、 表の書き方が定まった条件に基づいて作図されているといのなら、可能だと思います。 どういう条件の時に、どういう法則で測定したいのかがよくわからないということで、 思い浮かんだのをちょこっと書きこんだパターンのjwwデータおいておきます。 (すぐに削除します) http://nekobasu83.webdeki-bbs.com/nekobasu83_tree_p_49.html ※もし建築資料館でお話したことのあるoyajiさんでしたら、 下記2パターンの外部変形のどちらかを作成するので、ご自分で自由に処理していただくというのもありかなと思ってます。 ※以前階段作図で外部変形おすすめしたときに使用できないとおっしゃっていたので難しいかもしれません。 ※人違いでしたら申し訳ありません。 Aパーターン 1.外部変形を実行しデータ記入の基点+指示点の座標(複数)をExcelに取得(私が作成) 2.取得情報をもとにデータを関数等でシートに書き出し(ほぼ座標ファイルの書き方と同じ法則) 3.処理実行ボタンを押すとExcelシートのデータ内容をjwwに書き戻す(私が作成) Bパーターン 1.外部変形を実行しデータ記入の基点+選択した範囲のデータ内容をExcelに取得(私が作成) 2.取得情報をもとにデータを関数等でシートに書き出し(ほぼ座標ファイルの書き方と同じ法則) 3.処理実行ボタンを押すとExcelシートのデータ内容をjwwに書き戻す(私が作成) |
外部変形の動作としては ・図形を選択する ・全要素のX座標の最大値と最小値の差、Y座標の(略)を文字列で描画 だけでいい気がします。 文字は後で移動するなり、記入位置を指示させるなりすれば足りる…と理解しましたが読み間違いでしょうか。 |
▼卯之介さん: 勘違いでなければ、私も卯之介さんの内容と同じものが一番可能性が高いと思っています。 例で挙げたものの、パターン3が同じ考えの説明でした(わかりにくくて済みません) ※例としてjww図を上げているものうち、多角形が長方形の中にはいっていて、なおかつ、長方形の辺は水平と垂直で構成されているもののパターン。 言い換えたら、選択範囲(多角形を選択)の頂点のxy座標をすべてとり出し、 取り出したx座標全てとy座標全てを比較して、 1.最少のx座標と最大のx座標のx座標距離 2.最少のy座標と最大のy座標のy座標距離 を出すって意味かなと。 それでしたら、処理は簡易ですし外部変形も作ろうと思えば作れると思います。 (コードや仕様が美しいかどうかとかという点は別として) ※表に入れるって部分までやろうとすると、表ってどんな表かが問題になってきますのでそこは除外。 ただ、oyajiさんのあげている例と一致しているかというと、確信が持ててません。 >4つの辺の長さが違うひし形 の時点ですでにひし形の定義と違いますし。 例では対角線のx座標、y座標が挙げられていましたが、いつでも対角線の座標でいいのかというと違うんじゃないかという気がしますし。 ※そこらへんが気になったので、データで挙げたjwwはの図はわざと4辺の長さの違う四角形を2パターン記載しています。 作成云々に関しては、前提として条件をエクセル上に記入したら、 Excelの関数等でその計算してjwwのデータを文字列で作成し、 座標ファイルを読み込んだらjww図面に階段が作図できる、 っていうことをやってらっしゃるoyajiさんという方がいまして、 そのoyajiさんでしたら、質問内容は自作できそうな範囲の内容かなと考えましての発言です。 わかっている方ならいろいろ好きに応用・修正もできると思いますし。 ※その方はプログラミングはわからないとのことでしたので、 1.Excel上にjwwのデータ内容を文字列で取得する 2.Excel上に記入したjwwデータ内容をjwwに書き込む の部分だけ作成しようかなと。 |
▼O.Mさん: こんにちは、 ちょっと思ったのですが、 多角形の最外郭を四角形で囲った、幅・高さの全体寸法は、小嶋さんの外変でできるのですが、 途中の交点までの水平・垂直距離も必要なのかな--- |
▼R.Nさん: こんにちはー。 rubyいれて小嶋さんの外部変形を試してみたのですが、 多角形複数の場合にも範囲選択で一括処理でき、 かつ連番や測定寸法の表示もあり、至れりつくせりの素敵仕様ですね。 oyajiさんご本人にしかわからないことですが、 R.Nさんご指摘のように、文字列だけ記入したいってことのような気がします。 |
▼O.Mさん: >▼R.Nさん: >こんにちはー。 >rubyいれて小嶋さんの外部変形を試してみたのですが、 >多角形複数の場合にも範囲選択で一括処理でき、 >かつ連番や測定寸法の表示もあり、至れりつくせりの素敵仕様ですね。 > >oyajiさんご本人にしかわからないことですが、 >R.Nさんご指摘のように、文字列だけ記入したいってことのような気がします。 書き方が、まずかったでしょうか--- 一括記入は、そのとおりですが、 途中点間の距離も、と思ったのですが |
▼R.Nさん: 途中の交点までの水平・垂直距離も必要なのかな---(いらないだろうな) と、勝手に反語に変換しておもいっきり誤読しました…。 自動で記入される長方形の寸法が不要って意味ととらえてたのですが、 全然違う内容ですね、完全に勘違いしてました、すみません。 >http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=22150;id=003 >そして補助線・寸法線は後で消去 って発言があるので、補助線・寸法線はいらないって意味だろうと勝手に予測してました。 |
OMさん RNさん いつもお世話になっており 感謝しております。 4/30の夕方より本日まで 所要であわてて出かけまして kojimaさんへは返信しておきながら 皆さんへは返信せずにすいませんでした。 私の文章力不足で OMさん RNさん 色々と考えてもらっていただき ただただ恐縮するばかりです。 今回の私の質問で 私の2回目の投稿で 「その図に書込むのではなく、別の位置へ作製した表に 測定結果を書込みたいのです。」と私の意図はお伝えしたつもりだったのですが、 せっかくkojimaさんに作製していただいた外変なのですが、 最外郭を四角形で囲った線、幅・高さの全体寸法、又 NOが その図に記入される為、 kojimaさんの外変を無知な私なりに触ってみたのですが、やはり出来ませんでした。もう一度 教えていただけないでしょうか。 宜しくお願いします。 |
▼oyajiさん: >「その図に書込むのではなく、別の位置へ作製した表に >測定結果を書込みたいのです。」 ? 別の図面の表に記入するとも解釈されますが?(その図に書込むのではなく) >せっかくkojimaさんに作製していただいた外変なのですが、 >最外郭を四角形で囲った線、幅・高さの全体寸法、又 NOが その図に記入される為、 表記入のみが必要ということであれば、以下のようになります。 但し 多角形内に通しNOがないと、多角形と表の関連が全く分かりません。 (表内の、どの行が、どの多角形に該当するのか?) @REM 各々の多角形に接する仮想矩形の幅と高さ記入 @echo off REM #jww REM #cd REM #h1 REM #0NO記入の基点を指示してください REM #1横幅記入の基点を指示してください REM #2高さ記入の基点を指示してください REM #c書込文字種 無指定:3/_/a REM #c行間隔(図寸) 無指定:5/_/b REM #c小数点以下有効桁数 無指定:3/_/c REM #k長さの単位|1) MM (L)|2) M (R)|/_/d REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1 %2 %3 %4> jwc_temp.txt pause exit #!ruby -Ks include Math mojisyu=3;keta=3;gyo=5 while ARGV.size>1 case argument=ARGV.pop when /\/a/ mojisyu=argument[2..-1].to_i when /\/b/ gyo=argument[2..-1].to_f when /\/c/ keta=argument[2..-1].to_i when /\/d/ tani=argument[2..-1].to_i end end #線データのクラス class Sen attr_accessor :x1, :y1, :x2, :y2 def initialize(x1,y1,x2,y2) @x1=x1 @y1=y1 @x2=x2 @y2=y2 end end #線の配列senから閉鎖図形を区分けする def loop_zukei(sen) a=sen.shift renzoku=[a] begin b=sen.find{|item2| item2.x1==a.x2 && item2.y1==a.y2 or item2.x2==a.x2 && item2.y2==a.y2 } if b if renzoku[-1].x2==b.x1 && renzoku[-1].y2==b.y1 a=Sen.new(b.x1,b.y1,b.x2,b.y2) elsif renzoku[-1].x2==b.x2 && renzoku[-1].y2==b.y2 a=Sen.new(b.x2,b.y2,b.x1,b.y1) end sen.delete_if{|item2|item2==b} renzoku<<a end end while(b) if renzoku[-1].x2==renzoku[0].x1 && renzoku[-1].y2==renzoku[0].y1 return renzoku else return nil end end def sq_draw(x_min,y_min,x_max,y_max) puts "lc9","lt9" printf(" %.11f %.11f %.11f %.11f\n",x_min,y_min,x_max,y_min) printf(" %.11f %.11f %.11f %.11f\n",x_max,y_min,x_max,y_max) printf(" %.11f %.11f %.11f %.11f\n",x_max,y_max,x_min,y_max) printf(" %.11f %.11f %.11f %.11f\n",x_min,y_max,x_min,y_min) end def str_write(y,zusun,mojisyu,keta,no,xl,yh,xl_x,yh_x) str_no=sprintf("%d",no) str_x=sprintf("%.#{keta}f",xl) str_y=sprintf("%.#{keta}f",yh) puts "cc0" printf("ch %.11f %.11f 1 0 \"%s\n",0,y,str_no) printf("ch %.11f %.11f 1 0 \"%s\n",xl_x,y,str_x) printf("ch %.11f %.11f 1 0 \"%s\n",yh_x,y,str_y) end sen=[];by=[];hch=[] while ARGF.gets xy=$_.split if xy[0] =~ /^hs/ xy[1..-1].each{|item|by<<item.to_i} end if xy[0] =~ /^hch/ xy.each{|item|hch<<item.to_f} end if xy[0] =~ /^hp1/ xl_x=xy[1].to_f end if xy[0] =~ /^hp2/ yh_x=xy[1].to_f end if xy[0] =~ /^lg/ zusun=by[xy[0][2,1].hex] end if xy[0] =~ /^\d|^-/ xy.collect!{|item|item.to_f} ln=Sen.new(xy[0],xy[1],xy[2],xy[3]) sen<<ln end end moji_h=hch[mojisyu] tani==1 ? m=1 : m=1000 no=0;y=0 while sen.size>0 zukei=loop_zukei(sen) if zukei != nil x_a=[];y_a=[];no+=1 zukei.each{|item| x_a<<item.x1<<item.x2 y_a<<item.y1<<item.y2 } x_min=x_a.min;x_max=x_a.max;y_min=y_a.min;y_max=y_a.max puts "cc4" moji_x=x_min+(x_max-x_min)/2 moji_y=y_min+(y_max-y_min)/2 puts "cn#{mojisyu+1}" printf("ch %.11f %.11f 1 0 \"%d\n",moji_x,moji_y,no) =begin puts "cc1","cn#{mojisyu}" moji_x=x_min+(x_max-x_min)/2 moji_y=y_max+1*zusun printf("ch %.11f %.11f 1 0 \"%.#{keta}f\n",moji_x,moji_y,(x_max-x_min)/m) moji_x=x_min-1*zusun moji_y=y_min+(y_max-y_min)/2 printf("ch %.11f %.11f 0 1 \"%.#{keta}f\n",moji_x,moji_y,(y_max-y_min)/m) sq_draw(x_min,y_min,x_max,y_max) =end str_write(y,zusun,mojisyu,keta,no,(x_max-x_min)/m,(y_max-y_min)/m,xl_x,yh_x) y -= gyo*zusun end end |
kojima様 早々に書き換えて頂きありがとうございます。 >>「その図に書込むのではなく、別の位置へ作製した表に >>測定結果を書込みたいのです。」 > >? >別の図面の表に記入するとも解釈されますが?(その図に書込むのではなく) ごもっとも。 文章のみで伝える難しさを実感しております。 「同ファイル中の図の右横に作製した表にタテヨコの寸法を書き込みたい」と 書くべきでした。すいません。 >表記入のみが必要ということであれば、以下のようになります。 ということで コピペ後 全角スペ-スを半角スペ-スに変換したのですが、 当初と同じようにREM等の前にスペ-スが入っています。 REM等の前のスペ-スを削除し、外変を実行しましたが 未実行と なってしまいます。 どこを触ればいいのでしょうか。 宜しくお願いします。 |
▼oyajiさん: こんにちは >コピペ後 全角スペ-スを半角スペ-スに変換したのですが、 >当初と同じようにREM等の前にスペ-スが入っています。 >REM等の前のスペ-スを削除し、外変を実行しましたが 未実行と >なってしまいます。 >どこを触ればいいのでしょうか。 >宜しくお願いします。 このbatファイルは、JWWで戻る前に、pauseで一旦止めており、DOS窓に表示されたエラーを見ることができますので、それを投稿内容に入れると、原因が予想しやすくなり、コメントも付きやすくなります。 とはいえ、 引っかかりやすそうなところというと、最初の方の、 #!ruby -Ks かな。 これは、そこからがrubyスクリプトだという宣言も兼ね、行頭に置く必要があります。 言い換えれば、ここも、行頭の空白削除 が必要 だという事です。 ここの行頭に空白を入れて試してみましたが、 ruby: no Ruby script found in input (LoadError) と表示されました。 訳すと、rubyスクリプトが見つからない なので、 rubyスクリプトだと認識させる->ruby宣言部をどうにかすればいい、という予想が立ちます。 |
@REM 各々の多角形に接する仮想矩形の幅と高さ記入 から #!ruby -Ks までの文頭の半角スペースを削除してください。 =beginと=endの文頭の半角スペースを削除してください。 |
皆さん 大変お世話になっております。 出来ました。 OMさんのご指摘とおり 保存するフォルダーにスペースを使用していた為でした。 LAさんには色々と試していただきありがとうございます。 そしてkojimaさんには いつもいつもお世話になり本当に感謝しております。 そしてmirrorさんの「クリップボ-ドへ入れて処理する」は 最初に「ひとつの情報として書き込む」とのことでしたが、 正直 私程度の知識ではチンプンカンプンです。 「解る方には すごい情報なのかも」と思いながら 読ませていただきました。 皆さん ありがとうごさいました。 |
> >ごもっとも。 >文章のみで伝える難しさを実感しております。 > 今からでも遅くないので、画像ファイルにして、 http://imgur.com/ なりお好きな画像UPサイトにUPしてはいかがでしょうか? http://blog.livedoor.jp/easy2ch/archives/256423.html 皆さん図面業の方なのでしょうから絵で示したほうがわかりやすいと思いますよ。 普段から変更指示を言葉、文章で必死に伝えようとする一部の設計者には ほとほと苦労させられます・・・。 手書きでもいいのでスケッチ、絵を書いて欲しいんです。ホント・・・。 |
▼kojimaさん: こんにちは お世話になります。 =begin =end によって、文字種選択オプションが、有効にならないようです。 |
▼R.Nさん: >▼kojimaさん: > >こんにちは >お世話になります。 > >=begin >=end >によって、文字種選択オプションが、有効にならないようです。 =end の下の行に、puts "cn#{mojisyu}" を追記してください。 |