Page 1449 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼寸法値と文字のみ位置を変えずに反転できますか? かいぬ 21/5/27(木) 23:59 ┗Re:寸法値と文字のみ位置を変えずに反転できますか? DTJ 21/5/28(金) 12:39 ┣Re:寸法値と文字のみ位置を変えずに反転できますか? Fu〜 21/5/28(金) 17:46 ┃ ┗Re:寸法値と文字のみ位置を変えずに反転できますか? DTJ 21/5/28(金) 19:45 ┗Re:寸法値と文字のみ位置を変えずに反転できますか? kojima 21/5/28(金) 22:32 ┗Re:寸法値と文字のみ位置を変えずに反転できますか? DTJ 21/5/29(土) 7:58 ─────────────────────────────────────── ■題名 : 寸法値と文字のみ位置を変えずに反転できますか? ■名前 : かいぬ ■日付 : 21/5/27(木) 23:59 -------------------------------------------------------------------------
図面を書いてるときに反転して180°回転させるときがあるのですが文字と寸法値が逆さになってしまいます、、 一括で治すことはできますか? |
▼かいぬさん: >図面を書いてるときに反転して180°回転させるときがあるのですが文字と寸法値が逆さになってしまいます、、 >一括で治すことはできますか? KITIさん作の外部変形「寸法文字頭左下」で希望通りの動作が出来ると思い、動作確認したところ「寸法図形」は説明通りの結果になりますが、それ以外は回転はするけど寸法線の飛び越しは出来ないようです JWWの小箱 http://kiti-ku.o.oo7.jp/ KITIさんへ 以前は寸法図形以外でも出来ていた記憶がありますが、こちらの勘違いでしょうか? Win10(20H2及び21H1) Jw_cad8.24a の環境で試しましたが寸法図形以外は出来ませんでした グループ化のチェックも入れても外しても変わりは無いです このスレをご覧になってましたら確認をお願いしますm(__)m |
▼DTJさん: 03が入ってたので試しましたができませんでした 04を入れてもだめでした > 注意 : 実行後は寸法図形化はそのままですが寸法属性が解除さ > れてしまいます。 とあるので勘違いでは? 寸法回転のソフトでも寸法図形ならできますね >以前は寸法図形以外でも出来ていた記憶がありますが、こちらの勘違いでしょうか? |
▼Fu〜さん: こんばんは >> 注意 : 実行後は寸法図形化はそのままですが寸法属性が解除さ >> れてしまいます。 > >とあるので勘違いでは? 注意文も書かれているし参考.JWWの寸法も寸法図形なので、寸法図形だけ対応なのかな?と思ったのですが、もしそうならReadme.txtに「寸法図形のみ対応」とKITIさんなら書かれるんじゃ無いかと・・・(^^ゞ こちらの思い込み勘違いかもしれませんが・・・ |
▼DTJさん: >KITIさんへ >以前は寸法図形以外でも出来ていた記憶がありますが、こちらの勘違いでしょうか? 寸法図形は寸法値と寸法線がセットですが、寸法属性の寸法値と寸法線は 関連付けがありません。 寸法線から図寸2mm以内の寸法値を勝手に関連付けするようにしてみました。 @REM 寸法値を移動 @echo off REM #jww REM #cd REM #ht10 REM #ht20 REM #ht40 REM #zz REM #zc REM #zw REM #h1 REM #g1 REM #c寸法線と寸法値の離れ(図寸) 無指定:1mm/_/a REM #hp REM #e copy jwc_temp.txt temp.txt > nul ruby -x %~f0 temp.txt %1 > jwc_temp.txt pause goto end #!ruby -Ks include Math require "jcode" hanare=1.0 while ARGV.size>1 case argument=ARGV.pop when /\/a/ hanare=argument[2..-1].to_f end end def sentyo(sen,keta,hasu) l=hypot(sen[3]-sen[1],sen[2]-sen[0]) if hasu=="1" l=(l*(10**keta)).round/(10.0**keta) elsif hasu=="2" l=(l*(10**keta)).ceil/(10.0**keta) elsif hasu=="3" l=(l*(10**keta)).floor/(10.0**keta) end return l end def sen_ue?(sen,ten) x1,y1,x2,y2=sen tx,ty=ten sen_arg=atan2(y2-y1,x2-x1) ten_arg=atan2(ty-y1,tx-x1) if (sen_arg-ten_arg).abs<0.001 l1=hypot(y2-y1,x2-x1) l2=hypot(ty-y1,tx-x1) if l1>l2 return 1 else return 0 end else return 0 end end by_a=[];sen_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]=~/^z3/ ARGF.gets xy=$_.split if xy[0]=~/^\d|^-/ xy.collect!{|item|item.to_f} sen_a<<xy end end end hanare *= zusun puts "hd" f=open("temp.txt","r") while f.gets xy=$_.split if xy[0]=~/^hq/ elsif xy[0]=~/^cn(\d+)/ print $_ if xy.size==1 moji_h=hch[$1.to_i] else moji_h=xy[2].to_f end moji_h *= zusun elsif xy[0]=~/^cc/ print $_ cc=xy[0] elsif xy[0]=~/^cs/ moji=$'.chomp if $_=~/\"/ moji2=moji.tr("0123456789","0123456789") moji2=moji2.tr(",,","") x=xy[1].to_f y=xy[2].to_f c_arg=atan2(xy[4].to_f,xy[3].to_f) c_l=hypot(xy[4].to_f,xy[3].to_f) ln=sen_a.find{|x1,y1,x2,y2| arg1=atan2(y2-y1,x2-x1) arg2=atan2(y1-y2,x1-x2) l=hypot(y-y1,x-x1) arg=atan2(y-y1,x-x1) l2=l*cos(arg-arg1) tx=x1+l2*cos(arg1) ty=y1+l2*sin(arg1) h=l*sin(arg-arg1) l=hypot(y2-y1,x2-x1) h.abs<hanare*2 && sen_ue?([x1,y1,x2,y2],[tx,ty])==1 && (c_arg-arg1).abs<0.001 && (l-moji2.to_f).abs<zusun or h.abs<hanare*2 && sen_ue?([x1,y1,x2,y2],[tx,ty])==1 && (c_arg-arg2).abs<0.001 && (l-moji2.to_f).abs<zusun } if ln if ln[0]>ln[2] ln[0],ln[1],ln[2],ln[3]=ln[2],ln[3],ln[0],ln[1] elsif ln[0]==ln[2] ln[1],ln[3]=ln[3],ln[1] if ln[1]>ln[3] end if cc!="cc1" puts "cc1","z3" end l=hypot(ln[3]-ln[1],ln[2]-ln[0]) arg=atan2(ln[3]-ln[1],ln[2]-ln[0]) x=ln[0]+l/2*cos(arg)+hanare*cos(arg+PI/2) y=ln[1]+l/2*sin(arg)+hanare*sin(arg+PI/2) printf("cs %.11f %.11f %.11f %.11f \"%s\n",x,y,cos(arg),sin(arg),moji) puts cc if cc!="cc1" else if xy[3].to_f<0 or xy[3].to_f==0 && xy[4].to_f<0 if cc=="cc0" x=x+c_l*cos(c_arg)+moji_h*cos(c_arg+PI/2) y=y+c_l*sin(c_arg)+moji_h*sin(c_arg+PI/2) elsif cc=="cc1" x=x+moji_h*cos(c_arg+PI/2) y=y+moji_h*sin(c_arg+PI/2) elsif cc=="cc2" x=x-c_l*cos(c_arg)+moji_h*cos(c_arg+PI/2) y=y-c_l*sin(c_arg)+moji_h*sin(c_arg+PI/2) elsif cc=="cc3" x=x+c_l*cos(c_arg) y=y+c_l*sin(c_arg) elsif cc=="cc5" x=x-c_l*cos(c_arg) y=y-c_l*sin(c_arg) elsif cc=="cc6" x=x+c_l*cos(c_arg)-moji_h*cos(c_arg+PI/2) y=y+c_l*sin(c_arg)-moji_h*sin(c_arg+PI/2) elsif cc=="cc7" x=x-moji_h*cos(c_arg+PI/2) y=y-moji_h*sin(c_arg+PI/2) elsif cc=="cc8" x=x-c_l*cos(c_arg)-moji_h*cos(c_arg+PI/2) y=y-c_l*sin(c_arg)-moji_h*sin(c_arg+PI/2) end printf("cs %.11f %.11f %.11f %.11f \"%s\n",x,y,cos(c_arg+PI),sin(c_arg+PI),moji) else print $_ end end elsif xy[0]=~/^msg/ print $_ while f.gets xy=$_.split if xy[0]=~/^\d|^-/ print $_ xy.collect!{|item|item.to_f} ln=xy elsif xy[0]=~/^cs/ if xy[3].to_f<0 or xy[3].to_f==0 && xy[4].to_f<0 moji=$'.chomp if $_=~/\"/ x=xy[1].to_f y=xy[2].to_f c_arg=atan2(xy[4].to_f,xy[3].to_f) c_l=hypot(xy[4].to_f,xy[3].to_f) arg1=atan2(ln[3]-ln[1],ln[2]-ln[0]) l=hypot(y-ln[1],x-ln[0]) arg2=atan2(y-ln[1],x-ln[0]) h=l*sin(arg2-arg1) l2=l*cos(arg2-arg1) h<0 ? k = -1 : k=1 x=ln[0]+l2*cos(arg1)+(moji_h*k+h)*cos(arg1-PI/2) y=ln[1]+l2*sin(arg1)+(moji_h*k+h)*sin(arg1-PI/2) x=x+c_l*cos(c_arg)+moji_h*cos(c_arg+PI/2) y=y+c_l*sin(c_arg)+moji_h*sin(c_arg+PI/2) printf("cs %.11f %.11f %.11f %.11f \"%s\n",x,y,cos(c_arg+PI),sin(c_arg+PI),moji) else print $_ end elsif xy[0]=="#" puts "#" break else print $_ end end else print $_ end end f.close __END__ :end |
▼kojimaさん: おはようございます >寸法線から図寸2mm以内の寸法値を勝手に関連付けするようにしてみました。 ありがとうございます ruby 1.8.7.374の環境で問題無く動きました |