過去ログ

                                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°回転させるときがあるのですが文字と寸法値が逆さになってしまいます、、
一括で治すことはできますか?

 ───────────────────────────────────────  ■題名 : Re:寸法値と文字のみ位置を変えずに反転できますか?  ■名前 : DTJ  ■日付 : 21/5/28(金) 12:39  -------------------------------------------------------------------------
   ▼かいぬさん:
>図面を書いてるときに反転して180°回転させるときがあるのですが文字と寸法値が逆さになってしまいます、、
>一括で治すことはできますか?

KITIさん作の外部変形「寸法文字頭左下」で希望通りの動作が出来ると思い、動作確認したところ「寸法図形」は説明通りの結果になりますが、それ以外は回転はするけど寸法線の飛び越しは出来ないようです
JWWの小箱 http://kiti-ku.o.oo7.jp/

KITIさんへ
以前は寸法図形以外でも出来ていた記憶がありますが、こちらの勘違いでしょうか?
Win10(20H2及び21H1)
Jw_cad8.24a
の環境で試しましたが寸法図形以外は出来ませんでした
グループ化のチェックも入れても外しても変わりは無いです
このスレをご覧になってましたら確認をお願いしますm(__)m

 ───────────────────────────────────────  ■題名 : Re:寸法値と文字のみ位置を変えずに反転できますか?  ■名前 : Fu〜  ■日付 : 21/5/28(金) 17:46  ■Web : http://fu-s.wakwak.info/  -------------------------------------------------------------------------
   ▼DTJさん:

03が入ってたので試しましたができませんでした
04を入れてもだめでした

>  注意  : 実行後は寸法図形化はそのままですが寸法属性が解除さ
>        れてしまいます。

とあるので勘違いでは?


寸法回転のソフトでも寸法図形ならできますね


>以前は寸法図形以外でも出来ていた記憶がありますが、こちらの勘違いでしょうか?

 ───────────────────────────────────────  ■題名 : Re:寸法値と文字のみ位置を変えずに反転できますか?  ■名前 : DTJ  ■日付 : 21/5/28(金) 19:45  -------------------------------------------------------------------------
   ▼Fu〜さん:
こんばんは

>>  注意  : 実行後は寸法図形化はそのままですが寸法属性が解除さ
>>        れてしまいます。
>
>とあるので勘違いでは?

注意文も書かれているし参考.JWWの寸法も寸法図形なので、寸法図形だけ対応なのかな?と思ったのですが、もしそうならReadme.txtに「寸法図形のみ対応」とKITIさんなら書かれるんじゃ無いかと・・・(^^ゞ

こちらの思い込み勘違いかもしれませんが・・・

 ───────────────────────────────────────  ■題名 : Re:寸法値と文字のみ位置を変えずに反転できますか?  ■名前 : kojima  ■日付 : 21/5/28(金) 22:32  -------------------------------------------------------------------------
   ▼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

 ───────────────────────────────────────  ■題名 : Re:寸法値と文字のみ位置を変えずに反転できますか?  ■名前 : DTJ  ■日付 : 21/5/29(土) 7:58  -------------------------------------------------------------------------
   ▼kojimaさん:

おはようございます

>寸法線から図寸2mm以内の寸法値を勝手に関連付けするようにしてみました。

ありがとうございます
ruby 1.8.7.374の環境で問題無く動きました

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 1449