Jw_cad
Jw_cad 情報交換室−その3

 JWW についての情報交換の場としてお使いください
初心者の方などのご相談は Jw_cad 相談 室−その2をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください

以前の発言過去ログのページからご覧ください。


  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃  ┃ホーム  
9 / 50 ページ ←次へ | 前へ→

Re2: Re3: Re3: JW終了して3d化は・・
 外注図面屋 E-MAIL  - 14/08/16(土) 11:33 -

引用なし
パスワード
   nokoさん、こんにちは。

3dは住宅産業だと進むかもしれません。
材料から施工法からだいたい規格化されてますから。
図面とは呼べない様な図面でも作ってしまう産業なので。

対して特建モノは・・・何とも言えないです。
未だ暗中模索でしょうか。
ソフトは既にいくつか出ていますけど、普及はどうなんでしょうか? 分かりません。
OSがDOSの時代でもAUTO CADは既にあったようですが、全く普及しませんでした。
200万かかったけど従業員は全然、使えないと嘆いた社長を知ってます。

2dが普及した理由は、コンピューターがパソコンになってDOSからWIN95に変わって、
雑誌の付録CADが仕事で使えると言う、いくつかの条件が重なったからだと思います。
建築屋の特質は、前者のパソコンとWIN95の条件より、後者の雑誌の付録CADでちょっと練習したら使える操作性の2条件が重要のようです。
なんせ、ジャック・コンバートのような2,3千円のソフトですらインチキする輩が普通にいますから。
また、雑誌の付録でも、仕事で使えない、操作が難しい、のなら使わないです。
手で描いても同じ内容のものになるので、難しかったら手描きしてしまいます。

建築で3dがイマイチ進まない(と仮定)理由は、
雑誌の付録ソフトがない、2dで図面を作るより手間がかかる、の2条件に加えて、
2dでも設計、施工ともにできることです。
3dの必要性を感じないのでしょう。
施工図の躯体図なんて、符号に高さの寸法を入れるので2dありながら内容は3dになってます。
また、施工の最前線で仕事する現場員は2dですらまともに操作できる人は少ないです。

これらのハードルを一気に乗り越える条件が揃わないと民間レベルでは厳しいでしょうね。
あるいは、消費税のようにお上が3dでないと不可の法律を作るかです。
すると、皆、仕方なしに今ある3dのソフトを買うでしょう。
買えない奴や操作についていけない奴ぁ自動的に廃業、淘汰されますね。

こんなとこでしょうか (^^ゞ


-- CMN v0.61aβ --
・ツリー全体表示
<Mozilla/4.0(CMN)@202.81.80.37>

Re(1):Re3: Re3: JW終了して3d化は・・
 noko E-MAIL  - 14/08/16(土) 8:47 -

引用なし
パスワード
   私にとってこれほど恩恵を頂いたソフトウェアは他にありません。フリーソフトで申し訳がないです。

3DやBIMは片手間では出来ない移行だと思います。
Jiroさん達が退職後会社を立ち上げ専門プログラマーと一緒に有償の3D+BIMのjwwを出してもらえれば、これまでのお返しとして少し高価でも購入したいと勝手な妄想をしています。
そう思うのはJw_cadユーザーのほとんどの方の気持ちだと思います。
・ツリー全体表示
<Mozilla/5.0 (Linux; Android 4.4.2; SC-01F Build/KOT49H) AppleWebKit/537.36 (KH...@49.98.51.13>

Re2: Re2: jww7.11+windows8.1で作図範囲が自動で...
 外注図面屋 E-MAIL  - 14/08/16(土) 8:41 -

引用なし
パスワード
   nokoさん、こんにちは。

相性ではなく、基本2枚一組と考えてください。
同じ銘柄2枚を一組にしてデュアルチャンネルを構成しますので。


-- CMN v0.61aβ --
・ツリー全体表示
<Mozilla/4.0(CMN)@202.81.80.37>

着色
 小倉 E-MAIL  - 14/08/15(金) 17:37 -

引用なし
パスワード
   図形に着色出来るようですが方法が分かりません。
ご存知の方教えて下さい。
・ツリー全体表示
<Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0)@121.113.159.166>

Re(1):Re2: jww7.11+windows8.1で作図範囲が自動で...
 noko E-MAIL  - 14/08/15(金) 15:17 -

引用なし
パスワード
   ▼外注図面屋さん:
>nokoさん、こんにちは。
>
>メモリーの銘柄が2枚は同じで、3枚目4枚目が違ってませんか?
>
>-- CMN v0.61aβ --

確かに違ってます。相性の問題で全て同じメーカーだと直るのかもしれません。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@115.30.245.190>

Re(3):天空率
 深山 秀明 WEB  - 14/08/06(水) 11:18 -

引用なし
パスワード
   エムワイさん へ

出来ましたかぁ〜、良かったですね。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko@125.54.85.3>

Re(2):天空率
 エムワイ  - 14/08/06(水) 10:30 -

引用なし
パスワード
   ▼深山 秀明さん:
>エムワイさんへ
>
>正射影→測定点指示→コントロールバーの、天空率計算、高精度計算、
>
>射影面積表示の欄にチェックが入ってますか ??
>
>外していたら、ごめんなさい。

深山様
ありがとうございます、OKでした
勉強不足ですね
助かりました
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko@223.134.5.59>

Re(1):天空率
 深山 秀明 WEB  - 14/08/05(火) 16:46 -

引用なし
パスワード
   エムワイさんへ

正射影→測定点指示→コントロールバーの、天空率計算、高精度計算、

射影面積表示の欄にチェックが入ってますか ??

外していたら、ごめんなさい。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko@125.54.85.3>

Re2: jww7.11+windows8.1で作図範囲が自動で固定さ...
 外注図面屋 E-MAIL  - 14/08/05(火) 13:41 -

引用なし
パスワード
   nokoさん、こんにちは。

メモリーの銘柄が2枚は同じで、3枚目4枚目が違ってませんか?

-- CMN v0.61aβ --
・ツリー全体表示
<Mozilla/4.0(CMN)@202.81.80.37>

Re(1): 天空率
 エムワイ  - 14/08/05(火) 13:24 -

引用なし
パスワード
   ▼Tackさん:
>▼ エムワイさん
>
>  私は Windows8.1pro(64)で使ってますが、計算・作図とも問題ないですよ。
>  使用環境等を詳しく書かれたらどうでしょうか。
Tackさん
ありがとうございます、使用環境等とは?どのようなところを見れば?
よいでしょうか?
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko@223.134.5.59>

Re(2):jww7.11+windows8.1で作図範囲が自動で固定...
 noko E-MAIL  - 14/08/05(火) 9:11 -

引用なし
パスワード
   ▼kさん:
>>3分に一度作図範囲が固定されます。そのたび解除してます。
>
>作図範囲が固定という現象がイメージできないのでエスパーだが
>自動保存の間隔が3分になっていて、データ量の大きい図面を
>弄ってると 自動保存してるときに画面が固まったようになる現象、、
>ではないだろうか。
>もしそうなら対症療法として保存間隔を広くすれば解消されるが。
>あと、パソコンのリセットとjwwとの関係はないと思う。
>自分はその組み合わせで問題なく使ってるので。

ありがとうございます。ご提案の方法で使用してみます。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@115.30.245.190>

Re(2):jww7.11+windows8.1で作図範囲が自動で固定...
 noko E-MAIL  - 14/08/05(火) 9:10 -

引用なし
パスワード
   ▼Pさん:
>▼nokoさん:
>>何かやらかしたのでしょうか?。
>>
>>3分に一度作図範囲が固定されます。そのたび解除してます。
>>メモリーを4GBを3枚指すと頻繁にパソコンがリセットされます。windows8.1、64Bitが問題なのでしょうか?。
>>
>>cpu i7 4770
>>メモリー DDR3 4GB×3
>>windows8.1 64bit
>
>3分に一度作図範囲が固定されるという現象の原因は分かりませんが、頻繁にパソコンがリセット(再起動という意味でしょうか?)されるというのは、マザーボートとメモリーの相性が悪いかメモリーが壊れているかじゃないですか?
>どんなPCを使っているのか分かりませんが、購入元に相談した方が解決するのが早いと思います。
>
>パーツ自体に問題が無いのであれば、OSの再インストールした方が良いかもしれません。


JWWのみの現象です。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@115.30.245.190>

Re(1): jww7.11+windows8.1で作図範囲が自動で固定...
 noko E-MAIL  - 14/08/05(火) 9:09 -

引用なし
パスワード
   ▼外注図面屋さん:
>nokoさん、こんにちは。
>
>4ギガ2枚にしてみてはどうでしょう?
>
>
>-- CMN v0.61aβ --

はい4ギガ2枚ではリセットされません。現在4ギガ4枚から3枚にしても改善されず
4ギガ2枚でリセットは回避されました。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@115.30.245.190>

Re: 天空率
 Tack E-MAIL  - 14/08/05(火) 1:43 -

引用なし
パスワード
   ▼ エムワイさん

  私は Windows8.1pro(64)で使ってますが、計算・作図とも問題ないですよ。
  使用環境等を詳しく書かれたらどうでしょうか。
・ツリー全体表示
<Mozilla/4.0(CMN)@124.26.58.34>

天空率
 エムワイ  - 14/08/04(月) 13:25 -

引用なし
パスワード
   はじめまして、w8.1で天空率の計算ができません。
正射影(天空率)作図はするのですが、
計算結果が出ず、少し作図が雑です
どなたか、教えてください・よろしくお願いします
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko@223.134.5.59>

出来ました。有難うございます。
 oyaji  - 14/08/03(日) 14:00 -

引用なし
パスワード
   ▼R.Nさん:大変お世話になってます。
私のミスでした。 前回にいただいたものをフォルダ-名だけを変更し、大事に大事に残していた為 動作しませんでした。あまりにも お恥ずかしいミスでした。
R.Nさん kojimaさん お手数をお掛けしました。有難うございました。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko@210.250.86.168>

Re(1):未実行となります。円累進寸法1.rbその2
 R.N E-MAIL  - 14/08/03(日) 11:12 -

引用なし
パスワード
   ▼oyajiさん:

kojimaさんが下さったスクリプトと、比較してみたのですが、修正もできているようですので、それで動作しないのが不思議ですね。

でしたら、
円累進寸法.batをメモ帳などで開いて、
:pause
の":"を削除して ⇒ pause だけにして保存し、再度、実行してみて下さい。

すると、設定ダイアログ表示後、"設定完了"ボタンを押すと、DOS窓が一時停止しますので、そのDOS窓を表示させて、"エラー"記述を確認し、その内容をレスして下さい。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.0; rv:31.0) Gecko/20100101 Firefox/31.0@59.85.28.10>

未実行となります。円累進寸法1.rbその2
 oyaji  - 14/08/03(日) 10:13 -

引用なし
パスワード
   ▼R.Nさん:お世話になってます
円累進寸法1.rbその2


 puts $ly,$lc,"lt1",$tenc,"cc3",$moji
hp=[];by=[]
while ARGF.gets
  xy =split
  if xy[0] =~ /^hs/
    xy[1..-1].each{|item|by<<item.to_i}
  end
  if xy[0] =~ /^lg/
    lg=xy[0][2,1]
    zusun=by[lg.hex]
  end
  if xy[0] =~ /^hp/
    hp<<[xy[1].to_f,xy[2].to_f]
  end
  if xy[0] =~ /^ci/
    xy.collect!{|item|item.to_f}
    if xy.size==4
      xy[4],xy[5],xy[6],xy[7]=0,360,1,0
    end
    x,y,r,hen=xy[1],xy[2],xy[3],xy[6]
    ziku_arg=xy[7]*2*PI/360

    kiten_x=hp[1][0]-x #寸法円作図位置指示点のx長
     kiten_y=hp[1][1]-y #寸法円作図位置指示点のy長
     kiten_xy=sqrt(kiten_x**2+kiten_y**2) #寸法円作図位置指示点までの距離
     arg=atan2(kiten_y,kiten_x) #実際の角度
     henkaku=arg-ziku_arg #実際の角度から軸角を引く

    #寸法円作図位置指示点を通る延長線のx座標
     kisen_x=hp[1][0]+kiten_xy*cos(arg)
    #寸法円作図位置指示点を通る延長線のy座標
     kisen_y=hp[1][1]+kiten_xy*sin(arg)

    #↓円の中心から寸法記入位置指示点までの直線と円の交点の座標値を出す
    zahyo=sen_en_zahyo([x,y,kisen_x,kisen_y],xy)
    #寸法円と対象円の半径の差
     d_r=hypot(hp[1][1]-zahyo[0][1],hp[1][0]-zahyo[0][0])

    l1=hypot(hp[1][1]-y,hp[1][0]-x) #寸法円作図位置までの距離
     l2=hypot(zahyo[0][1]-y,zahyo[0][0]-x) #寸法円作図位置までの距離
     d_r = -1*d_r if l1<l2 #寸法円作図位置が内側の場合は-値とする
    r2=r+d_r

    hen2=(r*hen+d_r)/r2 #寸法円の扁平率
     kiten_x=hp[2][0]-x #寸法起点のx長
     kiten_y=hp[2][1]-y #寸法起点のy長
     kiten_xy=sqrt(kiten_x**2+kiten_y**2) #中心から寸法起点までの距離
     arg=atan2(kiten_y,kiten_x) #寸法起点の実角度
     henkaku=arg-ziku_arg #寸法起点の実角度から軸角を引く
    #↓寸法起点の補正角度
     kiten_kakudo=atan2(kiten_xy*sin(henkaku)/hen,kiten_xy*cos(henkaku))

    $tuki = -1*$tuki if r2<r #寸法円作図位置が内側の場合は-値とする
        $cl = -1*$cl if r2<r #寸法円作図位置が内側の場合は-値とする
    kisen_x=hp[2][0]+kiten_xy*cos(arg) #中心から寸法起点を通る延長線のx座標
     kisen_y=hp[2][1]+kiten_xy*sin(arg) #中心から寸法起点を通る延長線のy座標
     sun_en=[0,x,y,r2,xy[4],xy[5],hen2,xy[7]]#寸法円
     #↓中心から寸法起点までの直線と寸法円の交点の座標値をだす
    zahyo=sen_en_zahyo([x,y,kisen_x,kisen_y],sun_en)
    x1,y1=zahyo[0] #寸法起点の座標値
     arg=atan2(y1-y,x1-x) #寸法点位置(起点)の角度
     l=hypot(y1-y,x1-x) #寸法点位置(起点)までの距離
     henkaku=arg-ziku_arg #寸法点位置(起点)の角度から軸角を引く
    hosei_x=l*cos(henkaku) #寸法点位置(起点)のx長
     hosei_y=l*sin(henkaku) #寸法点位置(起点)のy長
     hosei_y2=hosei_y/hen2 #寸法点位置(起点)の補正y長(扁平率分を足す)
    hosei_arg=atan2(hosei_y2,hosei_x) #寸法点位置(起点)の補正角度

     enkotyo=0;kakudo1=hosei_arg
    2.upto(hp.size-1){|i|
      x1=hp[i][0]-x #寸法指示点のx長
       y1=hp[i][1]-y #寸法指示点のy長
       xy1=sqrt(x1**2+y1**2) #中心から寸法指示点までの距離
       henkaku=atan2(y1,x1)-ziku_arg
      #↓補正角度
       kakudo=atan2(xy1*sin(henkaku)/hen,xy1*cos(henkaku))
      kakudo += 2*PI if kakudo<=kiten_kakudo
      enkotyo=entyo(xy,kiten_kakudo,kakudo) #寸法値の算出

       arg=atan2(y1,x1)#寸法指示点の実角度
       kisen_x=hp[i][0]+xy1*cos(arg) #寸法指示点を通る延長線のx座標
       kisen_y=hp[i][1]+xy1*sin(arg) #寸法指示点を通る延長線のy座標

       #↓寸法指示点を通る延長線と円の交点座標を出す
      zahyo1=sen_en_zahyo([x,y,kisen_x,kisen_y],xy)
      #↓寸法指示点を通る延長線と寸法円の交点座標を出す
      zahyo2=sen_en_zahyo([x,y,kisen_x,kisen_y],[0,x,y,r2,xy[4],xy[5],hen2,xy[7]])
      x1,y1=zahyo1[0] #寸法指示点を通る延長線と円の交点座標値
       x2,y2=zahyo2[0] #寸法指示点を通る延長線と寸法円の交点座標値

       arg2=atan2(y2-y1,x2-x1) #円の交点と寸法円の交点を結ぶ直線の角度
       r1_1=r+$cl*zusun #引出線の始点範囲円の長径
       r1_2=r*hen+$cl*zusun #引出線の始点範囲円の短径
       hen1=r1_2/r1_1 #引出線の始点範囲円の扁平率

       #↓寸法指示点を通る延長線と引出線の始点範囲円の交点座標を出す
      zahyo1=sen_en_zahyo([x,y,kisen_x,kisen_y],[0,x,y,r+$cl*zusun,xy[4],xy[5],hen1,xy[7]])
      r2_1=r2+$tuki*zusun #引出線の終点範囲円の長径
       r2_2=r2*hen2+$tuki*zusun #引出線の終点範囲円の短径
       hen2_2=r2_2/r2_1 #引出線の終点範囲円の扁平率
       #↓寸法指示点を通る延長線と引出線の終点範囲円の交点座標を出す
      zahyo2=sen_en_zahyo([x,y,kisen_x,kisen_y],[0,x,y,r2_1,xy[4],xy[5],hen2_2,xy[7]])
      x1_2,y1_2=zahyo1[0] #引出線の始点座標
       x2_2,y2_2=zahyo2[0] #引出線の終点座標
       puts "z3"
      sen(x1_2,y1_2,x2_2,y2_2) #引出線の作図

       arg=atan2(y2-y,x2-x) #寸法円の終点角度
       l=hypot(y2-y,x2-x) #寸法円の終点までの距離
       henkaku=arg-ziku_arg #寸法円の終点角度から軸角を引く
      hosei_x=l*cos(henkaku) #寸法円終点のx長
       hosei_y=l*sin(henkaku) #寸法円終点のy長
       hosei_y2=hosei_y/hen2 #寸法円終点の補正y長(扁平率分を足す)

      hosei_kakudo=atan2(hosei_y2,hosei_x)*360/(2*PI) #寸法円の補正終点角度
       hosei_kakudo1=kakudo1*360/(2*PI) #寸法円の始点角度(°)

      puts "z3"
      printf("ci %.11f %.11f %.11f %f %f %f %f\n",x,y,r2,hosei_kakudo1,hosei_kakudo,hen2,xy[7]) if i>2#寸法円の作図

       puts "z3"
      printf("pt %.11f %.11f\n",x2,y2) #寸法点の作図

       $tani=="1" ? moji=ika(enkotyo/1000) : moji=ika(enkotyo).to_s
      moji=keta_kugiri(moji) if $kugiri=="1"
      if $hyouzi=="1"
         $tani=="1" ? moji=moji+"m" : moji=moji+"mm"
      end

      puts "z3"
      printf("ch %f %f %f %f \"%s\n",x2_2+$hanare*zusun*cos(arg2),y2_2+$hanare*zusun*sin(arg2),cos(arg2),sin(arg2),moji) if i>2#寸法値の記入
       kakudo1=atan2(hosei_y2,hosei_x)
    }
  end
end

・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko@210.250.86.168>

未実行となります。円累進寸法1.rbその1
 oyaji  - 14/08/03(日) 10:11 -

引用なし
パスワード
   ▼R.Nさん:お世話になってます
円累進寸法1.rbその1
require 'vr/vruby'
require 'vr/vrcontrol'
module Frm_form1
def _form1_init
 $_form1_fonts=[
  @screen.factory.newfont('MS ゴシック',-16,0,4,0,0,0,49,128)
 ]
 self.caption = '属性設定'
 self.move(326,150,327,450)
 addControl(VRStatic,'static1',"作図レイヤ",80,10,128,24,1342177282)
 addControl(VRStatic,'static2',"作図線色",88,42,120,24,1342177282)
 addControl(VRStatic,'static3',"引出線の突出寸法(図寸)",16,74,192,24,1342177282)
 addControl(VRStatic,'static4',"点色",16,106,184,24,1342177282)
 addControl(VRStatic,'static5',"文字と線の離れ(図寸)",16,138,192,24,1342177282)
 addControl(VRStatic,'static6',"書込文字種",16,170,192,24,1342177282)
 addControl(VRStatic,'static7',"小数点以下有効桁数",16,202,192,24,1342177282)
 addControl(VRStatic,'static8',"寸法単位 mm:0 m:1",16,234,192,24,1342177282)
 addControl(VRStatic,'static9',"引出線と指示点の離れ(図寸)",0,266,230,24,1342177282)

 addControl(VREdit,'edit1',"a",224,10,64,24,1342177408)
 addControl(VREdit,'edit2',"1",224,42,64,24,1342177408)
 addControl(VREdit,'edit3',"1",224,74,64,24,1342177408)
 addControl(VREdit,'edit4',"6",224,106,64,24,1342177408)
 addControl(VREdit,'edit5',"1",224,138,64,24,1342177408)
 addControl(VREdit,'edit6',"3",224,170,64,24,1342177408)
 addControl(VREdit,'edit7',"2",224,202,64,24,1342177408)
 addControl(VREdit,'edit8',"0",224,234,64,24,1342177408)
 addControl(VREdit,'edit9',"0",224,266,64,24,1342177408)
  addControl(VRCheckbox,'checkBox1',"3桁ごとの区切りを入れる",70,315,224,24,1342177283)
  addControl(VRCheckbox,'checkBox2',"単位を表示",70,340,224,24,1342177283)
 addControl(VRButton,'button1',"設定完了",32,370,264,32,1342177280)
 @button1.setFont($_form1_fonts[0])
  $static=[@static1,@static2,@static3,@static4,@static5,@static6,@static7,@static8]
  $static.each{|item|item.setFont($_form1_fonts[0])}
  $edit=[@edit1,@edit2,@edit3,@edit4,@edit5,@edit6,@edit7,@edit8,@edit9]
  $edit.each{|item|item.setFont($_form1_fonts[0])}
  date=[]
  begin
    open("属性設定.txt","r"){|f|
      while line=f.gets
        date<<line.chop
      end}
    0.upto(date.size-3){|i|$edit[i].text=date[i]}
    @checkBox1.check(1) if date[date.size-2] && date[date.size-2]=="1"
    @checkBox2.check(1) if date[date.size-1] && date[date.size-1]=="1"
  rescue
  end
end
  def construct
    _form1_init
  end
  def button1_clicked
    $moji="cn"+@edit6.text
    $ly="ly"+@edit1.text
    $lc="lc"+@edit2.text
    $tuki=@edit3.text.to_f
    $tenc="pn"+@edit4.text
    $hanare=@edit5.text.to_f
    $keta=@edit7.text
    $tani=@edit8.text
    $cl=@edit9.text.to_f
    @checkBox1.checked? ? $kugiri="1" : $kugiri="0"
    @checkBox2.checked? ? $hyouzi="1" : $hyouzi="0"

    open("属性設定.txt","w"){|f|
    $edit.each{|item|f.puts item.text}
    f.puts $kugiri;f.puts $hyouzi
}
    close
  end
end
VRLocalScreen.start Frm_form1
include Math
#小数点以下3桁にして返す
def ika(x)
  keta=$keta.to_i
  a=((x.to_f)*10**keta).round/(10**keta).to_f
  if a.to_s=~/\.0$/;a=a.to_i;end;return a.to_s
end
#線の作図
def sen(x1,y1,x2,y2)
  printf("%.11f %.11f %.11f %.11f\n",x1,y1,x2,y2)
end
#円弧長を返す
def entyo(en,si_arg,syu_arg)
  x,y,r,hen=en[1],en[2],en[3],en[6]
  if hen==1
    l=r*(syu_arg-si_arg)
  else
    l=0;arg=si_arg;d_arg=0.1*2*PI/360
    while(syu_arg>=arg+d_arg)
      x1=x+r*cos(arg)
      y1=y+r*sin(arg)*hen
      x2=x+r*cos(arg+d_arg)
      y2=y+r*sin(arg+d_arg)*hen
      l += sqrt((y2-y1)**2+(x2-x1)**2)
      arg += d_arg
    end
    x1=x+r*cos(arg)
    y1=y+r*sin(arg)*hen
    x2=x+r*cos(syu_arg)
    y2=y+r*sin(syu_arg)*hen
    l += sqrt((y2-y1)**2+(x2-x1)**2)
  end
  return l
end
#sを3桁毎に,で区切る
def keta_kugiri(s)
  if s=~/\./ or s=~/./
    moji=$`
    ika1=$&+$'
  else
    moji=s
    ika1=""
  end
  a=moji.split('');a.reverse!;n=0;b=[]
  if a[0].size==1
    a.each{|item|n!=0 && n%3==0 ? b<<(item+"\,"):b<<(item);n+=1}
  else
    a.each{|item|n!=0 && n%3==0 ? b<<(item+","):b<<(item);n+=1}
  end
  return(b.reverse.join+ika1)
end
#線と円の交点角度の配列を返す
def sen_en_kakudo(sen,en)
  kakudo=[]

  if en.size==4
    x=en[1]
    y=en[2]
    r=en[3]
    en[4]=0
    en[5]=0
    en[6]=1
    en[7]=0
  else
    x=en[1]
    y=en[2]
    r=en[3]
  end

  hen=en[6]
  ziku=en[7]
  ziku_arg=ziku*2*PI/360

  sen_x=sen[2]-sen[0]
  sen_y=sen[3]-sen[1]
  sen_kakudo1=atan2(sen_y,sen_x)

  en_x1=x-sen[0]
  en_y1=y-sen[1]
  en_x2=sen[2]-x
  en_y2=sen[3]-y
  en_xy1=sqrt(en_x1**2+en_y1**2)
  en_xy2=sqrt(en_x2**2+en_y2**2)
  en_kakudo1=atan2(en_y1,en_x1)
  en_kakudo2=atan2(en_y2,en_x2)

  sen_x1=x-en_xy1*cos(en_kakudo1-ziku_arg)
  sen_y1=y-en_xy1*sin(en_kakudo1-ziku_arg)/hen
  sen_x2=x+en_xy2*cos(en_kakudo2-ziku_arg)
  sen_y2=y+en_xy2*sin(en_kakudo2-ziku_arg)/hen

  if sen_x1>sen_x2
    sen_x1,sen_x2=sen_x2,sen_x1
    sen_y1,sen_y2=sen_y2,sen_y1
  elsif sen_x1==sen_x2
    if sen_y1>sen_y2
      sen_y1,sen_y2=sen_y2,sen_y1
    end
  end

  senx=(sen_x2-sen_x1)
  seny=(sen_y2-sen_y1)
  sen_kakudo2=atan2(seny,senx)

  en_kakudo2_1=atan2((y-sen_y1),x-sen_x1)
  en_xy2_1=sqrt((y-sen_y1)**2+(x-sen_x1)**2)
  en_xy2_2=sqrt((sen_y2-y)**2+(sen_x2-x)**2)
  henkaku=sen_kakudo2-en_kakudo2_1
  y1=en_xy2_1*sin(henkaku)

  if r>y1.abs

    x1=sqrt(r**2-y1**2)
    kakudo1=atan2(y1,-x1)
    kakudo2=atan2(y1,x1)

    if en_xy2_1>r && (sen_x1<en[1]+r*
      cos(kakudo1+sen_kakudo2) &&sen_x2>en[1]+r*
      cos(kakudo1+sen_kakudo2) or
      sen_y1<en[2]+r*
      sin(kakudo1+sen_kakudo2) &&sen_y2>en[2]+r*
      sin(kakudo1+sen_kakudo2))

      kakudo<<(kakudo1+sen_kakudo2)*360/(2*PI)
    end

    if en_xy2_2>r && (sen_x2>en[1]+r*
      cos(kakudo2+sen_kakudo2) &&sen_x1<en[1]+r*
      cos(kakudo2+sen_kakudo2) or
      sen_y2>en[2]+r*
      sin(kakudo2+sen_kakudo2) &&
      sen_y1<en[2]+r*sin(kakudo2+sen_kakudo2))

      kakudo<<(kakudo2+sen_kakudo2)*360/(2*PI)
    end
  end

  if kakudo.size!=0

    kakudo.collect!{|item|if item<0
            360+item
          else
            item
          end}

    kakudo.delete_if{|item|if en[4]+en[7]<en[5]+en[7]
            en[4]+en[7]>item && en[5]+en[7]>item or
            en[4]+en[7]<item && en[5]+en[7]<item
          elsif en[4]+en[7]>en[5]+en[7]
            en[4]+en[7]>item && en[5]+en[7]<item
          end}

    return kakudo
  end
end

#線と円の交点座標の配列を返す(扁平率・軸角考慮)
def sen_en_zahyo(sen,en)

  zahyo=[]

  if en.size==4
    x=en[1]
    y=en[2]
    r=en[3]
    en[4]=0
    en[5]=0
    en[6]=1
    en[7]=0
  else
    x=en[1]
    y=en[2]
    r=en[3]
    en[4]=0
    en[5]=0
  end
  hen=en[6]
  ziku=en[7]

  kakudo=sen_en_kakudo(sen,en)

  if kakudo
    kakudo.each{|item| rajian=item*2*PI/360
      ziku_arg=ziku*2*PI/360
      ax=r*cos(rajian)
      ay=r*sin(rajian)*hen
      axy=sqrt(ax**2+ay**2)
      arg=atan2(ay,ax)

      axt=x+axy*cos(arg+ziku_arg)
      ayt=y+axy*sin(arg+ziku_arg)
      zahyo<<[axt,ayt]
    }
  end

  return zahyo
end
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko@210.250.86.168>

未実行となります。円累進寸法2.rb
 oyaji  - 14/08/03(日) 10:08 -

引用なし
パスワード
   ▼R.Nさん:お世話になってます。
R.Nさんは出来たのですね。私の書き換えがうまくいってないという事ですね。
分割して投稿させていただきます。どこが悪いのかご教授お願いします。
円累進寸法2.rb
require 'vr/vruby'
require 'vr/vrcontrol'
module Frm_form1
def _form1_init
 $_form1_fonts=[
  @screen.factory.newfont('MS ゴシック',-16,0,4,0,0,0,49,128)
 ]
 self.caption = '属性設定'
 self.move(326,150,327,450)
 addControl(VRStatic,'static1',"作図レイヤ",80,10,128,24,1342177282)
 addControl(VRStatic,'static2',"作図線色",88,42,120,24,1342177282)
 addControl(VRStatic,'static3',"引出線の突出寸法(図寸)",16,74,192,24,1342177282)
 addControl(VRStatic,'static4',"点色",16,106,184,24,1342177282)
 addControl(VRStatic,'static5',"文字と線の離れ(図寸)",16,138,192,24,1342177282)
 addControl(VRStatic,'static6',"書込文字種",16,170,192,24,1342177282)
 addControl(VRStatic,'static7',"小数点以下有効桁数",16,202,192,24,1342177282)
 addControl(VRStatic,'static8',"寸法単位 mm:0 m:1",16,234,192,24,1342177282)
 addControl(VRStatic,'static9',"引出線と指示点の離れ(図寸)",0,266,230,24,1342177282)

 addControl(VREdit,'edit1',"a",224,10,64,24,1342177408)
 addControl(VREdit,'edit2',"1",224,42,64,24,1342177408)
 addControl(VREdit,'edit3',"1",224,74,64,24,1342177408)
 addControl(VREdit,'edit4',"6",224,106,64,24,1342177408)
 addControl(VREdit,'edit5',"1",224,138,64,24,1342177408)
 addControl(VREdit,'edit6',"3",224,170,64,24,1342177408)
 addControl(VREdit,'edit7',"2",224,202,64,24,1342177408)
 addControl(VREdit,'edit8',"0",224,234,64,24,1342177408)
 addControl(VREdit,'edit9',"0",224,266,64,24,1342177408)
 addControl(VRCheckbox,'checkBox1',"3桁ごとの区切りを入れる",70,315,224,24,1342177283)
 addControl(VRCheckbox,'checkBox2',"単位を表示",70,340,224,24,1342177283)
 addControl(VRButton,'button1',"設定完了",32,370,264,32,1342177280)
 @button1.setFont($_form1_fonts[0])
  $static=[@static1,@static2,@static3,@static4,@static5,@static6,@static7,@static8]
  $static.each{|item|item.setFont($_form1_fonts[0])}
  $edit=[@edit1,@edit2,@edit3,@edit4,@edit5,@edit6,@edit7,@edit8,@edit9]
  $edit.each{|item|item.setFont($_form1_fonts[0])}
  date=[]
  begin
    open("属性設定.txt","r"){|f|
      while line=f.gets
        date<<line.chop
      end}
    0.upto(date.size-3){|i|$edit[i].text=date[i]}
    @checkBox1.check(1) if date[date.size-2] && date[date.size-2]=="1"
    @checkBox2.check(1) if date[date.size-1] && date[date.size-1]=="1"
  rescue
  end
end
  def construct
    _form1_init
  end
  def button1_clicked
    $moji="cn"+@edit6.text
    $ly="ly"+@edit1.text
    $lc="lc"+@edit2.text
    $tuki=@edit3.text.to_f
    $tenc="pn"+@edit4.text
    $hanare=@edit5.text.to_f
    $keta=@edit7.text
    $tani=@edit8.text
    $cl=@edit9.text.to_f
    @checkBox1.checked? ? $kugiri="1" : $kugiri="0"
    @checkBox2.checked? ? $hyouzi="1" : $hyouzi="0"

    open("属性設定.txt","w"){|f|
    $edit.each{|item|f.puts item.text}
    f.puts $kugiri;f.puts $hyouzi
}
    close
  end
end
VRLocalScreen.start Frm_form1
include Math
def ika(x)
  keta=$keta.to_i
  a=((x.to_f)*10**keta).round/(10**keta).to_f
  if a.to_s=~/\.0$/;a=a.to_i;end;return a.to_s
end
def sen(x1,y1,x2,y2)
  printf("%.11f %.11f %.11f %.11f\n",x1,y1,x2,y2)
end
def entyo(en,si_arg,syu_arg)
  x,y,r,hen=en[1],en[2],en[3],en[6]
  if hen.to_f==1
    enko_kaku=2*PI-(syu_arg-si_arg)
    enko_kaku += 2*PI if enko_kaku==0
    l=r*enko_kaku
  else
    if syu_arg>si_arg
      if (syu_arg-si_arg).abs == 2*PI
        syu_arg=si_arg-2*PI
      else
        syu_arg -= 2*PI
      end
    end
    l=0;arg=syu_arg;d_arg=0.1*2*PI/360
    while(si_arg>=arg+d_arg)
      x1=x+r*cos(arg)
      y1=y+r*sin(arg)*hen
      x2=x+r*cos(arg+d_arg)
      y2=y+r*sin(arg+d_arg)*hen
      l += sqrt((y2-y1)**2+(x2-x1)**2)
      arg += d_arg
    end
    x1=x+r*cos(arg)
    y1=y+r*sin(arg)*hen
    x2=x+r*cos(si_arg)
    y2=y+r*sin(si_arg)*hen
    l += sqrt((y2-y1)**2+(x2-x1)**2)
  end
  return l
end
def keta_kugiri(s)
  if s=~/\./ or s=~/./
    moji=$`
    ika1=$&+$'
  else
    moji=s
    ika1=""
  end
  a=moji.split('');a.reverse!;n=0;b=[]
  if a[0].size==1
    a.each{|item|n!=0 && n%3==0 ? b<<(item+"\,"):b<<(item);n+=1}
  else
    a.each{|item|n!=0 && n%3==0 ? b<<(item+","):b<<(item);n+=1}
  end
  return(b.reverse.join+ika1)
end
puts $ly,$lc,"lt1",$tenc,"cc3",$moji
hp=[];by=[]
while ARGF.gets
  xy =split
  if xy[0] =~ /^hs/
    xy[1..-1].each{|item|by<<item.to_i}
  end
  if xy[0] =~ /^lg/
    lg=xy[0][2,1]
    zusun=by[lg.hex]
  end
  if xy[0] =~ /^hp/
    hp<<[xy[1].to_f,xy[2].to_f]
  end
  if xy[0] =~ /^ci/
    xy.collect!{|item|item.to_f}
    if xy.size==4
      xy[4],xy[5],xy[6],xy[7]=0,360,1,0
    end
    x,y,r,hen=xy[1],xy[2],xy[3],xy[6]
    ziku_arg=xy[7]*2*PI/360
    r2x=hp[1][0]-x
    r2y=hp[1][1]-y
    r2xy=sqrt(r2y**2+r2x**2)
    henkaku=atan2(r2y,r2x)-ziku_arg
    r2=sqrt((r2xy*cos(henkaku))**2+(r2xy*sin(henkaku)/hen)**2)
    d_r=r2-r
    hen2=(r*hen+d_r)/r2
    kiten_x=hp[2][0]-xy[1]
    kiten_y=hp[2][1]-xy[2]
    kiten_xy=sqrt(kiten_x**2+kiten_y**2)
    henkaku=atan2(kiten_y,kiten_x)-ziku_arg
    kiten_kakudo=atan2(kiten_xy*sin(henkaku)/hen,kiten_xy*cos(henkaku))
    r_x=(r+$hanare*zusun)*cos(kiten_kakudo)
    r_y=(r+$hanare*zusun)*sin(kiten_kakudo)*hen
    r_l=sqrt(r_x**2+r_y**2)
    arg=atan2(r_y,r_x)
    enkotyo=0;kakudo1=kiten_kakudo
    2.upto(hp.size-1){|i|
      x1=hp[i][0]-xy[1]
      y1=hp[i][1]-xy[2]
      xy1=sqrt(x1**2+y1**2)
      henkaku=atan2(y1,x1)-ziku_arg
      kakudo=atan2(xy1*sin(henkaku)/hen,xy1*cos(henkaku))
      kakudo += 2*PI if kakudo<=kiten_kakudo
      enkotyo=entyo(xy,kiten_kakudo,kakudo)
      r_x=(r)*cos(kakudo)
      r_y=(r)*sin(kakudo)*hen
      r_l=sqrt(r_x**2+r_y**2)
      arg=atan2(r_y,r_x)
      r_x2=(r2)*cos(kakudo)
      r_y2=(r2)*sin(kakudo)*hen2
      r_l2=sqrt(r_x2**2+r_y2**2)
      arg2=atan2(r_y2,r_x2)
      x1=x+r_l*cos(arg+ziku_arg)
      y1=y+r_l*sin(arg+ziku_arg)
      x2=x+r_l2*cos(arg2+ziku_arg)
      y2=y+r_l2*sin(arg2+ziku_arg)
      arg2=atan2(y2-y1,x2-x1)
      x1_2=x1+$cl*zusun*cos(arg2)
      y1_2=y1+$cl*zusun*sin(arg2)
      x2_2=x2+$tuki*zusun*cos(arg2)
      y2_2=y2+$tuki*zusun*sin(arg2)
      $tani=="1" ? moji=ika(enkotyo/1000) : moji=ika(enkotyo).to_s
      moji=keta_kugiri(moji) if $kugiri=="1"
      if $hyouzi=="1"
         $tani=="1" ? moji=moji+"m" : moji=moji+"mm"
      end
      if (r2-r).abs>$tuki*zusun
        puts "z3"
        printf("ci %.11f %.11f %.11f %f %f %f %f\n",x,y,r2,kakudo*360/(2*PI),kakudo1*360/(2*PI),hen2,xy[7]) if i>2
        puts "z3"
        sen(x1_2,y1_2,x2_2,y2_2)
        puts "z3"
        printf("pt %.11f %.11f\n",x2,y2)
      end
      puts "z3"
      printf("ch %f %f %f %f \"%s\n",x2_2+$hanare*zusun*cos(arg2),y2_2+$hanare*zusun*sin(arg2),cos(arg2),sin(arg2),moji) if i>2
      kakudo1=kakudo
    }
  end
end
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko@210.250.86.168>

  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃  ┃ホーム  
9 / 50 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:   
468503
(SS)C-BOARD v3.8 is Free
Jw_cad Copyright (C)1997-2009 Jiro Shimizu & Yoshifumi Tanaka