Indexへ
(13862)//【13863】→(13864)
------------------------
【タイトル】自動でLGS作図する外部変形
【記事番号】 13863 (*)
【 日時 】08/09/26 14:26
【 発言者 】LILI

VISTAの環境で、自動でLGS作図する外部変形があれば、教えてください。探して入れてみてもうまく動きません。(http://officehikari.art-studio.cc/data-1.htm)一部分の作図しかしません。バッチファイルを「REM #jw  REM #cd」⇒「REM #jww REM #cd」に変えてもダメでした。


Indexへ
(13863)←【13864】→(13865)
------------------------
【タイトル】Re(1):自動でLGS作図する外部変形
【記事番号】 13864 (13863)
【 日時 】08/09/26 17:15
【 発言者 】joker
【 リンク 】http://jwwfaq.undo.jp/



▼LILIさん:
>VISTAの環境で、自動でLGS作図する外部変形があれば、教えてください。探して入れてみてもうまく動きません。(http://officehikari.art-studio.cc/data-1.htm)一部分の作図しかしません。バッチファイルを「REM #jw  REM #cd」⇒「REM #jww REM #cd」に変えてもダメでした。

詳しく分りませんが、
VISTAの環境で、という事は、WindowsXpのマシンでは動作していた、
という事でしょうか?
具体的に、どの外部変形なのでしょうか?
「間柱割付外部変形」の中にある「LGS.BAT」ですか?

>一部分の作図しかしません。
という事は、取りあえず動作は出来ているという事でしょうか?
であれば、「jgawk」はちゃんと入れていて動いているという事ですね?
添付の「外変説明.jww」は全部読んで確認されたでしょうか?

他にどのようなものがあるか、についてですが、、、
取りあえず、「LGS」で検索してみました。
JWW検索リンクでの検索一覧
他にも Google や Yahoo! などで探すと色々ヒットすると思います。


Indexへ
(13864)←【13865】→(13885)
------------------------
【タイトル】Re(1):自動でLGS作図する外部変形
【記事番号】 13865 (13863)
【 日時 】08/09/26 18:00
【 発言者 】hayabusa

▼LILIさん:
>VISTAの環境で、自動でLGS作図する外部変形があれば、教えてください。探して入れてみてもうまく動きません。(http://officehikari.art-studio.cc/data-1.htm)一部分の作図しかしません。バッチファイルを「REM #jw  REM #cd」⇒「REM #jww REM #cd」に変えてもダメでした。

こんにちは。

LGS.BATの作図対象は水平垂直の線分のみです。
作図されていない線分を確認されたら如何でしょうか。


Indexへ
(13865)←【13885】→(13886)
------------------------
【タイトル】Re(2):自動でLGS作図する外部変形
【記事番号】 13885 (13865)
【 日時 】08/09/29 17:26
【 発言者 】LILI

>LGS.BATの作図対象は水平垂直の線分のみです。
>作図されていない線分を確認されたら如何でしょうか。

新規で水平・垂直線を描き、LGS.BATを起動させたら、正常に作図できました。
他のデータからコピーした線(DXF等)を基にしたのが良くなかったみたいです。
ありがとうございました。

他のデータからコピーをすると、水平・垂直がわずかながらずれるのですね。
このような限りなく水平・垂直に近い線を、水平・垂直にする方法はないでしょうか?


Indexへ
(13885)←【13886】→(13887)
------------------------
【タイトル】Re(3):自動でLGS作図する外部変形
【記事番号】 13886 (13885)
【 日時 】08/09/29 17:41
【 発言者 】hayabausa

こんにちは。

DXFやJWC経由だと如何しても誤差が出てしまいます。
どの程度の誤差を水平垂直にするかが問題です。

ところで、下記の外部変形のように指示点間に配置するようにすると誤差は
気にしなくてもよいと思います。
スタッドの形状はLGS.BATを継承しています。m(_ _)m
※要 mswin32ruby1.6〜1.8

バッチファイル名は「間柱作図.bat」としてください。
###下記よりメモ帳にコピペして全角スペース→半角スペースの置換をしてください
@REM 指示点間柱作図
@echo off
goto do%1
rem ------------------------------------------------------------
rem ※このファイルを編集した場合は上書き保存してください。
rem ※ファイルを閉じなくても編集は反映されます。
rem ※作図設定はこのバッチファイルの54行目からです。
rem ------------------------------------------------------------
rem ※注意点
rem  1.この外部変形は指示点間に間柱を作図するものです。
re  2.項目1は指示点間、項目2は指示点共が対象です。
rem   項目2に於いて作図オフセットが正の場合は指示点間の内側
rem   負の場合は外側に作図します。
rem   間柱の向きは指示点方向に対応して変化します。
rem  3.作図は書込みグループの指定レイヤです。
rem  4.不必要なグループは非表示にしてください。
rem ------------------------------------------------------------
REM #jww
REM #cd
REM #hm |指示点間 L|指示点共 R|BAT 編集|
REM #:1
REM #h0
REM #1- 作図始点を指示 (L)free (R)Read ※異縮尺に注意
REM #2 作図終点を指示 (L)free (R)Read ※異縮尺に注意
REM #hr
REM #e
REM #:2
REM #h0
REM #c 始点からの作図オフセット入力(単位 mm) [ 無指定 0 ] :/_/a
REM #c 終点からの作図オフセット入力(単位 mm) [ 無指定 0 ] :/_/b
REM #1- 作図始点を指示 (L)free (R)Read ※異縮尺に注意
REM #2 作図終点を指示 (L)free (R)Read ※異縮尺に注意
REM #hr
REM #e
REM #:3
REM #h0
REM #hr
REM #e
:do1
:do2
copy jwc_temp.txt temp.txt > nul
ruby -x %~f0 temp.txt %1 %2 %3 > jwc_temp.txt
del temp.txt
rem pause
exit
goto END
:do3
start notepad.exe 間柱作図.bat
ruby -e 'puts "h# ruby #{RUBY_VERSION} "' > jwc_temp.txt
goto END
#!ruby -Ks
##### 設 定 ######################################################
#
$type = "L" #間柱の種類
#      ( L≡LGS ; C≡C形鋼 ; K≡角形 ; W≡木造 )
#
$off1 = 0  #始点からのオフセット初期設定
$off2 = 0  #終点からのオフセット初期設定
#
$sa = 65   #間柱の高さ  [単位 mm] ※LGS-50,65,75,90,100
$sb = 45   #間柱の辺   [単位 mm] ※LGS-45
$sc = 7   #間柱のリップ [単位 mm] ※LGS,C形鋼のみ有効
$sp = 300  #間柱の間隔  [単位 mm] ※300〜455
#
$pl = "on"  #間柱の曲線属性化設定( on≡設定有; off≡設定無 )
#
$lc = "5"  #間柱の線色(1〜9)   [無指定:書込み線色]
$lt = "1"  #間柱の線種(1〜9   ) [無指定:書込み線種]
$ly = " "  #作図レイヤ(0〜f)   [無指定:書込みレイヤ]
#
#-------下記設定は$type = "w"の場合のみ有効----------------------
#      ※設定が"on"の場合は対角線の曲線属性化はできません。
#       これはJw_cad外部変形の仕様です。
#       "off"の場合は$lc,$ltが反映されます。
#
$wd = "on"  #木造間柱の対角線設定( on≡設定有; off≡設定無 )
$wc = "1"  #木造間柱の対角線色(1〜9) [無指定:書込み線色]
$wt = "1"  #木造間柱の対角線種(1〜9) [無指定:書込み線種]
#
#################################################################
def main
 include Math
 while ARGV.size > 1
  case argument = ARGV.pop
   when /^[12]/
    $koumoku = argument.to_s
   when /^\/a/
    $off1 = argument[2..-1].to_f
   when /^\/b/
    $off2 = argument[2..-1].to_f
  end
 end
 if ($type!~/^[LCKW]/)|(($pl!="on")&&($pl!="off"))|($sa<=0)|($sb<=0)|($sc<=0)|($sp<=0)|(($wd!="on")&&($wd!="off"))
  puts "he 作図設定エラー。"; exit
 end
 if $type == "L"
  msg = "LGSスタッド"
 elsif $type == "C"
  msg = "C形鋼間柱"
 elsif $type == "K"
  msg = "角形間柱"
 elsif $type == "W"
  msg = "木造間柱"
 end
 while ARGF.gets
  ele = split; ele.shift
  if $_ =~ /^hp1-/
   xy1 = ele.collect!{ |item| sprintf("%0.9f",item).to_f }
  elsif $_ =~ /^hp2/
   xy2 = ele.collect!{ |item| sprintf("%0.9f",item).to_f }
  end
 end
 aa,bb = xy2[0]-xy1[0],xy2[1]-xy1[1]
 if aa == 0 && bb == 0
  puts "he 始点と終点が同じです。"; exit
 end
 zz,zk = sprintf("%0.9f",(aa**2+bb**2)**0.5).to_f,atan2(bb,aa)
 count,ln,zp = 0,$sp,data()
 puts "ly"+$ly; puts "lc"+$lc; puts "lt"+$lt
 if $koumoku == "2"
  lx,ly = $off1*aa/zz+xy1[0],$off1*bb/zz+xy1[1]
  draw(lx,ly,zk,zp); count += 1
 end
 while ln < zz-100.0
  lx,ly = ln*aa/zz+xy1[0],ln*bb/zz+xy1[1]
  draw(lx,ly,zk,zp); ln += $sp; count += 1
 end
 if $koumoku == "2"
  lx,ly = -$off2*aa/zz+xy2[0],-$off2*bb/zz+xy2[1]
  draw(lx,ly,zk,zp); count += 1
 end
 if count == 0
  puts "h# 指示点間に#{msg}を作図できません。"
 else
  puts "h# 指示点間に #{count} 本の#{msg}を作図しました。"
 end
end
def draw(lx,ly,zk,zp)
 if $type == "W" && $wd == "on"
  puts "lc"+$lc; puts "lt"+$lt
  if $pl == "on"
   puts "pl"
  end
  5.times{|i|
   jp1x,jp1y = henkan(zk,zp[i][0],zp[i][1]); jp2x,jp2y = henkan(zk,zp[i][2],zp[i][3])
   printf( "%0.11f %0.11f %0.11f %0.11f\n", lx+jp1x,ly+jp1y,lx+jp2x,ly+jp2y)
  }
  puts "lc"+$wc; puts "lt"+$wt
  jp1x,jp1y = henkan(zk,zp[5][0],zp[5][1]); jp2x,jp2y = henkan(zk,zp[5][2],zp[5][3])
  printf( "%0.11f %0.11f %0.11f %0.11f\n", lx+jp1x,ly+jp1y,lx+jp2x,ly+jp2y)
 else
  if $pl == "on"
   puts "pl"
  end
  zp.each{|d|
   jp1x,jp1y = henkan(zk,d[0],d[1]); jp2x,jp2y = henkan(zk,d[2],d[3])
   printf( "%0.11f %0.11f %0.11f %0.11f\n", lx+jp1x,ly+jp1y,lx+jp2x,ly+jp2y)
  }
 end
end
def henkan(zk,px,py)
 jpx,jpy = px*cos(zk)-py*sin(zk),px*sin(zk)+py*cos(zk)
 return jpx,jpy
end
def data
 a,b,c = $sa*0.5,$sb*0.5,$sc
 d3,d4,d5 = [b,a,-b,a],[-b,a,-b,-a],[-b,-a,b,-a]
 if $type == "L"
  d1,d2 = [b-5.5,a-c,b,a-c],[b,a-c,b,a]
  d6,d7 = [b,-a,b,-a+c],[b,-a+c,b-5.5,-a+c]
 elsif $type == "C"
  d1,d2 = [0,0,0,0],[b,a-c,b,a]
  d6,d7 = [b,-a,b,-a+c],[0,0,0,0]
 elsif $type == "K"
  d1,d2 = [0,0,0,0],[b,-a,b,a]
  d6,d7 = [0,0,0,0],[0,0,0,0]
 elsif $type == "W"
  d1,d2 = [0,0,0,0],[b,-a,b,a]
  d6,d7 = [b,a,-b,-a],[0,0,0,0]
 end
 zp = [d1,d2,d3,d4,d5,d6,d7]
 return zp
end
main()
:END
###以上です。


Indexへ
(13886)←【13887】→(13888)
------------------------
【タイトル】Re(3):自動でLGS作図する外部変形
【記事番号】 13887 (13885)
【 日時 】08/09/29 17:49
【 発言者 】鈴木

▼LILIさん:
>他のデータからコピーをすると、水平・垂直がわずかながらずれるのですね。
>このような限りなく水平・垂直に近い線を、水平・垂直にする方法はないでしょうか?

●該当する線を左PM6:00のクロックメニューで全属性取得すると角度が取得できます。
確認さえ出来れば後は移動コマンドで回転角を与えれば水平、垂直には出来ます。


Indexへ
(13887)←【13888】//(13867)
------------------------
【タイトル】Re(4):自動でLGS作図する外部変形
【記事番号】 13888 (13887)
【 日時 】08/09/29 18:17
【 発言者 】住職
【 リンク 】http://homepage2.nifty.com/siegel/



▼鈴木さん:

>●該当する線を左PM6:00のクロックメニューで全属性取得すると角度が取得できます。
>確認さえ出来れば後は移動コマンドで回転角を与えれば水平、垂直には出来ます。

移動コマンド−>標準クロックなら、右PM8時の(−)角度
もあります。