Jw_cad 情報交換室−その3
JWW についての情報交換の場としてお使いください
初心者の方などのご相談は
Jw_cad 相談
室−その2をご利用ください
なお、情報交換室と相談室の両方に同じ内容を投稿するのはご遠慮ください
2009年9月以前の発言は
過去ログのページからご覧ください。
それ以降の過去ログは消失しています。
申し訳ありませんが、復活の予定はありません。
|
|
tonbo
- 26/6/19(金) 20:59 -
|
GoogleのAIモードに手伝ってもらい ソリッド色変更の外部変形を作ってみました。
パワーシェルでパレットを立ち上げ好きな色を選べます。
興味のある方はお試しください。
*左端のダブルクォーテーション( " )の前に半角スペースが無いと上手く動きませんでした
-----------ソリッド色変更.bat---------------------------
@REM 一括 ソリッド色変更(全グループレイヤ対象)
@echo off
REM
REM #jww
REM #cd
REM #h1
REM #hcソリッドの色を変更 範囲選択
REM #g1
REM #hr
REM #e
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"Add-Type -AssemblyName System.Windows.Forms; " ^
"$d = New-Object System.Windows.Forms.ColorDialog; " ^
"$d.FullOpen = $true; " ^
"if ($d.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { " ^
" $hex = '#{0:X2}{1:X2}{2:X2}' -f $d.Color.R, $d.Color.G, $d.Color.B; " ^
" Set-Content -Path 'color.txt' -Value $hex -Encoding Ascii; " ^
"}"
copy jwc_temp.txt temp.txt
jgawk -f ソリッド色変.awk temp.txt > jwc_temp.txt
---------------------キリトリ---------------------------------------------
------------------ソリッド色変.awk-----------------------------------------
BEGIN {
color_file = "color.txt"
if ((getline < color_file) > 0) {
hex_color = $0
}
close(color_file)
}
/^hq/ {print "hd";next}
/^lc10/ {
print "lc 10 "hex_color
next
}
{print $0}
-----------------------------------------------------------
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
|
|
Since Dos
- 26/6/20(土) 15:52 -
|
▼tonboさん:
>*左端のダブルクォーテーション( " )の前に半角スペースが無いと上手く動きませんでした
半角スペースが無いと、パレットが立ち上がらないで、いきなり前回の色に変更されますね。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36@sni102-red.in.shared-server.net>
|
|
tonbo
- 26/6/20(土) 19:08 -
|
作成した色と選択した色をカレントのTXTファイルに保存し
次回起動時に読み込むようにしました。(してもらいました。)
JW_CAD本体のカラーパレットとは同期しません。
AWKスクリプトは変更なしです。
-------------------------------------------------------
@rem 一括 ソリッド色変更(全グループレイヤ対象)
@echo off
rem
rem #jww
rem #cd
rem #h1
rem #hcソリッドの色を変更 範囲選択
rem #g1
rem #hr
rem #e
powershell -noprofile -executionpolicy bypass -command ^
"add-type -assemblyname system.windows.forms; " ^
"$d = new-object system.windows.forms.colordialog; " ^
"$d.fullopen = $true; " ^
"$sf = 'color_settings.txt'; " ^
"if (test-path $sf) { " ^
" $lines = get-content $sf; " ^
" if ($lines.count -ge 2) { " ^
" if ($lines[0]) { $d.color = [system.drawing.colortranslator]::fromhtml($lines[0]) }; " ^
" $arr = $lines[1] -split ',' | foreach-object { [convert]::toint32($_, 10) }; " ^
" $d.customcolors = $arr; " ^
" } " ^
"} " ^
"if ($d.showdialog() -eq [system.windows.forms.dialogresult]::ok) { " ^
" $hex = '#{0:x2}{1:x2}{2:x2}' -f $d.color.r, $d.color.g, $d.color.b; " ^
" set-content -path 'color.txt' -value $hex -encoding ascii; " ^
" $ccText = $d.customcolors -join ','; " ^
" @($hex, $ccText) | set-content -path $sf -encoding ascii; " ^
"}"
copy jwc_temp.txt temp.txt
jgawk -f ソリッド色変.awk temp.txt > jwc_temp.txt
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni104-red.in.shared-server.net>
▼tonboさん:
> 興味のある方はお試しください。
試してみました。
>作成した色と選択した色をカレントのTXTファイルに保存し
>次回起動時に読み込むようにしました。(してもらいました。)
とても良いですね。
>AWKスクリプトは変更なしです。
変更前は、任意色では無いソリッドも対象にした方が、良いかなと(私は)思いました。
この時注意するのは、付けている曲線属性を無くさないようにする事のようでした。
※今仕事で利用している図面にあるソリッドが、たまたま任意色では無いソリッドだったので、(少し)気になりました。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni103-red.in.shared-server.net>
|
|
tonbo
- 26/6/22(月) 10:43 -
|
標準色のソリッドは 印刷時真っ黒になってしまうので使っていませんでした。
ソリッド色変.awkを修正して任意色以外のソリッドも対応するようにしてみました。
--------------# ソリッド色変.awk---------------
BEGIN {
color_file = "color.txt"
if ((getline < color_file) > 0) {
hex_color = $1
}
close(color_file)
}
/^hq/ {print "hd";next}
/^s[lceog]/ {
print "lc 10 "hex_color
print $0
next
}
{print $0}
-----------------------------------------------
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni103-red.in.shared-server.net>
▼tonboさん:
>標準色のソリッドは 印刷時真っ黒になってしまうので使っていませんでした。
(私が)今仕事で利用している図面では、任意色では無いソリッドを利用しています。
この利用方法は、今まで(あまり目にしたことは)無かったように思います。
もともとjw_cadで書かれた図面ではなく、データー変換で jwwファイルにしたものです。
そして、真っ黒になることを意図的にねらって、そうしている図面のようにも思います。
(本来)データーが大きめのファイルなので、MaCADでの編集も併用しているのですが、MaCADだとそのソリッドが無くなってしまうのが(ちょっと)つらいところではあります。
>ソリッド色変.awkを修正して任意色以外のソリッドも対応するようにしてみました。
ありがとうございます。
(昨日)自分で修正したスクリプトと見比べてさせて頂きました。
──────
そもそも、私は自らソリッドの作図をする事がほとんど無いので、今回ソリッドの解説サイトなどを見たりもしていました。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni106-red.in.shared-server.net>
>▼tonboさん:
>ソリッド色変.awkを修正して任意色以外のソリッドも対応するようにしてみました。
ありがとうございます。
>▼いっちさん:
こんにちは、お世話になります。
PowerShell_Ver7.x で動作しないので、tonboさんには失礼ですが、
編集させて頂きました。
=============== ソリッド色変更.bat ==================
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
Add-Type -AssemblyName System.Windows.Forms; ^
$d = New-Object System.Windows.Forms.ColorDialog; ^
$d.FullOpen = $true; ^
$sf = '%~dp0color_settings.txt'; ^
if ([System.IO.File]::Exists($sf)) { ^
$lines = [System.IO.File]::ReadAllLines($sf); ^
if ($lines.Count -ge 2) { ^
if ($lines[0]) { ^
$d.Color = [System.Drawing.ColorTranslator]::FromHtml($lines[0]) ^
}; ^
$arr = $lines[1] -split ',' ^| Foreach-Object { [Convert]::ToInt32($_, 10) }; ^
$d.CustomColors = $arr; ^
} ^
} ^
if ($d.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) { ^
$hex = '#{0:X2}{1:X2}{2:X2}' -f $d.Color.R, $d.Color.G, $d.Color.B; ^
[System.IO.File]::WriteAllText('%~dp0color.txt', $hex); ^
$ccText = $d.CustomColors -join ','; ^
[System.IO.File]::WriteAllLines($sf, @($hex, $ccText)); ^
}
copy jwc_temp.txt temp.txt
jgawk -f ソリッド色変2.awk temp.txt > jwc_temp.txt
:pause
================================================
----------- ソリッド色変2.awk (まんま) ---------
BEGIN {
color_file = "color.txt"
if ((getline < color_file) > 0) {
hex_color = $1
}
close(color_file)
}
/^hq/ {print "hd";next}
/^s[lceog]/ {
print "lc 10 "hex_color
print $0
next
}
{print $0}
------------------------------------------------
※ 難を言うと、PowerShellの動作が遅い(自PCスペックでは^^^)
自由に突っついてみてください。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:152.0) Gecko/20100101 Firefox/152.0@sni104-red.in.shared-server.net>
▼R.Nさん:
こんにちは。
お世話になります。
>PowerShell_Ver7.x で動作しないので
私のパソコンでは、どちらのコードでも動作しました。
※R.N さんのパワーシェルのコードは、アポストロフィーが、' に変わってしまっているので、動作確認される方は、テキストエディタなどでそれを置換する必要があります。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni101-red.in.shared-server.net>
|
|
tonbo
- 26/6/24(水) 22:08 -
|
▼R.Nさん:
>PowerShell_Ver7.x で動作しないので、tonboさんには失礼ですが、
>編集させて頂きました。
いえいえ ほとんどAIまかせですから・・
お願いがあります color_settings.txtから 2行のデータを読み込んで立ち上がっていますが 選択色は color.txt 作成した色は color_settings.txt
にするには何処を編集すれば良いでしょうか ご教授お願いします。
color.txtを編集して読み込ませるのにこの方が都合がいいです。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
▼tonboさん:
>いえいえ ほとんどAIまかせですから・・
はじめまして、
スクリプトの提供、ありがとうございます。
私も、たまたま使用させて頂いて、エラーが出て動作しなかったので、
"AI"に聞いてみたまでで、PowerShellのスクリプト言語は知りません。
適当に処理内容を想定しているだけのことです。
>お願いがあります color_settings.txtから 2行のデータを読み込んで立ち上がっていますが 選択色は color.txt 作成した色は color_settings.txt
>にするには何処を編集すれば良いでしょうか ご教授お願いします。
>color.txtを編集して読み込ませるのにこの方が都合がいいです。
読み込んだデータ(color_settings.txt)と新規に書き出すデータ(color.txt )を同じにする の意味が--?
すみません。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:152.0) Gecko/20100101 Firefox/152.0@sni101-red.in.shared-server.net>
|
|
tonbo
- 26/6/25(木) 8:37 -
|
▼R.Nさん:
RES、ありがとうございます
>読み込んだデータ(color_settings.txt)と新規に書き出すデータ(color.txt )を同じにする の意味が--?
外部変形で選択したソリッドカラーをカラーパレットに渡して立ち上げようとしましたが
color_settings.txtの1行目だけ上書きするのがAWKでは難しかったので、
color.txtを単純に上書きした方がすっきりすると思ったからです。
文章で表すと難しいです 申し訳ありません。
作りたい外部変形は選択したソリッド色でカラーパレットを立ち上げ
パレットの右側のバーで濃淡を調整してから選択色と同色のソリッドを全部変換する。
みたいに考えてます。
AIに相談しながら作ってみます。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni102-red.in.shared-server.net>
<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:152.0) Gecko/20100101 Firefox/152.0@sni101-red.in.shared-server.net>
▼R.Nさん:
tonboさんあてだけど、朝起きたら R.Nさんが投稿していたので、私も確認しました。
R.Nさんの今回のパワーシェルのコードなら jgawk で下記の2つのファイル内容を同じにした場合でも、正常動作します。
※もちろん、2つのファイル内容が違うままでも、正常動作します。
1)color.txt
2)color_settings.txt
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
▼いっちさん:
おはようございます。
>tonboさんあてだけど、朝起きたら R.Nさんが投稿していたので、私も確認しました。
>
>R.Nさんの今回のパワーシェルのコードなら jgawk で下記の2つのファイル内容を同じにした場合でも、正常動作します。
>※もちろん、2つのファイル内容が違うままでも、正常動作します。
>
>1)color.txt
>2)color_settings.txt
検証、ありがとうございます。
batファイルに "REM #cd" が必要と思います。
記述しない場合は、"%~dp0color.txt"、"%~dp0color_settings.txt"等、
batのあるフォルダーを指定する必要があると思います。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:152.0) Gecko/20100101 Firefox/152.0@sni105-red.in.shared-server.net>
|
|
tonbo
- 26/6/28(日) 22:20 -
|
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
|
|
tonbo
- 26/6/29(月) 19:05 -
|
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
▼R.Nさん:
おはようございます。
返信する文章をどのような文章にするかで、迷ってしまい返信が遅れてしまいました。
申し訳ありません。
私が記載した
> jgawk で下記の2つのファイル内容を同じにした
については、AWKスクリプトのENDブロックで行っています。
この外変の初回実行時に、「色の設定」画面でキャンセルした場合、つまり
length(hex_color)>0 ではない場合には、
"color_settings.txt" に hex_color を書き出さないようにしました。
>batファイルに "REM #cd" が必要と思います。
どのファイルか分からなくならないようにファイル名を
・ソリッド色変更3.bat
・ソリッド色変3.awk
にして、バッチファイルについては、パワーシェルのコードを差し替えただけで、それ以外はいじらなかった為、すでに、
rem #cd
が記載されていました。
>batのあるフォルダーを指定する必要があると思います。
jw_cadの外部変形の話では無いのですが、インターネット検索を行ったところ
cd /d %~dp0
の記事がいくつかヒットしました。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni105-red.in.shared-server.net>
▼いっちさん:
こんにちは、
PCがグリーンスクリーンになり死んで--、失礼しました。
外付けHDにバックアップしていて、それが原因で---
最近のデータがなくなってしまいました。
>返信する文章をどのような文章にするかで、迷ってしまい返信が遅れてしまいました。
>申し訳ありません。
>
>私が記載した
>> jgawk で下記の2つのファイル内容を同じにした
>については、AWKスクリプトのENDブロックで行っています。
>
>この外変の初回実行時に、「色の設定」画面でキャンセルした場合、つまり
>length(hex_color)>0 ではない場合には、
>"color_settings.txt" に hex_color を書き出さないようにしました。
キャンセルしたら、何もしないのでは?
>>batファイルに "REM #cd" が必要と思います。
>
>どのファイルか分からなくならないようにファイル名を
>・ソリッド色変更3.bat
>・ソリッド色変3.awk
>にして、バッチファイルについては、パワーシェルのコードを差し替えただけで、それ以外はいじらなかった為、すでに、
>
>rem #cd
>
>が記載されていました。
>
>>batのあるフォルダーを指定する必要があると思います。
>
>jw_cadの外部変形の話では無いのですが、インターネット検索を行ったところ
>
>cd /d %~dp0
>
>の記事がいくつかヒットしました。
jww以外でも使うことがあるのでは、と思い---
<Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:152.0) Gecko/20100101 Firefox/152.0@sni104-red.in.shared-server.net>
▼R.Nさん:
こんにちは。
>キャンセルしたら、何もしないのでは?
外部変形としての動作はそうです。
>この外変の初回実行時に、「色の設定」画面でキャンセルした場合、つまり
>length(hex_color)>0 ではない場合には、
>"color_settings.txt" に hex_color を書き出さないようにしました。
外部変形としては、何もしていないのだから、その時は、"color_settings.txt" など作らない方が良いと思って、そういうコードを入れただけです。
あくまで初回実行時の話で、一度でも普通に外部変形を実行してしまったら、意味のないコードですので、そういうコードは入れたくないと思う方は、入れなければ良いだけです。
たぶん、R.N さんは、私とは違う方法で、(すでに)作られているのだと思っています。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni102-red.in.shared-server.net>
▼tonboさん:
>▼R.Nさん:
あてなのに、お邪魔してごめんなさい。
外部変形を、動作させて確認したわけではありません。
ちょっと、気になっただけです。
R.Nさんは、外部変形にお詳しい方なので、検証していただけると良いですね。
下記は、外部変形ではありません。
bat ファイルと、awk ファイルを同じフォルダーに入れて、
bat ファイルをダブルクリックするものです。
rem -------- jwf_file_check.bat --------
@echo off
jgawk -f jwf_file_check.awk
pause
# -------- jwf_file_check.awk --------
BEGIN {
print "────────────"
print "その1"
print "────────────"
jwf_file = "c:\jww\jw_win.jwf"
# 下記を実行すると、jw_win.jwf = c:jwwjw_win.jwf になる。
print "jw_win.jwf", "=", jwf_file
# 今のままだと、次の行の if は必ず実行される。
if ((getline < jwf_file) <= 0) {
print "close_1 =", close(jwf_file)
jwf_file = "c:\jww\Sample.jwf"
# 下記を実行すると、Sample.jwf = c:jwwSample.jwf になる。
print "Sample.jwf", "=", jwf_file
} else {
# c:jwwjw_win.jwf というファイルは通常存在しない為、ここが実行されることは無い。
print "close_2 =", close(jwf_file)
}
}
# 引き続き、フルパスの記述方法を変更して確認する。
BEGIN {
print "────────────"
print "その2"
print "────────────"
jwf_file = "c:\\jww\\jw_win.jwf"
# c:\jww\jw_win.jwfがあれば、jw_win.jwf = c:\jww\jw_win.jwf になる。
print "jw_win.jwf", "=", jwf_file
# c:\jww\jw_win.jwfがあれば、if は実行されない。
if ((getline < jwf_file) <= 0) {
print "close_3 =", close(jwf_file)
jwf_file = "c:\\jww\\Sample.jwf"
print "Sample.jwf", "=", jwf_file
} else {
# c:\jww\jw_win.jwfがあれば、クローズされる。
print "close_4 =", close(jwf_file)
}
}
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
|
|
tonbo
- 26/7/3(金) 22:13 -
|
▼いっちさん:
お世話になります
前にもAWKでフルパス指定が上手くいかなかったことを思いだしました。
これが原因だったのですね 目からウロコでした。
丁寧な説明ありがとうございました。
jwf_file = "c:\jww\jw_win.jwf" ⇒ jwf_file = "c:\\jww\\jw_win.jwf"
jwf_file = "c:\jww\Sample.jwf" ⇒ jwf_file = "c:\\jww\\Sample.jwf"
slc_spe.awk
cl_bright.awk
cl_set.awk
該当部分を全て訂正しました。
<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36@sni107-red.in.shared-server.net>
Jw_cad Copyright (C)1997-2021 Jiro Shimizu & Yoshifumi Tanaka