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時の(−)角度
もあります。