Jw_cad 相談室−その2 New

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

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

それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。


新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
159 / 315 ツリー    ←次へ | 前へ→

動かない外部変形を動かしたい。 hide 23/12/7(木) 21:00

Re:動かない外部変形を動かしたい。 sugi 23/12/11(月) 6:13
Re:動かない外部変形を動かしたい。 hide 23/12/11(月) 12:12
Re:動かない外部変形を動かしたい。 sugi 23/12/11(月) 13:34
Re:動かない外部変形を動かしたい。 sugi 23/12/11(月) 15:30
Re:動かない外部変形を動かしたい。 hide 23/12/11(月) 22:14
Re:動かない外部変形を動かしたい。 sugi 23/12/13(水) 8:54
Re:動かない外部変形を動かしたい。 ban 23/12/13(水) 10:38
Re:動かない外部変形を動かしたい。 sugi 23/12/13(水) 11:03
Re:動かない外部変形を動かしたい。 hide 23/12/13(水) 21:10

Re:動かない外部変形を動かしたい。
 sugi  - 23/12/11(月) 6:13 -
機械屋には夜勤というものがあって
昼夜転倒の生活をしている人間もいるのです

桁表示の方は sprintf とか使えば直せると思うのですが
ちょっと待ってください

一括記入の方は調整は必要でしょうが大枠はできた気がする

REM 一括記入.bat
REM 勾配を‰表示の一括記入
CHCP 932
echo off
REM #jww
REM #cd
REM #h0
REM #c線と文字の離れ(図寸) 無指定:1.0 /_/a
REM #c勾配有効桁数 無指定:2 /_/b
REM #c長さ有効桁数 無指定:3 /_/c
REM #1ln線を指示してください free(L)
REM #99#
REM #e
copy jwc_temp.txt temp.txt
ruby -Ks -x %~f0 %1 %2 %3
GOTO END
REM #~

◎コメント
◎スクリプトファイル(ファイル名は自由)
◎以下の文をコピペ後、全角スペースを半角スペース二個に一括置換

#! ruby
# encoding: SJIS

$stdout=open("jwc_temp.txt","w")
$stderr=open("tmp_err.txt","w")

include Math
require "matrix"

hch,hs,by,zusun,takasa,l,mk,ml=[],[],[],0,0,0,"",""
hanare=(ARGV[0] ? ARGV[0].gsub("/a","").to_f : 1.0)
kketa=(ARGV[1] ? ARGV[1].gsub("/b","").to_i : 2)
nketa=(ARGV[2] ? ARGV[2].gsub("/c","").to_i : 3)

puts "cc4"
open("temp.txt").readlines.each{|e|
 xy=e.split(" ")
 puts e unless /^hq|^ [\d-]/=~e
 if /^hs/=~e
  xy[1..-1].each{|item|by << item}
 elsif /^lg/=~e
  lg=xy[0][2,1]
  zusun=by[lg.hex].to_f
 elsif /^hch/=~e
  hch=xy
 elsif /^cn0/=~e
  takasa=xy[2].to_f*0.5*zusun
 elsif /^cn\d/=~e
  takasa=hch[e.gsub("cn","").to_i].to_f*0.5*zusun
 elsif /^ [\d-]/=~e
  xy=xy.map{|f|f.to_f}
  vs=Vector[xy[0],xy[1]]
  ve=Vector[xy[2],xy[3]]
  v1=ve-vs
  v2=Matrix[[0,-1.0],[1.0,0]]*v1*(1.0/v1.r)*(hanare+takasa)
  p1=(vs+v1*0.5+v2)
  p2=(vs+v1*0.5-v2)
  begin
   a=(v1[1]/v1[0]*1000).round(kketa)
  rescue
   a="垂直"
  end
  l=v1.r
  if a=="垂直"
   mk="i=垂直"
  elsif a<0
   mk=%Q|i=#{sprintf("%.#{kketa}f",a.abs)}‰→|
  elsif a==0
   mk=%Q|i=#{sprintf("%.#{kketa}f",a.abs)}‰|
  else
   mk=%Q|←i=#{sprintf("%.#{kketa}f",a.abs)}‰|
  end
  ml=sprintf("%.#{nketa}f",l.round(nketa))
  puts %Q|ch #{p1[0]} #{p1[1]} #{v1[0]} #{v1[1]} "#{mk}|
  puts %Q|ch #{p2[0]} #{p2[1]} #{v1[0]} #{v1[1]} "#{ml}|
 end
}
__END__
:END

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36@global221-160-094.aitai.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 hide  - 23/12/11(月) 12:12 -
質問者のhideです。sugiさん、返信ありがとうございます。感謝感激感動です!

うーん、動きませでした。
GOTO ENDの前にpauseを記入すると

C:\JWW\外変寸法\勾配%>REM 一括記入.bat
C:\JWW\外変寸法\勾配%>REM 勾配を‰表示の一括記入
C:\JWW\外変寸法\勾配%>CHCP 932
現在のコード ページ: 932
C:\JWW\外変寸法\勾配%>echo off
1 個のファイルをコピーしました。
続行するには何かキーを押してください . . .

と、DOS窓に表示。

tmp_err.txt

C:/JWW/外変寸法/勾配%/一括記入.bat:76:in `round': wrong number of arguments (1 for 0) (ArgumentError)
from C:/JWW/外変寸法/勾配%/一括記入.bat:76
from C:/JWW/外変寸法/勾配%/一括記入.bat:39:in `each'
from C:/JWW/外変寸法/勾配%/一括記入.bat:39


当方PC環境は、win7

現在のディレクトリは C:/JWW/便利外変/jwruby
ruby のバージョンは
ruby 1.8.7 (2013-06-27 patchlevel 374) [i386-mingw32]
ruby のロードパスは
c:/ruby/lib/ruby/site_ruby/1.8
c:/ruby/lib/ruby/site_ruby/1.8/i386-msvcrt
c:/ruby/lib/ruby/site_ruby
c:/ruby/lib/ruby/vendor_ruby/1.8
c:/ruby/lib/ruby/vendor_ruby/1.8/i386-msvcrt
c:/ruby/lib/ruby/vendor_ruby
c:/ruby/lib/ruby/1.8
c:/ruby/lib/ruby/1.8/i386-mingw32

です。
できれば、範囲選択で線を複数選択できたほうが大変便利と思います。
よろしくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Android 10; Mobile; rv:120.0) Gecko/120.0 Firefox/120.0@sp49-104-46-133.msf.spmode.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 sugi  - 23/12/11(月) 13:34 -
次の修正で範囲選択で一度に複数選択出来るようにしてみようと思います

私の環境は
ruby 2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]
調べてみたら roundの仕様が変わっていました
取り敢えず次の二箇所を探して変更してみてください

(誤):a=(v1[1]/v1[0]*1000).round(kketa)
(正):a=((v1[1]/v1[0]*1000)*10.0**kketa).round*0.1**kketa

(誤):ml=sprintf("%.#{nketa}f",l.round(nketa))
(正):ml=sprintf("%.#{nketa}f",(l*10.0**nketa).round*0.1**nketa)

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36@global221-160-094.aitai.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 sugi  - 23/12/11(月) 15:30 -
修正のたびにバッチファイルをアップするのはちょっとうるさいので
ホームページに準備してみました
現状、ここまでできました
要望とかあれば引き続きこちらの掲示板に書き込んでください

http://pansy.s1010.xrea.com/2023/12/11/%e9%95%b7%e3%81%95%e5%8b%be%e9%85%8d%e8%a8%98%e5%85%a5/

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36@global221-160-094.aitai.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 hide  - 23/12/11(月) 22:14 -
掲示板のスクリプトをスマフォ経由でPCのterapadエディターに取り込んだところ、改行がありませんでしたので、独自に改行を追加編集しました。。また、なぜか、67行目、69行目、102行目付近の
\dが
\d に、文字化けしていましたが、プログラムは、うまく動作しました。


wo--
ほぼ完ぺきです。これは使えます。数限りない厚かましい要望に応えていただき、大変感謝感激感動です。
これは、断面図のチェック、施工図の作成などに威力を発揮します。

実行結果です。


長さ勾配一括を実行したとき、
線と文字の離れ(図寸)   に 数値 を入力すると、勾配や長さがが 整数 になったりします。
例:入力 1 1 1  結果 勾配 整数(異常) 長さ 整数(異常)
例:入力 2 2 2  結果 勾配 整数(異常) 長さ 整数(異常)
例:入力 1 無指定 無指定  結果 勾配 整数(異常) 長さ 正常
例:入力 2 無指定 無指定  結果 勾配 整数(異常) 長さ 正常


線と文字の離れ(図寸)   に 100 を入力しても、文字は離れていないような気がします。

また、単位ですが、勾配は%、長さはmのほうが土木系には使いやすいです。
法勾配1:nの範囲選択バージョンも追加していただきたいです。続きこちらの掲示板に書き込んでください
>
>http://pansy.s1010.xrea.com/2023/12/11/%e9%95%b7%e3%81%95%e5%8b%be%e9%85%8d%e8%a8%98%e5%85%a5/

引用なし

パスワード


<Mozilla/5.0 (Android 10; Mobile; rv:120.0) Gecko/120.0 Firefox/120.0@sp49-104-46-133.msf.spmode.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 sugi WEB  - 23/12/13(水) 8:54 -
ホームページの外部変形を更新しました
外部変形の右上のバッチファイル名からコピーできるので
terapadで直接コピーして SJIS で保存し直すとやりやすいかと思います

\dは正規表現の数字のことであれば文字化けでなくてこれで合っています

久しぶりに外部変形を作ってオプションの処理の仕方を間違えてました
#R.Nさん、ご指摘ありがとうございます

法勾配については馴染みがなくって調べながら作ってみました

充分にチェックしていないので他にもまだ動作がおかしい点が
あれば教えてください

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36@global221-160-094.aitai.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 ban  - 23/12/13(水) 10:38 -
▼sugiさん: >ホームページの外部変形を更新しました >外部変形の右上のバッチファイル名からコピーできるので >terapadで直接コピーして SJIS で保存し直すとやりやすいかと思います > >\dは正規表現の数字のことであれば文字化けでなくてこれで合っています > >久しぶりに外部変形を作ってオプションの処理の仕方を間違えてました >#R.Nさん、ご指摘ありがとうございます > >法勾配については馴染みがなくって調べながら作ってみました > >充分にチェックしていないので他にもまだ動作がおかしい点が >あれば教えてください 改良有難うございます。 ruby 1.8.6でも動作しています。 表示単位が%になっています。(‰でない) 長さの単位がmとなっています。(数値はmm)
引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0@p1176159-ipxg04501morioka.iwate.ocn.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 sugi  - 23/12/13(水) 11:03 -
>> 表示単位が%になっています。(‰でない)
>> 長さの単位がmとなっています。(数値はmm)

この辺はhideさんの要望に応えた積りだったのですが
機械民には馴染みがなくって見当外れだったかも
土木系の方は日常的にm単位で図面を描くのか
なんて思ったりしてました

引用なし

パスワード


<Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36@global221-160-094.aitai.ne.jp>
・ツリー全体表示

Re:動かない外部変形を動かしたい。
 hide  - 23/12/13(水) 21:10 -
新しいbatファイルありがとうございます。
大変うれしいです。
実行してみました。
  未実行
35と39行目の
C:\ruby187b\bin\ruby -Ks -x %~f0 %1 %2 %3 %4

#C:\ruby187b\bin\
ruby -Ks -x %~f0 %1 %2 %3 %4
に変更、動作確認。(ほっ)
書き出された数値を見ると
傾きは、  数値は‰で単位は%。
長さは、  数値はmmで単位はm。
よって、
112、114行目の
a=((v1[1]/v1[0]*1000)*10.0**kke).round*0.1**kke

# a=((v1[1]/v1[0]*1000)*10.0**kke).round*0.1**kke
a=((v1[1]/v1[0]*100)*10.0**kke).round*0.1**kke
に変更、

101、141、15行目の
l=v1.r

# l=v1.r
l=0.001*v1.r
に変更、

有効桁数を無指定3.0にしたいので
76行目を kke=(opt==2 ? 3 :3)に変更、

単位%、m  全角を、半角に変更、

2行目、‰を%
に変更、

動作確認。(ほっ)
とってもいいものを作っていただきました。rubyのプログラムも勉強させていただきました。
私のわがままに、長々付き合っていただきありがとうございます。
スギさんのこのスキル以上に、精神力がすごいと思います。

引用なし

パスワード


<Mozilla/5.0 (Android 10; Mobile; rv:120.0) Gecko/120.0 Firefox/120.0@sp49-104-46-133.msf.spmode.ne.jp>
・ツリー全体表示

159 / 315 ツリー    ←次へ | 前へ→
新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃過去ログ ┃ホーム
 1170805
ページ:  ┃  記事番号:  

C-BOARD Moyuku v1.03b5
Jw_cad Copyright (C)1997-2021 Jiro Shimizu & Yoshifumi Tanaka