Page 1539 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼外部変形の紹介 鋪装屋 21/9/28(火) 10:08 ┗Re:外部変形の紹介 kojima 21/9/29(水) 12:59 ┗Re:外部変形の紹介 鋪装屋 21/9/29(水) 15:08 ┗Re:外部変形の紹介 kojima 21/9/29(水) 22:31 ┗Re:外部変形の紹介 鋪装屋 21/9/30(木) 12:31 ┗Re:外部変形の紹介 kojima 21/10/3(日) 22:10 ┣Re:外部変形の紹介 鋪装屋 21/10/4(月) 7:18 ┃ ┗Re:外部変形の紹介 鋪装屋 21/10/5(火) 9:30 ┗Re:外部変形の紹介 鋪装屋 21/10/15(金) 8:30 ┗Re:外部変形の紹介 鋪装屋 21/10/25(月) 10:28 ─────────────────────────────────────── ■題名 : 外部変形の紹介 ■名前 : 鋪装屋 ■日付 : 21/9/28(火) 10:08 -------------------------------------------------------------------------
使用目的ーーーー鋪装展開図 三角形・四角形面積表(小嶋氏作)で 複底辺(幅員)の記載が切点記載であるが 一括記載(例:面積記入) 高さ(延長)が展開図の中央もしくは展開図外に一括記載に 近い外部変形があれば紹介してください。 なお設定は必須です。 |
土木は専門外なので説明が理解できません。 舗装展開図は以下を参考にすれば https://www.city.anjo.aichi.jp/zigyo/nyusatsu/keiyaku/yoteikekka/documents/2014102840d.pdf 〇設定4.txtの内容 書込レイヤ__________________________________________a 書込文字種__________________________________________3 小数点以下桁数______________________________________3 数値丸め 四捨五入:1 切上:2 切捨:3___________________1 指示点からの文字の離れ(図寸)________________________1 書込線色____________________________________________1 書込線種____________________________________________1 書込点色____________________________________________6 幅員の記入位置 指示点上:1 指示点下:2 幅員中央:3_____1 〇バッチファイル @REM 舗装展開図への長さ記入 @echo off REM #jww REM #cd REM #h1 REM #1記入縦位置の中心を指示してください REM #hp REM #e notepad 設定4.txt copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt > jwc_temp.txt pause goto end #!ruby -Ks include Math #指定の小数点以下で丸める def keta_f(s,keta,marume) s2=s*(10**keta) if marume==1 s3=s2.round elsif marume==2 s3=s2.floor else s3=s2.ceil end return (s3.to_f/(10**keta)).to_s end tuki=0 setei_a=[] open("設定4.txt","r"){|f| while f.gets xy=$_.split(/\_+/) setei_a<<xy[1] end } k_ly=setei_a[0] k_mojisyu=setei_a[1].to_i keta=setei_a[2].to_i marume=setei_a[3].to_i hanare=setei_a[4].to_f k_lc=setei_a[5].to_i k_lt=setei_a[6].to_i k_pn=setei_a[7].to_i iti=setei_a[8].to_i puts "ly#{k_ly}","cn#{k_mojisyu}","lc#{k_lc}","lt#{k_lt}","pn#{k_pn}" tatesen_a=[];by_a=[];hch=[] while ARGF.gets xy=$_.split if xy[0]=~/^hs/ xy[1..-1].each{|item|by_a<<item.to_f} end if xy[0]=~/^lg/ zusun=by_a[xy[0][2,1].hex] end if xy[0]=~/^hch/ xy.each{|item|hch<<item.to_f} end if xy[0]=~/^hp1/ hpx=xy[1].to_f hpy=xy[2].to_f end if xy[0]=~/^\d|^-/ xy.collect!{|item|item.to_f} if xy[0]>xy[2] xy[0],xy[1],xy[2],xy[3]=xy[2],xy[3],xy[0],xy[1] elsif xy[0]==xy[2] xy[1],xy[3]=xy[3],xy[1] if xy[1]>xy[3] tatesen_a<<xy end end end tatesen_a.sort!{|a,b|a[0]<=>b[0]} x1=tatesen_a[0][0]-tuki*zusun x2=tatesen_a[-1][0]+tuki*zusun puts "z3" printf(" %.11f %.11f %.11f %.11f\n",x1,hpy,x2,hpy) if iti==1 puts "cc0" elsif iti==2 puts "cc2" else puts "cc1" end tatesen_a.each{|xx1,yy1,xx2,yy2| l=hypot(yy2-yy1,xx2-xx1)/1000 moji_x=xx1-hanare*zusun if iti==1 moji_y=hpy+hanare*zusun elsif iti==2 moji_y=hpy-hanare*zusun else moji_y=yy1+(yy2-yy1)/2 end puts "z3" printf("ch %.11f %.11f 0 1 \"%s\n",moji_x,moji_y,keta_f(l,keta,marume)) puts "z3" printf("pt %.11f %.11f\n",xx1,hpy) } iti==2 ? keisu= -1 : keisu=1 if iti==2 puts "cc1" else puts "cc7" end total_l=0 0.upto(tatesen_a.size-2){|i| xw=tatesen_a[i+1][0]-tatesen_a[i][0] moji_x=tatesen_a[i][0]+xw/2 moji_y=hpy-hanare*zusun*keisu puts "z3" printf("ch %.11f %.11f 1 0 \"%s\n",moji_x,moji_y,keta_f(xw/1000,keta,marume)) total_l += xw/1000 } moji_h=hch[k_mojisyu] y=hpy-(moji_h+hanare*3)*zusun*keisu puts "z3" printf(" %.11f %.11f %.11f %.11f\n",x1,y,x2,y) puts "z3" printf("pt %.11f %.11f\n",x1,y) puts "z3" printf("pt %.11f %.11f\n",x2,y) xw=x2-x1 moji_x=x1+xw/2 moji_y=y-hanare*zusun*keisu puts "z3" printf("ch %.11f %.11f 1 0 \"%s\n",moji_x,moji_y,keta_f(total_l,keta,marume)) __END__ :end |
▼kojimaさん: 素早い対応ありがとうございます。 私が求めていた外変です。 お願いがあります。 数値丸めで、5単位切捨てを追加していただけないでしょうか。 厚かましいお願いで申し訳ありません。 |
〇設定4.txt 書込レイヤ_____________________________________________________a 書込文字種_____________________________________________________3 小数点以下桁数_________________________________________________3 数値丸め 四捨五入:1 切上:2 切捨:3 桁指定切捨:4 5単位切捨:5_____5 指示点からの文字の離れ(図寸)___________________________________1 書込線色_______________________________________________________1 書込線種_______________________________________________________1 書込点色_______________________________________________________6 幅員の記入位置 指示点上:1 指示点下:2 幅員中央:3________________1 〇バッチファイル @REM 舗装展開図への長さ記入 @echo off REM #jww REM #cd REM #h1 REM #1記入縦位置の中心を指示してください REM #hp REM #e notepad 設定4.txt copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt > jwc_temp.txt pause goto end #!ruby -Ks include Math #指定の小数点以下で丸める def keta_f(s,keta,marume) xx=s*10**(keta) case marume when 1 suti=xx.round when 2 suti=xx.ceil when 3 suti=xx.floor when 4 xx=s*10**(keta-1) suti=xx.floor return suti/(10.0**(keta-1)) when 5 xx=s*10**(keta-1) d_str=sprintf("%f",xx) int,d=d_str.split(".") if d[0,1].to_i>=5 suti=("#{int}.5").to_f else suti=("#{int}.0").to_f end return suti/(10**(keta-1)) end return suti/(10.0**keta) end tuki=0 setei_a=[] open("設定4.txt","r"){|f| while f.gets xy=$_.split(/\_+/) setei_a<<xy[1] end } k_ly=setei_a[0] k_mojisyu=setei_a[1].to_i keta=setei_a[2].to_i marume=setei_a[3].to_i hanare=setei_a[4].to_f k_lc=setei_a[5].to_i k_lt=setei_a[6].to_i k_pn=setei_a[7].to_i iti=setei_a[8].to_i puts "ly#{k_ly}","cn#{k_mojisyu}","lc#{k_lc}","lt#{k_lt}","pn#{k_pn}" tatesen_a=[];by_a=[];hch=[] while ARGF.gets xy=$_.split if xy[0]=~/^hs/ xy[1..-1].each{|item|by_a<<item.to_f} end if xy[0]=~/^lg/ zusun=by_a[xy[0][2,1].hex] end if xy[0]=~/^hch/ xy.each{|item|hch<<item.to_f} end if xy[0]=~/^hp1/ hpx=xy[1].to_f hpy=xy[2].to_f end if xy[0]=~/^\d|^-/ xy.collect!{|item|item.to_f} if xy[0]>xy[2] xy[0],xy[1],xy[2],xy[3]=xy[2],xy[3],xy[0],xy[1] elsif xy[0]==xy[2] xy[1],xy[3]=xy[3],xy[1] if xy[1]>xy[3] tatesen_a<<xy end end end tatesen_a.sort!{|a,b|a[0]<=>b[0]} x1=tatesen_a[0][0]-tuki*zusun x2=tatesen_a[-1][0]+tuki*zusun puts "z3" printf(" %.11f %.11f %.11f %.11f\n",x1,hpy,x2,hpy) if iti==1 puts "cc0" elsif iti==2 puts "cc2" else puts "cc1" end tatesen_a.each{|xx1,yy1,xx2,yy2| l=hypot(yy2-yy1,xx2-xx1)/1000 moji_x=xx1-hanare*zusun if iti==1 moji_y=hpy+hanare*zusun elsif iti==2 moji_y=hpy-hanare*zusun else moji_y=yy1+(yy2-yy1)/2 end puts "z3" printf("ch %.11f %.11f 0 1 \"%.#{keta}f\n",moji_x,moji_y,keta_f(l,keta,marume)) puts "z3" printf("pt %.11f %.11f\n",xx1,hpy) } iti==2 ? keisu= -1 : keisu=1 if iti==2 puts "cc1" else puts "cc7" end total_l=0 0.upto(tatesen_a.size-2){|i| xw=tatesen_a[i+1][0]-tatesen_a[i][0] moji_x=tatesen_a[i][0]+xw/2 moji_y=hpy-hanare*zusun*keisu puts "z3" printf("ch %.11f %.11f 1 0 \"%.#{keta}f\n",moji_x,moji_y,keta_f(xw/1000,keta,marume)) total_l += xw/1000 } moji_h=hch[k_mojisyu] y=hpy-(moji_h+hanare*3)*zusun*keisu puts "z3" printf(" %.11f %.11f %.11f %.11f\n",x1,y,x2,y) puts "z3" printf("pt %.11f %.11f\n",x1,y) puts "z3" printf("pt %.11f %.11f\n",x2,y) xw=x2-x1 moji_x=x1+xw/2 moji_y=y-hanare*zusun*keisu puts "z3" printf("ch %.11f %.11f 1 0 \"%.#{keta}f\n",moji_x,moji_y,keta_f(total_l,keta,marume)) __END__ :end |
▼kojimaさん: 遅くまで対応していただきありがとうございました。 さらにお願いですが 同一地点で幅員違いの断面が有る場合の数値記入に 対応できればありがたいのですが、とりあえず 直接記入で対応します。 時間があるときに対応可能であれば検討お願いします。 いただいた外部変形で作業効率が上がります。 大変ありがとうございました。 |
▼鋪装屋さん: >▼kojimaさん: >同一地点で幅員違いの断面が有る場合の数値記入に >対応できればありがたいのですが この一言で、格段に難易度が上がります。 (100行程度から400行以上に) 三角形・四角形面積表の外変の転用。 以下にアップしています。 https://www.farchi.jp/downloads/index.php/file_61597a278bf7b |
▼kojimaさん: ありがとうございました。 感謝、感謝です。 |
>▼kojimaさん: 次回、見直しの際、5単位切捨を入れて もらえればありがたいです。 よろしくお願いします。 |
▼kojimaさん: 鋪装展開図寸法記入02ありがとうございます。 快適に作業できます。 質問ですが 傾きのある展開図にも対応可能にした。(舗装展開図寸法記入2.bat) ですが 普通の展開図(寸法記入で0K)を傾けて複写して 舗装展開図寸法記入2.batを実行しても無反応です。 傾きのある展開図とはどのような展開図でしょうか。 |
▼kojimaさん: 鋪装展開図寸法記入03 ありがとうございます。 |