Jw_cad 情報交換室−その3New

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

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

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


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

開発中アプリのテスター募集(現場でのご...
 aps E-MAIL  - 26/3/23(月) 21:46 -
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
開発中アプリのテスター募集(現場でのご意見をいただける方)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ゼネコン・建築・土木・測量・施工管理・設計に携わる皆様へ

現在、ゼネコン・建築・土木・測量・施工管理・設計業務・の現場で使用することを想定した
JWCAD図面ビューアアプリを開発しています。

実際の現場での使い勝手や改善点について、
率直なご意見をいただきたく投稿させていただきました。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ アプリ概要

Android端末(タブレット・スマフォ)でJWCAD(JWW)図面を閲覧し、
簡単な計測や書き込みが行えるアプリです。

現場で紙図面を確認・計測する際の手間を減らすことを目的としています。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ 現在確認したい内容

・現場での操作性(使いやすさ)
・計測機能の実用性
・座標機能(測量業務)の分かりやすさ
・書き込み機能の使い勝手
・その他「こうした方が良い」と感じる点

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ 主な機能(現時点)

・距離/角度/面積の計測
・測量座標(X・Y・方向角・距離)の取得
・図面への手書き(コメント)
・スクリーンショット
・レイヤ表示切替
・スナップ機能
・電卓機能

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ テストについて

・期間:約2週間
・費用:無料

※ テスト版のため、一部動作が不安定な場合があります

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ 参加条件

・Googleアカウントをお持ちの方
・Android端末をお使いの方

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ 参加方法

参加をご希望いただける場合は、
メールにてご連絡をお願いいたします。

折り返し、テスト用のダウンロードURLをご案内いたします。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ 個人情報について

・メールアドレスはテスト連絡のみに使用します
・第三者への提供は行いません
・テスト終了後は速やかに削除いたします

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

■ 最後に

現場で実際に使えるアプリにするためには、
実務に携わる皆様のご意見が不可欠だと考えております。

皆様のご参加とご意見が、現場業務の改善に直結します。

ご協力いただける方がいらっしゃいましたら、
どうぞよろしくお願いいたします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36@sni103-red.in.shared-server.net>
・ツリー全体表示

文字コーピ・移動の際、正しく表示されない
 Vie  - 26/3/23(月) 15:36 -
いつもありがとうございます。

文字をコピーして移動する際、倍率を「-1,1」にすると文字が正しく表示されません。

バージョンは10.02.1、OSはWindows 11 Pro(25H2)です。

同じ現象が出るか、ご確認いただけると助かります。
よろしくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0@sni105-red.in.shared-server.net>
・ツリー全体表示

Re:線幅の調整
 hogehoge  - 26/3/22(日) 10:13 -
▼はおさん:

最初から、貴兄が作図したデータですか?

他所から頂いたデータで、SXF線色で作図されており、変更しているのはJww基本線色ではありませんか?


>初心者です
>印刷するとき
>
>設定 基本設定 色、画面 プリンタ出力要素 線幅
>
>この流れで太さを変えて印刷しても
>線の幅が変わらないのですが、教えていただけませんか
>
>バージョンは8.25Aです。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36@sni101-red.in.shared-server.net>
・ツリー全体表示

線幅の調整
 はお E-MAIL  - 26/3/19(木) 9:43 -
初心者です
印刷するとき

設定 基本設定 色、画面 プリンタ出力要素 線幅

この流れで太さを変えて印刷しても
線の幅が変わらないのですが、教えていただけませんか

バージョンは8.25Aです。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0@sni101-red.in.shared-server.net>
・ツリー全体表示

Re:画像表示について
 卯之介  - 26/3/14(土) 11:12 -
https://www.jwcad.net/bbs2/c-board.cgi?cmd=ntr;tree=58392;id=004

こちらでは解決されなかったということですか?
どう「うまく表示されない」のかが全くわかりませんが、上記スレッドでも

かなり細かく見えてる
綺麗な出力
綺麗な画像

何がなんだかわからない
汚く見える

と主観的で漠然とした表現しかされていないので違いがわかりません。
それとも今回の質問はうまいか否かではなく、全く表示されないという意味でしょうか?

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:148.0) Gecko/20100101 Firefox/148.0@sni107-red.in.shared-server.net>
・ツリー全体表示

Re:複写・移動時反転後文字のサイズが小さ...
 think.wt E-MAIL  - 26/3/14(土) 8:54 -
▼TOMさん:
>▼kuboさん:
>>▼綿棒ちゃんさん:
>>>Version 10.02.1使用中です。
>>>複写並びに移動をする際図形に文字や寸法が入ったまま反転動作を行うと文字が小さくなる。(潰れる)
>>>修正を希望します<(_ _)>
>>
>>同じく希望いたします。
>>取りあえずは、文字コマンドの「書込み文字種変更」で、間隔を修正して対応していますが。
>こちらでも同じ現象が起きます。以前は問題なかったのですが。
>ご対応いただけると助かります。
>よろしくお願いします。

同じく希望いたします。
Version 10.01.8に戻して使用しています
次回に期待いたします
よろしくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36 Edg/145.0.0.0@sni104-red.in.shared-server.net>
・ツリー全体表示

Re:画像表示について
 Lion  - 26/3/13(金) 15:04 -
▼深谷 光秀さん:
>画像の画面表示で画面で画像(JPEG)がうまく表示されません。過去のファイルを読み込んだ場合、うまく表示するファイルとうまく表示されないファイルがあります。うまく表示された画面でで違うファイル(うまく表示されない)を開くとうまく開きます。関連付けでうまく画像が表示されるファイルとされないファイルがあります。又新規で、JWCADを起動した場合は画像を読み込んでもうまく表示されません。どうしてでしょうか?

質疑を書く場所が違うようです、隣の(Jw_cad相談室−その2)に書いて
下さい、JPEGの表示云々は過去ログにもあるかと思いますが
表示=>Direct2D(2)=>のON/OFFを試して下さい、使用JWWの
バージョン、OSのバージョン情報も必要です

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni103-red.in.shared-server.net>
・ツリー全体表示

画像表示について
 深谷 光秀 E-MAIL  - 26/3/13(金) 14:17 -
画像の画面表示で画面で画像(JPEG)がうまく表示されません。過去のファイルを読み込んだ場合、うまく表示するファイルとうまく表示されないファイルがあります。うまく表示された画面でで違うファイル(うまく表示されない)を開くとうまく開きます。関連付けでうまく画像が表示されるファイルとされないファイルがあります。又新規で、JWCADを起動した場合は画像を読み込んでもうまく表示されません。どうしてでしょうか?

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni103-red.in.shared-server.net>
・ツリー全体表示

JPG画像が印刷できません。
 抹茶コーヒー E-MAIL  - 26/3/9(月) 10:25 -
JPG画像が印刷できないで困っています。
画像ファイルを読み込み上から線でトレースしてます。
文字>文読>jpg.jpegからJPG画像を選択し画面に貼りつけ
その後画像スケールを合わせるために拡大
画像の上から線を引いてトレース
これまでは何の問題無く出来ます。

此れを印刷するとトレースした線だけになり画像が印刷されていません。
画像部分は四角い点線の枠と左下に画像のパスがあるのみです。

Version 10.02.1です。

試しにVersion 8.25aで同じ操作をしたところ何の問題も無く印刷できました。

此れって Version 10.02.1のバグでしょうか?
宜しくお願いします。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni105-red.in.shared-server.net>
・ツリー全体表示

その他〜外部変形の表示について
 いっち  - 26/3/9(月) 7:49 -
最近 jw_cad Ver10.02.1 専用の外部変形を作るようになってから、気が付いた事を書いてみます。
その他〜外部変形で表示されるメモの表示についてです。

但し、「そんな些細な事、気にしないよ。」といわれる方が、大多数かもしれませし、そもそも私の勘違いかもしれません。

────────────────────

1.jw_cad Ver7.11 の場合

 ・バッチファイルの1行目をきちんと表示します。
 
 
2.jw_cad Ver10.02.1 で[S-JIS]外変の場合

 ・必ずしも、バッチファイルの1行目でないと表示出来ないとは限らないようです。
  但し、その後の #jww まで表示してしまうようです。

3.jw_cad Ver10.02.1 で[UTF-8]外変の場合

  バッチファイルの記述方法を工夫しないと、その後の #jww まで表示してしまうようです。
  但し、バッチファイルの記述方法を工夫すれば、#jww を表示させない事も出来るようでした。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36@sni105-red.in.shared-server.net>
・ツリー全体表示

Re:外変(網掛けハッチング)
 momochi  - 26/3/8(日) 19:04 -
ハッチ範囲の不具合を修正しました。他も何かあるかも知れません。 circlehatch.bat @echo off setlocal goto EXE REM circle hatch REM #jww REM #cd REM #g0 REM #gn REM #1ln 1st line REM #2ln 2nd line REM #hr REM #e :EXE pushd "%~dp0" >nul set "SCRIPT=%~dp0circlehatch.rb" if exist "C:\Ruby34-x64\bin\ruby.exe" ( "C:\Ruby34-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby33-x64\bin\ruby.exe" ( "C:\Ruby33-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby32-x64\bin\ruby.exe" ( "C:\Ruby32-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby31-x64\bin\ruby.exe" ( "C:\Ruby31-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby30-x64\bin\ruby.exe" ( "C:\Ruby30-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else ( ruby -Ks "%SCRIPT%" ) popd >nul endlocal exit /b 0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ circlehatch.rb # encoding: Windows-31J Dir.chdir(File.dirname(__FILE__)) input_file = "jwc_temp.txt" RADIUS_MM = 0.25 INTERVAL_MM = 2.5 scale = 1.0 selected_lines = [] if File.exist?(input_file) src = File.read(input_file, encoding: "Windows-31J") hs_vals = [] group = 0 src.each_line do |line| l = line.strip if l =~ /^hs\s+(.+)/ hs_vals = $1.split.map(&:to_f) elsif l =~ /^lg([0-9a-f])/ group = $1.hex scale = hs_vals[group] if hs_vals && hs_vals[group] elsif l =~ /^[ \t]*(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/ selected_lines << [$1.to_f, $2.to_f, $3.to_f, $4.to_f] end end end exit if selected_lines.size < 2 l1, l2 = selected_lines[-2], selected_lines[-1] p1, p2 = [l1[0], l1[1]], [l1[2], l1[3]] p3, p4 = [l2[0], l2[1]], [l2[2], l2[3]] v1 = [p2[0] - p1[0], p2[1] - p1[1]] v2 = [p4[0] - p3[0], p4[1] - p3[1]] dot_product = v1[0] * v2[0] + v1[1] * v2[1] p3, p4 = p4, p3 if dot_product < 0 poly = [p1, p2, p4, p3] def inside?(px, py, poly) ins = false; j = poly.size - 1 poly.size.times do |i| if ((poly[i][1] > py) != (poly[j][1] > py)) && (px < (poly[j][0] - poly[i][0]) * (py - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) ins = !ins end j = i end ins end half, step = RADIUS_MM * scale, INTERVAL_MM * scale rad1, rad2 = 45.0 * Math::PI / 180.0, -45.0 * Math::PI / 180.0 u = [Math.cos(rad1) * step, Math.sin(rad1) * step] v = [Math.cos(rad2) * step, Math.sin(rad2) * step] xs, ys = poly.map{|p|p[0]}, poly.map{|p|p[1]} xmin, xmax, ymin, ymax = xs.min, xs.max, ys.min, ys.max cx_mid, cy_mid = (xmin + xmax) / 2.0, (ymin + ymax) / 2.0 num = (Math.sqrt((xmax-xmin)**2 + (ymax-ymin)**2) / step).ceil + 5 File.open(input_file, "w") do |file| file.write "h#circle hatch\n" (-num..num).each do |i| (-num..num).each do |j| px, py = cx_mid + i * u[0] + j * v[0], cy_mid + i * u[1] + j * v[1] pts = [[px, py - half], [px, py + half], [px - half, py], [px + half, py]] if pts.all? { |pt| inside?(pt[0], pt[1], poly) } file.write "ci %.6f %.6f %.6f\n" % [px, py, half] end end end file.write "hr\n" end
引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
・ツリー全体表示

再アップ
 momochi  - 26/3/7(土) 18:03 -
掲示板の「等幅」オプションをONにしてあげ直します。 (※RBファイル内の &#39;(シングルクォート)がもし文字化けして動かない場合は、AIに修復を依頼するか、半角に置換してください。) plusハッチ.bat @echo off setlocal goto EXE REM plusハッチ外変 REM #jww REM #cd REM #g0 REM #gn REM #1ln 1本目の線を選択 REM #2ln 2本目の線を選択 REM #hr REM #e :EXE pushd "%~dp0" >nul set "SCRIPT=%~dp0plusハッチ.rb" if exist "C:\Ruby33-x64\bin\ruby.exe" ( "C:\Ruby33-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby32-x64\bin\ruby.exe" ( "C:\Ruby32-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby31-x64\bin\ruby.exe" ( "C:\Ruby31-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby30-x64\bin\ruby.exe" ( "C:\Ruby30-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else ( ruby -Ks "%SCRIPT%" ) popd >nul endlocal exit /b 0 plusハッチ.rb # encoding: Windows-31J # plusハッチ.rb Dir.chdir(File.dirname(__FILE__)) input_file = &#39;jwc_temp.txt&#39; # --- 設定値 --- SIZE_MM = 0.8 INTERVAL_MM = 2.2 # -------------- scale = 1.0 selected_lines = [] if File.exist?(input_file) src = File.read(input_file, encoding: &#39;Windows-31J&#39;) hs_vals = [] group = 0 src.each_line do |line| l = line.strip if l =~ /^hs\s+(.+)/ hs_vals = $1.split.map(&:to_f) elsif l =~ /^lg([0-9a-f])/ group = $1.hex scale = hs_vals[group] if hs_vals && hs_vals[group] elsif l =~ /^[ \t]*(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/ selected_lines << [$1.to_f, $2.to_f, $3.to_f, $4.to_f] end end end exit if selected_lines.size < 2 l1, l2 = selected_lines[-2], selected_lines[-1] # --- 1. 成功していた範囲定義(4端点を結ぶ台形範囲) --- p1, p2 = [l1[0], l1[1]], [l1[2], l1[3]] p3, p4 = [l2[0], l2[1]], [l2[2], l2[3]] dist_p1_p3 = (p1[0]-p3[0])**2 + (p1[1]-p3[1])**2 dist_p1_p4 = (p1[0]-p4[0])**2 + (p1[1]-p4[1])**2 if dist_p1_p3 < dist_p1_p4 poly = [p1, p2, p4, p3] else poly = [p1, p2, p3, p4] end # 多角形内判定関数 def inside?(px, py, poly) ins = false; j = poly.size - 1 poly.size.times do |i| if ((poly[i][1] > py) != (poly[j][1] > py)) && (px < (poly[j][0] - poly[i][0]) * (py - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) ins = !ins end j = i end ins end # --- 2. 座標計算(成功時のロジックを100%維持) --- half, step = (SIZE_MM / 2.0) * scale, INTERVAL_MM * scale rad1, rad2 = 45.0 * Math::PI / 180.0, -45.0 * Math::PI / 180.0 u = [Math.cos(rad1) * step, Math.sin(rad1) * step] v = [Math.cos(rad2) * step, Math.sin(rad2) * step] xs, ys = poly.map{|p|p[0]}, poly.map{|p|p[1]} xmin, xmax, ymin, ymax = xs.min, xs.max, ys.min, ys.max cx_mid, cy_mid = (xmin + xmax) / 2.0, (ymin + ymax) / 2.0 num = (Math.sqrt((xmax-xmin)**2 + (ymax-ymin)**2) / step).ceil + 5 # --- 書き出し --- file = File.open(input_file, &#39;w&#39;) begin file.write "h#十字配置完了\n" file.write "pl\n" # 曲線属性開始 (-num..num).each do |i| (-num..num).each do |j| px = cx_mid + i * u[0] + j * v[0] py = cy_mid + i * u[1] + j * v[1] # 十字の端点4つすべてが領域内にあるか厳密にチェック pts = [ [px, py - half], [px, py + half], [px - half, py], [px + half, py] ] if pts.all? { |pt| inside?(pt[0], pt[1], poly) } file.write "%.6f %.6f %.6f %.6f\n" % [px, py - half, px, py + half] file.write "%.6f %.6f %.6f %.6f\n" % [px - half, py, px + half, py] end end end file.write "#\n" # 曲線属性終了 file.write "hr\n" ensure file.close end
引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni103-red.in.shared-server.net>
・ツリー全体表示

外変(網掛けハッチング)
 momochi  - 26/3/7(土) 17:09 -
外変「circlehatch」(網掛けハッチング)をアップします。 2本の境界線の間に小円(ドット)を配置する外変です。 台形や三角形の境界内にも配置できます。 (Geminiで作成) 境界線1をクリック 境界線2をクリック [選択確定]で実行 興味のある方はどうぞ 【動作しない場合】 コピーしたコードを Gemini や ChatGPT などのAIに貼り付け、次の指示を出してください。直る場合があります。 AIへの指示: 「この Jw_cad 外部変形のスクリプトを Ruby として正しく動作するよう修復してください。HTMLエンティティ(&#39; など)や全角スペースはすべて半角に修正し、文法エラーがない状態にしてください。ロジック(計算内容)は変更しないでください。」 +++++++++++++++++++++++++++++++++++++++++++ circlehatch.bat @echo off setlocal goto EXE REM circle hatch REM #jww REM #cd REM #g0 REM #gn REM #1ln 1st line REM #2ln 2nd line REM #hr REM #e :EXE pushd "%~dp0" >nul set "SCRIPT=%~dp0circlehatch.rb" if exist "C:\Ruby33-x64\bin\ruby.exe" ( "C:\Ruby33-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby32-x64\bin\ruby.exe" ( "C:\Ruby32-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby31-x64\bin\ruby.exe" ( "C:\Ruby31-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else if exist "C:\Ruby30-x64\bin\ruby.exe" ( "C:\Ruby30-x64\bin\ruby.exe" -Ks "%SCRIPT%" ) else ( ruby -Ks "%SCRIPT%" ) popd >nul endlocal exit /b 0 ++++++++++++++++++++++++++++++++++++++++++++++ circlehatch.rb # encoding: Windows-31J # circlehatch.rb Dir.chdir(File.dirname(__FILE__)) input_file = "jwc_temp.txt" # --- 設定値 --- RADIUS_MM = 0.25 INTERVAL_MM = 2.5 # -------------- scale = 1.0 selected_lines = [] if File.exist?(input_file) src = File.read(input_file, encoding: "Windows-31J") hs_vals = [] group = 0 src.each_line do |line| l = line.strip if l =~ /^hs\s+(.+)/ hs_vals = $1.split.map(&:to_f) elsif l =~ /^lg([0-9a-f])/ group = $1.hex scale = hs_vals[group] if hs_vals && hs_vals[group] elsif l =~ /^[ \t]*(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/ selected_lines << [$1.to_f, $2.to_f, $3.to_f, $4.to_f] end end end exit if selected_lines.size < 2 l1, l2 = selected_lines[-2], selected_lines[-1] p1, p2 = [l1[0], l1[1]], [l1[2], l1[3]] p3, p4 = [l2[0], l2[1]], [l2[2], l2[3]] dist_p1_p3 = (p1[0]-p3[0])**2 + (p1[1]-p3[1])**2 dist_p1_p4 = (p1[0]-p4[0])**2 + (p1[1]-p4[1])**2 if dist_p1_p3 < dist_p1_p4 poly = [p1, p2, p4, p3] else poly = [p1, p2, p3, p4] end def inside?(px, py, poly) ins = false; j = poly.size - 1 poly.size.times do |i| if ((poly[i][1] > py) != (poly[j][1] > py)) && (px < (poly[j][0] - poly[i][0]) * (py - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0]) ins = !ins end j = i end ins end half, step = RADIUS_MM * scale, INTERVAL_MM * scale rad1, rad2 = 45.0 * Math::PI / 180.0, -45.0 * Math::PI / 180.0 u = [Math.cos(rad1) * step, Math.sin(rad1) * step] v = [Math.cos(rad2) * step, Math.sin(rad2) * step] xs, ys = poly.map{|p|p[0]}, poly.map{|p|p[1]} xmin, xmax, ymin, ymax = xs.min, xs.max, ys.min, ys.max cx_mid, cy_mid = (xmin + xmax) / 2.0, (ymin + ymax) / 2.0 num = (Math.sqrt((xmax-xmin)**2 + (ymax-ymin)**2) / step).ceil + 5 File.open(input_file, "w") do |file| file.write "h#circle hatch\n" (-num..num).each do |i| (-num..num).each do |j| px, py = cx_mid + i * u[0] + j * v[0], cy_mid + i * u[1] + j * v[1] # 判定を4点に絞って高速化 pts = [[px, py - half], [px, py + half], [px - half, py], [px + half, py]] if pts.all? { |pt| inside?(pt[0], pt[1], poly) } file.write "ci %.6f %.6f %.6f\n" % [px, py, half] end end end file.write "hr\n" end
引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni104-red.in.shared-server.net>
・ツリー全体表示

Re:外変「plusハッチ」をアップします
 momochi  - 26/3/6(金) 8:02 -
plusハッチ.bat(修正版)

動作条件
Ruby がインストールされている環境で動作します。
Ruby のバージョンやインストール場所には依存しません。

+++++++++++++++++++++++++++++++++++++++++++

plusハッチ.bat

@echo off
setlocal
goto EXE
REM plusハッチ外変
REM #jww
REM #cd
REM #g0
REM #gn
REM #1ln 1本目の線を選択
REM #2ln 2本目の線を選択
REM #hr
REM #e
:EXE
pushd "%~dp0" >nul
set "SCRIPT=%~dp0plusハッチ.rb"
if exist "C:\Ruby33-x64\bin\ruby.exe" (
"C:\Ruby33-x64\bin\ruby.exe" -Ks "%SCRIPT%"
) else (
ruby -Ks "%SCRIPT%"
)
popd >nul
endlocal
exit /b 0

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni106-red.in.shared-server.net>
・ツリー全体表示

Re:外変「plusハッチ」をアップします
 momochi  - 26/3/5(木) 20:39 -
動作条件
Rubyインストール先:C:\Ruby33-x64
実行ファイル:C:\Ruby33-x64\bin\ruby.exe

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
・ツリー全体表示

外変「plusハッチ」をアップします
 momochi  - 26/3/5(木) 19:22 -
外変「plusハッチ」をアップします。
2本の境界線の間に「十」の形の線を配置する外変です。
(Geminiで作成)

境界線1をクリック
境界線2をクリック
[選択確定]で実行

興味のある方はお試しください。

++++++++++++++++++++++++++++++++++

plusハッチ.bat

@echo off
goto EXE
REM plusハッチ外変
REM #jww
REM #cd
REM #g0
REM #gn
REM #1ln 1本目の線を選択
REM #2ln 2本目の線を選択
REM #hr
REM #e
:EXE
C:\Ruby33-x64\bin\ruby.exe -Ks "%~dp0plusハッチ.rb"
exit

++++++++++++++++++++++++++++++++++

plusハッチ.rb

# encoding: Windows-31J
# plusハッチ.rb

Dir.chdir(File.dirname(__FILE__))
input_file = &#39;jwc_temp.txt&#39;

# --- 設定値 ---
SIZE_MM = 0.8
INTERVAL_MM = 2.2
# --------------

scale = 1.0
selected_lines = []

if File.exist?(input_file)
src = File.read(input_file, encoding: &#39;Windows-31J&#39;)
hs_vals = []
group = 0
src.each_line do |line|
l = line.strip
if l =~ /^hs\s+(.+)/
hs_vals = $1.split.map(&:to_f)
elsif l =~ /^lg([0-9a-f])/
group = $1.hex
scale = hs_vals[group] if hs_vals && hs_vals[group]
elsif l =~ /^[ \t]*(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/
selected_lines << [$1.to_f, $2.to_f, $3.to_f, $4.to_f]
end
end
end

exit if selected_lines.size < 2
l1, l2 = selected_lines[-2], selected_lines[-1]

# --- 1. 成功していた範囲定義(4端点を結ぶ台形範囲) ---
p1, p2 = [l1[0], l1[1]], [l1[2], l1[3]]
p3, p4 = [l2[0], l2[1]], [l2[2], l2[3]]
dist_p1_p3 = (p1[0]-p3[0])**2 + (p1[1]-p3[1])**2
dist_p1_p4 = (p1[0]-p4[0])**2 + (p1[1]-p4[1])**2

if dist_p1_p3 < dist_p1_p4
poly = [p1, p2, p4, p3]
else
poly = [p1, p2, p3, p4]
end

# 多角形内判定関数
def inside?(px, py, poly)
ins = false; j = poly.size - 1
poly.size.times do |i|
if ((poly[i][1] > py) != (poly[j][1] > py)) &&
(px < (poly[j][0] - poly[i][0]) * (py - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])
ins = !ins
end
j = i
end
ins
end

# --- 2. 座標計算(成功時のロジックを100%維持) ---
half, step = (SIZE_MM / 2.0) * scale, INTERVAL_MM * scale
rad1, rad2 = 45.0 * Math::PI / 180.0, -45.0 * Math::PI / 180.0
u = [Math.cos(rad1) * step, Math.sin(rad1) * step]
v = [Math.cos(rad2) * step, Math.sin(rad2) * step]

xs, ys = poly.map{|p|p[0]}, poly.map{|p|p[1]}
xmin, xmax, ymin, ymax = xs.min, xs.max, ys.min, ys.max
cx_mid, cy_mid = (xmin + xmax) / 2.0, (ymin + ymax) / 2.0
num = (Math.sqrt((xmax-xmin)**2 + (ymax-ymin)**2) / step).ceil + 5

# --- 書き出し ---
file = File.open(input_file, &#39;w&#39;)
begin
file.write "h#十字配置完了\n"
file.write "pl\n" # 曲線属性開始

(-num..num).each do |i|
(-num..num).each do |j|
px = cx_mid + i * u[0] + j * v[0]
py = cy_mid + i * u[1] + j * v[1]

# 十字の端点4つすべてが領域内にあるか厳密にチェック
pts = [
[px, py - half], [px, py + half],
[px - half, py], [px + half, py]
]

if pts.all? { |pt| inside?(pt[0], pt[1], poly) }
file.write "%.6f %.6f %.6f %.6f\n" % [px, py - half, px, py + half]
file.write "%.6f %.6f %.6f %.6f\n" % [px - half, py, px + half, py]
end
end
end

file.write "#\n" # 曲線属性終了
file.write "hr\n"
ensure
file.close
end

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni102-red.in.shared-server.net>
・ツリー全体表示

Re:レイヤーグループ縮尺について
 たこさん E-MAIL  - 26/3/5(木) 10:57 -
▼hogehogeさん:
>▼たこさんさん:
>
>レスが付きませんね。
>
>>DXFファイルを読み込んだ際にどのようにレイヤーグループ縮尺が決定しますか?
>jww側で操作しています。
>
>>希望としては毎回1/100で読込がしたいです。
>>何か良い方法はございますか?
>設定→基本設定→DXFのタブ→図面範囲を読み込むのチェックを外す。
>新規jwwを立ち上げて、1/100に設定してから、DXFファイルを読み込む。
>
>ドラッグアンドドロップの場合は、jw_win.jwfで、各レイヤーGの縮尺を1/100に設定しておく良いと思いますが、実験していません。
>確認して、此処に結果を書き込むと、皆さんの役に立つかもしれません。
>
>>また、DXFヘッダ変数で制御可能でしょうか?
>出来ません。
>元々、DXFは1/1です。レイヤーGに縮尺設定できるのは、jwwの特性であり、DXFに、縮尺の概念は在りません。
>
>>※DXFの形式はAutoCAD R12 (AC100909)になります。
>>※レイヤーグループ縮尺を手動で変更する方法は理解しています。

ご返答ありがとうございます。
「設定→基本設定→DXFのタブ→図面範囲を読み込むのチェックを外す。」
非常に参考になりました。

DXFの概念を深堀して勉強していきたいと思います。
外部変形でレイヤーGに縮尺設定変更、「実寸固定」「文字サイズ変更ON」が可能であれば、複数ファイルを一括で1/100に変換できるアプリを作りたいと考えてます。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni105-red.in.shared-server.net>
・ツリー全体表示

Re:レイヤーグループ縮尺について
 hogehoge  - 26/3/4(水) 23:12 -
▼たこさんさん:

レスが付きませんね。

>DXFファイルを読み込んだ際にどのようにレイヤーグループ縮尺が決定しますか?
jww側で操作しています。

>希望としては毎回1/100で読込がしたいです。
>何か良い方法はございますか?
設定→基本設定→DXFのタブ→図面範囲を読み込むのチェックを外す。
新規jwwを立ち上げて、1/100に設定してから、DXFファイルを読み込む。

ドラッグアンドドロップの場合は、jw_win.jwfで、各レイヤーGの縮尺を1/100に設定しておく良いと思いますが、実験していません。
確認して、此処に結果を書き込むと、皆さんの役に立つかもしれません。

>また、DXFヘッダ変数で制御可能でしょうか?
出来ません。
元々、DXFは1/1です。レイヤーGに縮尺設定できるのは、jwwの特性であり、DXFに、縮尺の概念は在りません。

>※DXFの形式はAutoCAD R12 (AC100909)になります。
>※レイヤーグループ縮尺を手動で変更する方法は理解しています。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni104-red.in.shared-server.net>
・ツリー全体表示

レイヤーグループ縮尺について
 たこさん E-MAIL  - 26/3/3(火) 10:45 -
DXFファイルを読み込んだ際にどのようにレイヤーグループ縮尺が決定しますか?
希望としては毎回1/100で読込がしたいです。
何か良い方法はございますか?
また、DXFヘッダ変数で制御可能でしょうか?

※DXFの形式はAutoCAD R12 (AC1009)になります。
※レイヤーグループ縮尺を手動で変更する方法は理解しています。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36@sni106-red.in.shared-server.net>
・ツリー全体表示

Re:文字貼付ボタンが消えた?
 sz  - 26/3/2(月) 14:57 -
▼ゆうさん:
>貼付ボタンが消えて、連・S-JIS・文書・NOTEPADが表示されています。
>エクセルから文字を貼付たいのですが。

私も最近バージョン8台から10.02.1へアップデートして、
この機能が使えなくなっていて検索してここにたどり着きました。

エクセル等の表を元に図面を作る際に便利で、よく使ってましたが出来なくなったので
今は文字選択状態でNOTEPAD→貼付けて上書き保存して閉じるで対処しています。

技術上可能ならバージョンアップで戻ってくるといいですね。

引用なし

パスワード


<Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Kinza/3.9.1@sni101-red.in.shared-server.net>
・ツリー全体表示

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

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