Indexへ
(21416)// 【21417】→(21418) ------------------------ 【タイトル】角度寸法線の文字の補正
【記事番号】 21417 (*)
【 日時 】07/06/01 11:34
【 発言者 】ひで
お世話になっています。
前から気になっていたのですが、角度の寸法を書くと、
下向きの寸法の場合、寸法値(例 30゜)が、下向きになってしまいます。
現状、文字コマンドで角度に+180゜して配置しなおしております。
設定、または外変(角度寸法の修正又は記載ができるもの)はないでしょうか?
Indexへ
(21417)← 【21418】→(21434) ------------------------ 【タイトル】Re(1):角度寸法線の文字の補正
【記事番号】 21418 (21417 )
【 日時 】07/06/01 11:37
【 発言者 】ひでと
申し訳ありません。投稿者の名前が欠けていました。
「ひでと」です。
Indexへ
(21418)← 【21434】→(21435) ------------------------ 【タイトル】Re(1):角度寸法線の文字の補正
【記事番号】 21434 (21417 )
【 日時 】07/06/01 19:43
【 発言者 】kubo
▼ひでとさん:
>前から気になっていたのですが、角度の寸法を書くと、
>下向きの寸法の場合、寸法値(例 30゜)が、下向きになってしまいます。
>現状、文字コマンドで角度に+180゜して配置しなおしております。
>設定、または外変(角度寸法の修正又は記載ができるもの)はないでしょうか?
設定ではできないように思いますが。
外変なら文字一括回転のものを使えばよいと思います。
検索したら下記がありました。
http://fox.zero.ad.jp/~zap01296/jww/
外変#10 ◆文字 一括 回転◆
Jw_cad の機能で回転させるのなら、+180°しなくても
文字移動のコマンドで文字を選択したとき、
設定>角度取得>X軸角度 で、
(クロックメニューなら右PM3時)
角度寸法線の下側の実点を基点に、上側の実点の角度を取得すれば
180°回転できます。
Indexへ
(21434)← 【21435】→(21457) ------------------------ 【タイトル】Re(1):角度寸法線の文字の補正
【記事番号】 21435 (21417 )
【 日時 】07/06/01 22:34
【 発言者 】おっとー
▼ひでさん:
>お世話になっています。
>前から気になっていたのですが、角度の寸法を書くと、
>下向きの寸法の場合、寸法値(例 30゜)が、下向きになってしまいます。
>現状、文字コマンドで角度に+180゜して配置しなおしております。
>設定、または外変(角度寸法の修正又は記載ができるもの)はないでしょうか?
こんばんは
jwwの寸法設定 及び 環境ファイルの設定
どちらにも、そのような設定はありません。
数が少ないのであれば、ひでさんの行っている方法が、無難だと思います。
数が多くなると、外部変形の「文字 一括 回転」を使われた方が良いのですが
範囲選択する時に、下向きに寸法値が、書かれているものを選択しないと
いけないことと、寸法値(角度)の桁が多いと、寸法線と重なってしまいます
ので、結局、文字位置を修正しないといけないと思います。
私も、1つずつ行っています。設定で出来ること期待しましょう。
Indexへ
(21435)← 【21457】→(21458) ------------------------ 【タイトル】Re(2):角度寸法線の文字の補正
【記事番号】 21457 (21435 )
【 日時 】07/06/04 12:27
【 発言者 】コジマ
▼おっとーさん:
>範囲選択する時に、下向きに寸法値が、書かれているものを選択しないと
>いけないことと、寸法値(角度)の桁が多いと、寸法線と重なってしまいます
>ので、結局、文字位置を修正しないといけないと思います。
snap_kinさんの外変は、文字基点(左下)が回転軸になるのでそうなりますね。
以下は、以前にこの掲示板で公開した外変です(文字中心が回転軸)
◎バッチファイル(文字回転.bat)
@REM 文字を一括回転
@echo off
REM #jww
REM #cd
REM #zz
REM #zc
REM #h3
REM #hc文字を範囲選択してください
REM #c回転角度 無指定:0/_/a
REM #bz
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 文字回転.rb temp.txt %1 > jwc_temp.txt
◎スクリプトファイル(文字回転.rb)
include Math
kakudo=180
arg=kakudo*2*PI/360
def moji_tyuten_zahyo(x,y,moji_x,moji_y,cc,moji_h,zusun)
moji_l=sqrt(moji_x**2+moji_y**2)
moji_arg=atan2(moji_y,moji_x)
if cc=="cc0"
tyuten_x=x+moji_l/2*cos(moji_arg)-moji_h*zusun/2*sin(moji_arg)
tyuten_y=y+moji_l/2*sin(moji_arg)+moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc1"
tyuten_x=x-moji_h*zusun/2*sin(moji_arg)
tyuten_y=y+moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc2"
tyuten_x=x-moji_l/2*cos(moji_arg)-moji_h*zusun/2*sin(moji_arg)
tyuten_y=y-moji_l/2*sin(moji_arg)+moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc3"
tyuten_x=x+moji_l/2*cos(moji_arg)
tyuten_y=y+moji_l/2*sin(moji_arg)
elsif cc=="cc4"
tyuten_x=x
tyuten_y=y
elsif cc=="cc5"
tyuten_x=x-moji_l/2*cos(moji_arg)
tyuten_y=y-moji_l/2*sin(moji_arg)
elsif cc=="cc6"
tyuten_x=x+moji_l/2*cos(moji_arg)+moji_h*zusun/2*sin(moji_arg)
tyuten_y=y+moji_l/2*sin(moji_arg)-moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc7"
tyuten_x=x+moji_h*zusun/2*sin(moji_arg)
tyuten_y=y-moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc8"
tyuten_x=x-moji_l/2*cos(moji_arg)+moji_h*zusun/2*sin(moji_arg)
tyuten_y=y-moji_l/2*sin(moji_arg)-moji_h*zusun/2*cos(moji_arg)
end
return [tyuten_x,tyuten_y]
end
def moji_kiten_zahyo(x,y,moji_x,moji_y,cc,moji_h,zusun)
moji_l=sqrt(moji_x**2+moji_y**2)
moji_arg=atan2(moji_y,moji_x)
if cc=="cc0"
kiten_x=x-moji_l/2*cos(moji_arg)+moji_h*zusun/2*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)-moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc1"
kiten_x=x+moji_h*zusun/2*sin(moji_arg)
kiten_y=y-moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc2"
kiten_x=x+moji_l/2*cos(moji_arg)+moji_h*zusun/2*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)-moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc3"
kiten_x=x-moji_l/2*cos(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)
elsif cc=="cc4"
kiten_x=x
kiten_y=y
elsif cc=="cc5"
kiten_x=x+moji_l/2*cos(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)
elsif cc=="cc6"
kiten_x=x-moji_l/2*cos(moji_arg)-moji_h*zusun/2*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)+moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc7"
kiten_x=x-moji_h*zusun/2*sin(moji_arg)
kiten_y=y+moji_h*zusun/2*cos(moji_arg)
elsif cc=="cc8"
kiten_x=x+moji_l/2*cos(moji_arg)-moji_h*zusun/2*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)+moji_h*zusun/2*cos(moji_arg)
end
return [kiten_x,kiten_y]
end
puts("hd")
hcw=[];hch=[];hcd=[];by=[]
while ARGF.gets
xy=split
if xy[0]=~/^hq/
elsif xy[0]=~/^hs/
xy[1..-1].each{|item|by< elsif xy[0]=~/^lg/
zusun=by[(xy[0][2,1]).hex]
print $_
elsif xy[0]=~/^hcw/
xy.each{|item|hcw< elsif xy[0]=~/^hch/
xy.each{|item|hch< elsif xy[0]=~/^hcd/
xy.each{|item|hcd< elsif xy[0]=~/^cn\d$/
cn=xy
print $_
elsif xy[0]=~/^cc\d$/
print $_
cc=xy[0]
elsif xy[0]=~/^\d|^-/
print $_
xy.collect!{|item|item.to_f}
if xy[0]>xy[2]
xy[0],xy[2],xy[1],xy[3]=xy[2],xy[0],xy[3],xy[1]
elsif xy[0]==xy[2]
xy[1],xy[3]=xy[3],xy[1] if xy[1]>xy[3]
end
x1,y1,x2,y2=xy[0],xy[1],xy[2],xy[3]
elsif xy[0]=~/^ch|^cs/
x=xy[1].to_f
y=xy[2].to_f
moji_x=xy[3].to_f
moji_y=xy[4].to_f
moji_l=sqrt(moji_y**2+moji_x**2)
moji_arg=atan2(moji_y,moji_x)
if $_ =~/\"/
moji=$'.chomp
end
if cn.size==1
moji_w=hcw[cn[0][2,1].to_i]
moji_h=hch[cn[0][2,1].to_i]
moji_d=hcd[cn[0][2,1].to_i]
else
moji_w=cn[1].to_f
moji_h=cn[2].to_f
moji_d=cn[3].to_f
end
tyuten=moji_tyuten_zahyo(x,y,moji_x,moji_y,cc,moji_h,zusun)
senx,seny=x2-x1,y2-y1
sen_arg=atan2(seny,senx)
sen_moji_x=tyuten[0]-x1
sen_moji_y=tyuten[1]-y1
sen_moji_l=sqrt(sen_moji_x**2+sen_moji_y**2)
sen_moji_arg=atan2(sen_moji_y,sen_moji_x)
henkaku=sen_moji_arg-sen_arg
tyuten_x2=x1+sen_moji_l*cos(sen_arg-henkaku)
tyuten_y2=y1+sen_moji_l*sin(sen_arg-henkaku)
kiten=moji_kiten_zahyo(tyuten_x2,tyuten_y2,moji_x,moji_y,cc,moji_h,zusun)
sen_moji_x=kiten[0]-tyuten_x2
sen_moji_y=kiten[1]-tyuten_y2
sen_moji_l=sqrt(sen_moji_x**2+sen_moji_y**2)
sen_moji_arg=atan2(sen_moji_y,sen_moji_x)
x=tyuten_x2+sen_moji_l*cos(sen_moji_arg+arg)
y=tyuten_y2+sen_moji_l*sin(sen_moji_arg+arg)
moji_x=moji_l*cos(moji_arg+arg)
moji_y=moji_l*sin(moji_arg+arg)
printf("ch %.11f %.11f %.11f %.11f \"%s\n",x,y,moji_x,moji_y,moji)
else
print $_
end
end
Indexへ
(21457)← 【21458】→(21460) ------------------------ 【タイトル】Re(3):訂正
【記事番号】 21458 (21457 )
【 日時 】07/06/04 12:49
【 発言者 】コジマ
>▼おっとーさん:
>>範囲選択する時に、下向きに寸法値が、書かれているものを選択しないと
>>いけないことと、寸法値(角度)の桁が多いと、寸法線と重なってしまいます
>>ので、結局、文字位置を修正しないといけないと思います。
>
全く別の外変を送ってしまいました、以下が本物です。
◎バッチファイル(文字回転.bat)
@REM 文字を一括回転
@echo off
REM #jww
REM #cd
REM #zz
REM #zc
REM #h3
REM #hc文字を範囲選択してください
REM #c回転角度 無指定:0/_/a
REM #bz
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 文字回転.rb temp.txt %1 > jwc_temp.txt
◎スクリプトファイル(文字回転.rb)
include Math
kakudo=0
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
kakudo=argument[2..-1].to_f
end
end
arg=kakudo*2*PI/360
puts("hd","bz")
hcw=[];hch=[];hcd=[]
while ARGF.gets
xy=split
if xy[0]=~/^hq/
elsif xy[0]=~/^hcw/
xy.each{|item|hcw< elsif xy[0]=~/^hch/
xy.each{|item|hch< elsif xy[0]=~/^hcd/
xy.each{|item|hcd< elsif xy[0]=~/^cn\d$/
cn=xy
print $_
elsif xy[0]=~/^cc\d$/
print $_
cc=xy[0]
elsif xy[0]=~/^c[hvsroptkz2]/
x=xy[1].to_f
y=xy[2].to_f
moji_x=xy[3].to_f
moji_y=xy[4].to_f
moji_l=sqrt(xy[3].to_f**2+xy[4].to_f**2)
moji_arg=atan2(xy[4].to_f,xy[3].to_f)
if $_ =~/\"/
moji=$'.chomp
end
if cn.size==1
moji_w=hcw[cn[0][2,1].to_i]
moji_h=hch[cn[0][2,1].to_i]
moji_d=hcd[cn[0][2,1].to_i]
else
moji_w=cn[1].to_f
moji_h=cn[2].to_f
moji_d=cn[3].to_f
end
if cc=="cc0"
kiten_x=x+moji_l/2*cos(moji_arg)-moji_h/2*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)+moji_h/2*cos(moji_arg)
elsif cc=="cc1"
kiten_x=x-moji_h/2*sin(moji_arg)
kiten_y=y+moji_h/2*cos(moji_arg)
elsif cc=="cc2"
kiten_x=x-moji_l/2*cos(moji_arg)-moji_h/2*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)+moji_h/2*cos(moji_arg)
elsif cc=="cc3"
kiten_x=x+moji_l/2*cos(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)
elsif cc=="cc4"
kiten_x=x
kiten_y=y
elsif cc=="cc5"
kiten_x=x-moji_l/2*cos(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)
elsif cc=="cc6"
kiten_x=x+moji_l/2*cos(moji_arg)+moji_h/2*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)-moji_h/2*cos(moji_arg)
elsif cc=="cc7"
kiten_x=x+moji_h/2*sin(moji_arg)
kiten_y=y-moji_h/2*cos(moji_arg)
elsif cc=="cc8"
kiten_x=x-moji_l/2*cos(moji_arg)+moji_h/2*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)-moji_h/2*cos(moji_arg)
end
xx=x-kiten_x
yy=y-kiten_y
l=sqrt(xx**2+yy**2)
kiten_arg=atan2(yy,xx)
x=kiten_x+l*cos(kiten_arg+arg)
y=kiten_y+l*sin(kiten_arg+arg)
moji_x=moji_l*cos(moji_arg+arg)
moji_y=moji_l*sin(moji_arg+arg)
printf("ch %.11f %.11f %.11f %.11f \"%s\n",x,y,moji_x,moji_y,moji)
else
print $_
end
end
Indexへ
(21458)← 【21460】→(21462) ------------------------ 【タイトル】Re(4):ありがとうございます。
【記事番号】 21460 (21458 )
【 日時 】07/06/04 13:16
【 発言者 】おっとー
▼コジマさん:
いつも、コジマさんには、お世話になっております。
以前にも、教えてもらった方法で作ってみるのですが、うまく動いてくれません。
私の外変の知識不足で、間違っている所が、わからなくて困っています。
基本から、勉強していきたいと思います。(勉強するのに、いい本、HPは
あったら教えて下さい)
ありがとうございます。
>>>範囲選択する時に、下向きに寸法値が、書かれているものを選択しないと
>>>いけないことと、寸法値(角度)の桁が多いと、寸法線と重なってしまいます
>>>ので、結局、文字位置を修正しないといけないと思います。
>>
>
>全く別の外変を送ってしまいました、以下が本物です。
>
>◎バッチファイル(文字回転.bat)
>
>@REM 文字を一括回転
>@echo off
>REM #jww
>REM #cd
>REM #zz
>REM #zc
>REM #h3
>REM #hc文字を範囲選択してください
>REM #c回転角度 無指定:0/_/a
>REM #bz
>REM #e
>copy jwc_temp.txt temp.txt > nul
>ruby -Ks 文字回転.rb temp.txt %1 > jwc_temp.txt
>
>
>◎スクリプトファイル(文字回転.rb)
>
>include Math
>kakudo=0
>
>while ARGV.size>1
> case argument=ARGV.pop
> when /\/a/
> kakudo=argument[2..-1].to_f
> end
>end
>
>arg=kakudo*2*PI/360
>
>puts("hd","bz")
>
>hcw=[];hch=[];hcd=[]
>while ARGF.gets
> xy=split
> if xy[0]=~/^hq/
> elsif xy[0]=~/^hcw/
> xy.each{|item|hcw<> elsif xy[0]=~/^hch/
> xy.each{|item|hch<> elsif xy[0]=~/^hcd/
> xy.each{|item|hcd<> elsif xy[0]=~/^cn\d$/
> cn=xy
> print $_
> elsif xy[0]=~/^cc\d$/
> print $_
> cc=xy[0]
> elsif xy[0]=~/^c[hvsroptkz2]/
> x=xy[1].to_f
> y=xy[2].to_f
> moji_x=xy[3].to_f
> moji_y=xy[4].to_f
> moji_l=sqrt(xy[3].to_f**2+xy[4].to_f**2)
> moji_arg=atan2(xy[4].to_f,xy[3].to_f)
>
> if $_ =~/\"/
> moji=$'.chomp
> end
> if cn.size==1
> moji_w=hcw[cn[0][2,1].to_i]
> moji_h=hch[cn[0][2,1].to_i]
> moji_d=hcd[cn[0][2,1].to_i]
> else
> moji_w=cn[1].to_f
> moji_h=cn[2].to_f
> moji_d=cn[3].to_f
> end
>
> if cc=="cc0"
> kiten_x=x+moji_l/2*cos(moji_arg)-moji_h/2*sin(moji_arg)
> kiten_y=y+moji_l/2*sin(moji_arg)+moji_h/2*cos(moji_arg)
> elsif cc=="cc1"
> kiten_x=x-moji_h/2*sin(moji_arg)
> kiten_y=y+moji_h/2*cos(moji_arg)
> elsif cc=="cc2"
> kiten_x=x-moji_l/2*cos(moji_arg)-moji_h/2*sin(moji_arg)
> kiten_y=y-moji_l/2*sin(moji_arg)+moji_h/2*cos(moji_arg)
> elsif cc=="cc3"
> kiten_x=x+moji_l/2*cos(moji_arg)
> kiten_y=y+moji_l/2*sin(moji_arg)
> elsif cc=="cc4"
> kiten_x=x
> kiten_y=y
> elsif cc=="cc5"
> kiten_x=x-moji_l/2*cos(moji_arg)
> kiten_y=y-moji_l/2*sin(moji_arg)
> elsif cc=="cc6"
> kiten_x=x+moji_l/2*cos(moji_arg)+moji_h/2*sin(moji_arg)
> kiten_y=y+moji_l/2*sin(moji_arg)-moji_h/2*cos(moji_arg)
> elsif cc=="cc7"
> kiten_x=x+moji_h/2*sin(moji_arg)
> kiten_y=y-moji_h/2*cos(moji_arg)
> elsif cc=="cc8"
> kiten_x=x-moji_l/2*cos(moji_arg)+moji_h/2*sin(moji_arg)
> kiten_y=y-moji_l/2*sin(moji_arg)-moji_h/2*cos(moji_arg)
> end
> xx=x-kiten_x
> yy=y-kiten_y
> l=sqrt(xx**2+yy**2)
> kiten_arg=atan2(yy,xx)
>
> x=kiten_x+l*cos(kiten_arg+arg)
> y=kiten_y+l*sin(kiten_arg+arg)
> moji_x=moji_l*cos(moji_arg+arg)
> moji_y=moji_l*sin(moji_arg+arg)
>
> printf("ch %.11f %.11f %.11f %.11f \"%s\n",x,y,moji_x,moji_y,moji)
> else
> print $_
> end
>end
Indexへ
(21460)← 【21462】→(21466) ------------------------ 【タイトル】Re(5):ありがとうございます。(追伸)
【記事番号】 21462 (21460 )
【 日時 】07/06/04 15:05
【 発言者 】おっとー otto1015@hotmail.co.jp
▼コジマさん:
>
>いつも、コジマさんには、お世話になっております。
>以前にも、教えてもらった方法で作ってみるのですが、うまく動いてくれません。
>私の外変の知識不足で、間違っている所が、わからなくて困っています。
>基本から、勉強していきたいと思います。(勉強するのに、いい本、HPは
>あったら教えて下さい)
>ありがとうございます。
>
コジマさんの外部変形で、ダウンロードした「寸法線端部変換」は、きれいに動いています。
大変申し訳ないのですが、外部変形「文字回転」をメールにて送ってもらうことは
出来ますでしょうか。
Indexへ
(21462)← 【21466】→(21459) ------------------------ 【タイトル】Re(6):出来ました。(追伸)
【記事番号】 21466 (21462 )
【 日時 】07/06/04 16:22
【 発言者 】おっとー
▼コジマさん:
>大変申し訳ないのですが、外部変形「文字回転」をメールにて送ってもらうことは出来ますでしょうか。
お騒がせしました。
文字を半角で保存したら出来ました。
また、宜しくお願いします。
Indexへ
(21466)← 【21459】→(21470) ------------------------ 【タイトル】Re(3):角度寸法線の文字の補正
【記事番号】 21459 (21457 )
【 日時 】07/06/04 13:01
【 発言者 】kubo
▼コジマさん:
>
>snap_kinさんの外変は、文字基点(左下)が回転軸になるのでそうなりますね。
>
文字基点の位置は、選択できるようになっているようですが・・・・??
(中中もありました)
Indexへ
(21459)← 【21470】→(21478) ------------------------ 【タイトル】Re(4):角度寸法線の文字の補正
【記事番号】 21470 (21459 )
【 日時 】07/06/04 17:00
【 発言者 】コジマ
▼kuboさん:
>▼コジマさん:
>>
>>snap_kinさんの外変は、文字基点(左下)が回転軸になるのでそうなりますね。
>>
>文字基点の位置は、選択できるようになっているようですが・・・・??
>(中中もありました)
そのとおりでした。
回転後の文字基点が左下に変わるだけですね。
私の外変は、文字基点を変更しない為に作ったものでした。
但し、寸法値を 180度 回転させた時は、文字基点も中下から中上に変更させるほうが自然ですね。
なので、寸法値に用いる場合は、意味がないです。
Indexへ
(21470)← 【21478】→(21485) ------------------------ 【タイトル】Re(5):角度寸法線の文字の補正
【記事番号】 21478 (21470 )
【 日時 】07/06/04 18:05
【 発言者 】おっとー
▼コジマさん:
>>snap_kinさんの外変は、文字基点(左下)が回転軸になるのでそうなりますね。
>>文字基点の位置は、選択できるようになっているようですが・・・・??
>>(中中もありました)
>そのとおりでした。
>回転後の文字基点が左下に変わるだけですね。
>私の外変は、文字基点を変更しない為に作ったものでした。
>但し、寸法値を 180度 回転させた時は、文字基点も中下から中上に変更させるほうが自然ですね。
>なので、寸法値に用いる場合は、意味がないです。
こんにちは
私は、下記
唐人舞氏のJW_Win 専用外部変形 文字一括回転 Ver0.1(作者に感謝)
を使っていますが、基点は、文字基点のように選べて、角度もいろいろ指定
出来ますが、文字基点も中下から中上に変更させても、寸法の角度は円弧の寸法線に重なってしまいます。
下基点・上基点から、何mmか、ずれた位置に基点を設定出来たら、いいのでは
ないかと思います。宜しくお願いします。
Indexへ
(21478)← 【21485】→(21492) ------------------------ 【タイトル】Re(6):角度寸法線の文字の補正
【記事番号】 21485 (21478 )
【 日時 】07/06/05 08:54
【 発言者 】ひでと
▼おっとーさん:
>▼コジマさん:
>>>snap_kinさんの外変は、文字基点(左下)が回転軸になるのでそうなりますね。
>>>文字基点の位置は、選択できるようになっているようですが・・・・??
>>>(中中もありました)
>>そのとおりでした。
>>回転後の文字基点が左下に変わるだけですね。
>>私の外変は、文字基点を変更しない為に作ったものでした。
>>但し、寸法値を 180度 回転させた時は、文字基点も中下から中上に変更させるほうが自然ですね。
>>なので、寸法値に用いる場合は、意味がないです。
>
>こんにちは
>私は、下記
>唐人舞氏のJW_Win 専用外部変形 文字一括回転 Ver0.1(作者に感謝)
>を使っていますが、基点は、文字基点のように選べて、角度もいろいろ指定
>出来ますが、文字基点も中下から中上に変更させても、寸法の角度は円弧の寸法線に重なってしまいます。
>下基点・上基点から、何mmか、ずれた位置に基点を設定出来たら、いいのでは
>ないかと思います。宜しくお願いします。
あきらめておりましたが、解決の糸口が見つかりそうな気配になっていますね。
出来れば、「寸法線の円弧を選択して、その中心を基点に文字を180度回転する」
という形が考えられると思います。
Indexへ
(21485)← 【21492】→(21493) ------------------------ 【タイトル】Re(7):角度寸法線の文字の補正
【記事番号】 21492 (21485 )
【 日時 】07/06/05 17:03
【 発言者 】おっとー
▼ひでとさん:
>>>回転後の文字基点が左下に変わるだけですね。
>>>私の外変は、文字基点を変更しない為に作ったものでした。
>>>但し、寸法値を 180度 回転させた時は、文字基点も中下から中上に変更させるほうが自然ですね。
>>>なので、寸法値に用いる場合は、意味がないです。
>>
>>こんにちは
>>私は、下記
>>唐人舞氏のJW_Win 専用外部変形 文字一括回転 Ver0.1(作者に感謝)
>>を使っていますが、基点は、文字基点のように選べて、角度もいろいろ指定
>>出来ますが、文字基点も中下から中上に変更させても、寸法の角度は円弧の寸法線に重なってしまいます。
>>下基点・上基点から、何mmか、ずれた位置に基点を設定出来たら、いいのでは
>>ないかと思います。宜しくお願いします。
>
>あきらめておりましたが、解決の糸口が見つかりそうな気配になっていますね。
>出来れば、「寸法線の円弧を選択して、その中心を基点に文字を180度回転する」
>という形が考えられると思います。
そのような方法もありますが、
私が行っている方法が、その寸法値が、どのくらい傾いているのか、確認した上で
移動します。
文字→その文字の上で右PM5時で角度取得→文字選択の際(コントロールバーの角度を360度or(無指定)、方向をY方向)
その設定で適当な位置に移動
(参考までに)
Indexへ
(21492)← 【21493】→(21495) ------------------------ 【タイトル】Re(6):角度寸法線の文字の補正
【記事番号】 21493 (21478 )
【 日時 】07/06/05 17:07
【 発言者 】コジマ
▼おっとーさん:
>唐人舞氏のJW_Win 専用外部変形 文字一括回転 Ver0.1(作者に感謝)
>を使っていますが、基点は、文字基点のように選べて、角度もいろいろ指定
>出来ますが、文字基点も中下から中上に変更させても、寸法の角度は円弧の寸法線に重なってしまいます。
この場合、基点とは回転軸のことなので、中上にするとそうなりますね。
中中であれば、重ならないはずですが。
>下基点・上基点から、何mmか、ずれた位置に基点を設定出来たら、いいのでは
>ないかと思います。宜しくお願いします。
◎バッチファイル(文字回転3.bat)
コピペ後、全角スペースに一括置換してください。
@REM 文字を一括回転
@echo off
REM #jww
REM #cd
REM #zz
REM #zc
REM #h3
REM #hc文字を範囲選択してください
REM #c回転角度 無指定:0/_/a
REM #c回転軸(中下)のY座標のずれ(図寸) 無指定:1mm/_/b
REM #bz
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -Ks 文字回転3.rb temp.txt %1 %2 > jwc_temp.txt
◎スクリプトファイル(文字回転3.rb)
コピペ後、全角スペースに一括置換してください。
include Math
kakudo=0;zure=1.0
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
kakudo=argument[2..-1].to_f
when /\/b/
zure=argument[2..-1].to_f
end
end
arg=kakudo*2*PI/360
puts("hd","bz")
hcw=[];hch=[];hcd=[]
while ARGF.gets
xy=split
if xy[0]=~/^hq/
elsif xy[0]=~/^hcw/
xy.each{|item|hcw< elsif xy[0]=~/^hch/
xy.each{|item|hch< elsif xy[0]=~/^hcd/
xy.each{|item|hcd< elsif xy[0]=~/^cn\d$/
cn=xy
print $_
elsif xy[0]=~/^cc\d$/
print $_
cc=xy[0]
elsif xy[0]=~/^c[hvsroptkz2]/
x=xy[1].to_f
y=xy[2].to_f
moji_x=xy[3].to_f
moji_y=xy[4].to_f
moji_l=sqrt(xy[3].to_f**2+xy[4].to_f**2)
moji_arg=atan2(xy[4].to_f,xy[3].to_f)
if $_ =~/\"/
moji=$'.chomp
end
if cn.size==1
moji_w=hcw[cn[0][2,1].to_i]
moji_h=hch[cn[0][2,1].to_i]
moji_d=hcd[cn[0][2,1].to_i]
else
moji_w=cn[1].to_f
moji_h=cn[2].to_f
moji_d=cn[3].to_f
end
if cc=="cc0"
kiten_x=x+moji_l/2*cos(moji_arg)+zure*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)-zure*cos(moji_arg)
elsif cc=="cc1"
kiten_x=x+zure*sin(moji_arg)
kiten_y=y-zure*cos(moji_arg)
elsif cc=="cc2"
kiten_x=x-moji_l/2*cos(moji_arg)+zure*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)-zure*cos(moji_arg)
elsif cc=="cc3"
kiten_x=x+moji_l/2*cos(moji_arg)+(moji_h/2+zure)*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)-(moji_h/2+zure)*cos(moji_arg)
elsif cc=="cc4"
kiten_x=x+(moji_h/2+zure)*sin(moji_arg)
kiten_y=y-(moji_h/2+zure)*cos(moji_arg)
elsif cc=="cc5"
kiten_x=x-moji_l/2*cos(moji_arg)+(moji_h/2+zure)*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)-(moji_h/2+zure)*cos(moji_arg)
elsif cc=="cc6"
kiten_x=x+moji_l/2*cos(moji_arg)+(moji_h+zure)*sin(moji_arg)
kiten_y=y+moji_l/2*sin(moji_arg)-(moji_h+zure)*cos(moji_arg)
elsif cc=="cc7"
kiten_x=x+(moji_h+zure)*sin(moji_arg)
kiten_y=y-(moji_h+zure)*cos(moji_arg)
elsif cc=="cc8"
kiten_x=x-moji_l/2*cos(moji_arg)+(moji_h+zure)*sin(moji_arg)
kiten_y=y-moji_l/2*sin(moji_arg)-(moji_h+zure)*cos(moji_arg)
end
xx=x-kiten_x
yy=y-kiten_y
l=sqrt(xx**2+yy**2)
kiten_arg=atan2(yy,xx)
x=kiten_x+l*cos(kiten_arg+arg)
y=kiten_y+l*sin(kiten_arg+arg)
moji_x=moji_l*cos(moji_arg+arg)
moji_y=moji_l*sin(moji_arg+arg)
printf("ch %.11f %.11f %.11f %.11f \"%s\n",x,y,moji_x,moji_y,moji)
else
print $_
end
end
Indexへ
(21493)← 【21495】→(21455) ------------------------ 【タイトル】Re(7):角度寸法線の文字の補正
【記事番号】 21495 (21493 )
【 日時 】07/06/05 18:58
【 発言者 】おっとー
▼コジマさん:
これは、すごい 感動した
ありがとうございます。大切に使わせていただきます。
下記 文で全角スペースとありますが、半角スペースの間違いですか?
半角スペースで動きました。
>◎バッチファイル(文字回転3.bat)
>コピペ後、全角スペースに一括置換してください。
>
>@REM 文字を一括回転
>@echo off
>REM #jww
>REM #cd
>REM #zz
>REM #zc
>REM #h3
>REM #hc文字を範囲選択してください
>REM #c回転角度 無指定:0/_/a
>REM #c回転軸(中下)のY座標のずれ(図寸) 無指定:1mm/_/b
>REM #bz
>REM #e
>copy jwc_temp.txt temp.txt > nul
>ruby -Ks 文字回転3.rb temp.txt %1 %2 > jwc_temp.txt
>
>
>◎スクリプトファイル(文字回転3.rb)
>コピペ後、全角スペースに一括置換してください。
>
>include Math
>kakudo=0;zure=1.0
>
>while ARGV.size>1
> case argument=ARGV.pop
> when /\/a/
> kakudo=argument[2..-1].to_f
> when /\/b/
> zure=argument[2..-1].to_f
> end
>end
>
>arg=kakudo*2*PI/360
>
>puts("hd","bz")
>
>hcw=[];hch=[];hcd=[]
>while ARGF.gets
> xy=split
> if xy[0]=~/^hq/
> elsif xy[0]=~/^hcw/
> xy.each{|item|hcw<> elsif xy[0]=~/^hch/
> xy.each{|item|hch<> elsif xy[0]=~/^hcd/
> xy.each{|item|hcd<> elsif xy[0]=~/^cn\d$/
> cn=xy
> print $_
> elsif xy[0]=~/^cc\d$/
> print $_
> cc=xy[0]
> elsif xy[0]=~/^c[hvsroptkz2]/
> x=xy[1].to_f
> y=xy[2].to_f
> moji_x=xy[3].to_f
> moji_y=xy[4].to_f
> moji_l=sqrt(xy[3].to_f**2+xy[4].to_f**2)
> moji_arg=atan2(xy[4].to_f,xy[3].to_f)
>
> if $_ =~/\"/
> moji=$'.chomp
> end
> if cn.size==1
> moji_w=hcw[cn[0][2,1].to_i]
> moji_h=hch[cn[0][2,1].to_i]
> moji_d=hcd[cn[0][2,1].to_i]
> else
> moji_w=cn[1].to_f
> moji_h=cn[2].to_f
> moji_d=cn[3].to_f
> end
>
> if cc=="cc0"
> kiten_x=x+moji_l/2*cos(moji_arg)+zure*sin(moji_arg)
> kiten_y=y+moji_l/2*sin(moji_arg)-zure*cos(moji_arg)
> elsif cc=="cc1"
> kiten_x=x+zure*sin(moji_arg)
> kiten_y=y-zure*cos(moji_arg)
> elsif cc=="cc2"
> kiten_x=x-moji_l/2*cos(moji_arg)+zure*sin(moji_arg)
> kiten_y=y-moji_l/2*sin(moji_arg)-zure*cos(moji_arg)
> elsif cc=="cc3"
> kiten_x=x+moji_l/2*cos(moji_arg)+(moji_h/2+zure)*sin(moji_arg)
> kiten_y=y+moji_l/2*sin(moji_arg)-(moji_h/2+zure)*cos(moji_arg)
> elsif cc=="cc4"
> kiten_x=x+(moji_h/2+zure)*sin(moji_arg)
> kiten_y=y-(moji_h/2+zure)*cos(moji_arg)
> elsif cc=="cc5"
> kiten_x=x-moji_l/2*cos(moji_arg)+(moji_h/2+zure)*sin(moji_arg)
> kiten_y=y-moji_l/2*sin(moji_arg)-(moji_h/2+zure)*cos(moji_arg)
> elsif cc=="cc6"
> kiten_x=x+moji_l/2*cos(moji_arg)+(moji_h+zure)*sin(moji_arg)
> kiten_y=y+moji_l/2*sin(moji_arg)-(moji_h+zure)*cos(moji_arg)
> elsif cc=="cc7"
> kiten_x=x+(moji_h+zure)*sin(moji_arg)
> kiten_y=y-(moji_h+zure)*cos(moji_arg)
> elsif cc=="cc8"
> kiten_x=x-moji_l/2*cos(moji_arg)+(moji_h+zure)*sin(moji_arg)
> kiten_y=y-moji_l/2*sin(moji_arg)-(moji_h+zure)*cos(moji_arg)
> end
> xx=x-kiten_x
> yy=y-kiten_y
> l=sqrt(xx**2+yy**2)
> kiten_arg=atan2(yy,xx)
>
> x=kiten_x+l*cos(kiten_arg+arg)
> y=kiten_y+l*sin(kiten_arg+arg)
> moji_x=moji_l*cos(moji_arg+arg)
> moji_y=moji_l*sin(moji_arg+arg)
>
> printf("ch %.11f %.11f %.11f %.11f \"%s\n",x,y,moji_x,moji_y,moji)
> else
> print $_
> end
>end
Indexへ
(21495)← 【21455】→(21491) ------------------------ 【タイトル】Re(1):角度寸法線の文字の補正
【記事番号】 21455 (21417 )
【 日時 】07/06/04 10:17
【 発言者 】ひでと
▼ひでさん:
kubo様、おっとー様、ありがとうございました。
現状のままで様子をみることにします。
実は以前、これを何とかしたいと外変をつくろうとして、途中で挫折しました。
機会がありましたら、最チャレンジしてみたいと思います。
Indexへ
(21455)← 【21491】→(21502) ------------------------ 【タイトル】Re(2):角度寸法線の文字の補正
【記事番号】 21491 (21455 )
【 日時 】07/06/05 16:53
【 発言者 】コジマ
細かい設定を省略すれば、以下の外変で可能です。
◎バッチファイル(角度寸法.bat)
バッチファイルにスクリプト埋め込みなので。バッチファイルのみで実行されます。
コピペ後、全角スペースを半角スペースに一括置換してください。
@REM 角度の記入
@echo off
REM #jww
REM #cd
REM #c線と文字の離れ(図寸)無指定:1mm/_/a
REM #k角度の単位|1)度(L)|2)度分秒(R)|/_/b
REM #c小数点以下有効桁 無指定:3/_/c
REM #0原点を指示してください free(L) Read(R)
REM #1引出線の始点を指示してください free(L) Read(R)
REM #2寸法線の位置を指示してください free(L) Read(R)
REM #3測定点を指示してください free(L) Read(R)
REM #99#
REM #e
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1 %2 %3 > jwc_temp.txt
exit
#!ruby -Ks
lc="lc1" #線色
pn="pn6" #点色
tuki=1.0 #引出線の突き出し寸法
include Math
hanare=1.0;keta=3
while ARGV.size>1
case argument=ARGV.pop
when /\/a/
hanare=argument[2..-1].to_f
when /\/b/
tani=argument[2..-1]
when /\/c/
keta=argument[2..-1]
end
end
sen=[];hp=[];by=[]
while ARGF.gets
xy=split
if xy[0]=~/^hs/
xy[1..-1].each{|item|by< end
if xy[0]=~/^hp/
if xy[0]=~/^hp1$/
x,y,=xy[1].to_f,xy[2].to_f
r1=hypot(x,y)
elsif xy[0]=~/^hp2$/
x,y,=xy[1].to_f,xy[2].to_f
r2=hypot(x,y)
else
hp<<[xy[1].to_f,xy[2].to_f]
end
end
if xy[0]=~/^lg/
zusun=by[xy[0][2,1].hex]
end
if xy[0]=~/^\d|^-/
xy.collect!{|item|item.to_f}
sen< end
end
puts lc,pn
0.upto(hp.size-2){|j|
x1=hp[j][0]
y1=hp[j][1]
x2=hp[j+1][0]
y2=hp[j+1][1]
arg1=atan2(y1,x1)
arg2=atan2(y2,x2)
l2=hypot(y2,x2)
x3=x1+l2*cos(arg2)
y3=y1+l2*sin(arg2)
arg1 += 2*PI if arg1<0
arg2 += 2*PI if arg2<0
arg1 -= 2*PI if arg2 arg3=atan2(y3,x3)
kakudo=(arg2-arg1)*360/(2*PI)
tyuten=arg3*360/(2*PI)
if tyuten<0
cc="cc7"
moji_arg=atan2(-y3,-x3)-PI/2
else
cc="cc1"
moji_arg=arg3-PI/2
end
puts cc
moji_x=(r2+hanare*zusun)*cos(arg3)
moji_y=(r2+hanare*zusun)*sin(arg3)
sen_x1=(r1+tuki*zusun)*cos(arg1)
sen_y1=(r1+tuki*zusun)*sin(arg1)
sen_x2=(r2+tuki*zusun)*cos(arg1)
sen_y2=(r2+tuki*zusun)*sin(arg1)
puts "z3"
printf("%.11f %.11f %.11f %.11f\n",sen_x1,sen_y1,sen_x2,sen_y2)
puts "z3"
printf("pt %.11f %.11f\n",r2*cos(arg1),r2*sin(arg1))
puts "z3"
printf("ci 0 0 #{r2} %.11f %.11f 1 0\n",arg1*360/(2*PI),arg2*360/(2*PI))
if tani == "2"
if kakudo.to_s =~ /\./
word1=$`
word=("0"+$&+$').to_f*60
else
word1=kakudo3.to_s
word=sprintf("%.#{keta}f",0)
end
if word.to_s =~ /\./
word2=$`
word=("0"+$&+$').to_f*60
else
word2=word
word=sprintf("%.#{keta}f",0)
end
if word.to_s =~ /\./
word3=sprintf("%.#{keta}f",word)
word4=$&+$' if word3=~/\./
else
word3=sprintf("%.#{keta}f",0)
word4=$&+$' if word3=~/\./
end
if word3.to_i == 60
word2 ="#{word2.to_i+1}"
word3 =sprintf("%.#{keta}f",0)
end
if word2.to_i == 60
word1 ="#{word1.to_i+1}"
word2 ="0"
end
word3=word3.to_i
puts "z3"
printf("ch %.11f %.11f %.11f %.11f \"%d°%02d'%02d%s\"\n",moji_x,moji_y,cos(moji_arg),sin(moji_arg),word1,word2,word3,word4)
else
kakudo=sprintf("%.#{keta}f",kakudo)
puts "z3"
printf("ch %.11f %.11f %.11f %.11f \"%s\n",moji_x,moji_y,cos(moji_arg),sin(moji_arg),kakudo)
end
}
arg1=atan2(hp[-1][1],hp[-1][0])
sen_x1=(r1+tuki*zusun)*cos(arg1)
sen_y1=(r1+tuki*zusun)*sin(arg1)
sen_x2=(r2+tuki*zusun)*cos(arg1)
sen_y2=(r2+tuki*zusun)*sin(arg1)
puts "z3"
printf("%.11f %.11f %.11f %.11f\n",sen_x1,sen_y1,sen_x2,sen_y2)
puts "z3"
printf("pt %.11f %.11f\n",r2*cos(arg1),r2*sin(arg1))
Indexへ
(21491)← 【21502】//(21422) ------------------------ 【タイトル】Re(3):角度寸法線の文字の補正
【記事番号】 21502 (21491 )
【 日時 】07/06/06 09:03
【 発言者 】ひでと
▼コジマさん:
>細かい設定を省略すれば、以下の外変で可能です。
本当にありがとうございました。利用させていただきます。