Jw_cad
Jw_cad 情報交換室−その3

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

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


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

Re(2):文字を少し大きく印刷したい
 牛渡 WEB  - 15/01/06(火) 20:51 -

引用なし
パスワード
   >「文字フォント表示倍率」を変えるとよいです。
>基本 --> 基本設定 --> 一般(1) の「文字フォント表示倍率」

横から失礼しますが、この機能使ったことなかったけど、印刷結果にも
ちゃんと反映されるんですね。 おもしろい。

一文字づつの中心を起点に拡大されるので、あまり倍率を上げ過ぎると
文字同士が重なりますね。 1.2倍くらいなら違和感なし。 1.4倍くらい
で文字間 0.0mm でも、ちょっと重なりはあっても読めますね。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@126.213.139.147>

Re(1):文字を少し大きく印刷したい
 TOP  - 15/01/06(火) 9:06 -

引用なし
パスワード
   エルフ 様
「文字フォント表示倍率」を変えるとよいです。
基本 --> 基本設定 --> 一般(1) の「文字フォント表示倍率」
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0@119.231.228.193>

Re(1):文字を少し大きく印刷したい
 いっち  - 15/01/06(火) 7:50 -

引用なし
パスワード
   ▼エルフさん:

> (言うまでもなく老眼対策です)
> A1等100%出力時はそのままで出したいので、
> 50%出力時のみ、チェック用にほんの少し大きく見たいです。

ご質問に対する回答とは言えませんが、
私は、Hazukiルーペを使っています。

Hazukiルーペにも種類があるので、ネットで購入する場合には、
実際に眼鏡やさんとか家電量販店などで、確認してから購入しないと
失敗する場合があります。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@unknown>

文字を少し大きく印刷したい
 エルフ  - 15/01/06(火) 0:21 -

引用なし
パスワード
   CAD内の文字サイズ設定はそのままに、
縮小印刷のときだけ少しでいいので文字を大きめに印刷したいのですが
その方法はありますか?
(言うまでもなく老眼対策です)

A1等100%出力時はそのままで出したいので、
50%出力時のみ、チェック用にほんの少し大きく見たいです。
多少文字が重なったりする弊害は無視します。
寸法図形の寸法値等すべての文字対象です。

JWW上ではなく、それが可能なJWW印刷ソフトでもかまいません。
・ツリー全体表示
<Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4...@58.146.53.202>

Re(2):寸法設定で要望
 mizuki  - 14/12/14(日) 18:12 -

引用なし
パスワード
   ▼ikkiさん:
>
>こんにちは、複写先のファイルの設定が「1:現寸法設定に変更」になっているからではないでしょうか。

ikkiさん、有り難うございます。
確認してから投稿したのですが今は再現出来ませんでした。
そもそも当事務所は環境設定で「個々の寸法図形の設定を継続」に
しているのですが・・・
ともかく有り難うございました。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko@220.209.238.107>

Re(1):寸法設定で要望
 ikki  - 14/12/12(金) 14:58 -

引用なし
パスワード
   ▼mizukiさん:
>S_SET4=  0   0   4   0   0   0
>                      ↑
>6.寸法図形の複写・パラメトリック変形等のときの指定
>0:個々の寸法図形の設定を継続
>1:現寸法設定に変更
>
>上記の設定で「複写・パラメトリック変形」だけではなく
>「コピー」も含めていただけないでしょうか?
>「0:個々の寸法図形の設定を継続」に設定していますが
>「コピー」して「複写」した場合には
>「1:現寸法設定に変更」になってしまうようです。
>
>他に設定するところがあれば教えて下さい。

こんにちは、複写先のファイルの設定が「1:現寸法設定に変更」になっているからではないでしょうか。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; Trident/7.0; MDDRJS; rv:11.0) like Gecko@180.48.175.237>

寸法設定で要望
 mizuki  - 14/12/11(木) 10:13 -

引用なし
パスワード
   S_SET4=  0   0   4   0   0   0
                      ↑
6.寸法図形の複写・パラメトリック変形等のときの指定
0:個々の寸法図形の設定を継続
1:現寸法設定に変更

上記の設定で「複写・パラメトリック変形」だけではなく
「コピー」も含めていただけないでしょうか?
「0:個々の寸法図形の設定を継続」に設定していますが
「コピー」して「複写」した場合には
「1:現寸法設定に変更」になってしまうようです。

他に設定するところがあれば教えて下さい。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko@220.209.238.107>

Re(3):重複線整理されない線の謎
 いっち  - 14/12/09(火) 12:37 -

引用なし
パスワード
   ▼田んぼのトンボさん:

こんにちは。

ご紹介頂いたソフトの動作を、私なりに確認させて頂きました。

不具合の出るファイルというのは、このソフトでも
一瞬ですが、「応答なし」と出ます。

この不具合は、想定されていないのでないでしょうか。

それでもファイル内容は書き換え、変更されました。
それは、このソフトでは、まったく不具合の無いファイルでも
書き換えを行うという、仕様によるものでは無いでしょうか。

QP3さんの投稿記事からも感じ取れましたが、
この不具合は、ファイルの内容が全く同じでも、
途中で止まる時とそうでは無い時があります。
(しかも止まらない時が多い。)

もう少し、様子を見てみようと思います。

もしかしたら、大変すばらしいソフトを紹介して頂いたのかも
しれません。

何もしないでじっと待てば、バグらず、整理ができることが
わかっただけでも、とりあえず私には進歩です。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chr...@unknown>

Re: 図面貼り付けで固まる
 外注図面屋 E-MAIL  - 14/12/09(火) 10:01 -

引用なし
パスワード
   施工図やさん、こんにちは。

以前は、全体図 (躯体/平詳)から図枠への切り張りを手作業でやってましたが、
12枚 (12回)やっても 、jwは何ともありませんでした。

施工図やさんとの違いは、おそらくWindowsの環境j構成。
私は、パフォーマンス優先設定で視覚効果はエアロによるデスクトップテーマだけ。
その他、自分にとって不要なサービスを切っています。

図面の切り張りなら自動化できる、外部変形のレイアウトもどきをお勧めします。

切り張りでないのなら、昔、Tackさんから教えてもらったメモリークリーナー
http://freesoft-100.com/pasokon/memory.html

メモリー搭載量はWindowsの軽量化をしないのであれば、64ビットで8ギガは欲しいですね。
32ビットなら2〜3ギガです。

-- CMN v0.61aβ --
・ツリー全体表示
<Mozilla/4.0(CMN)@unknown>

Re2: JacConvertを使ったjww→dwg変換について
 外注図面屋 E-MAIL  - 14/12/09(火) 9:40 -

引用なし
パスワード
   施工図やさん、こんにちは。

JacConvertはチェックボックスがたくさんあるので、何度かやって自分なりのスタイルを見つけ出すしかないですね。
私の場合、jwの画面状態をそのまま再現したいのですが、
jwの標準フォントmsゴシックは、実はauto ユーザーから嫌われます。

理由は、ちょっと重くなるから。
彼らが好むのは線文字フォント。 auto標準はスタンダード.shxとかのカクカク線文字ですね。
まあ、auto cadの図枠にいくつか文字スタイルがあるので、それに合わせてあげればいいのでしょう。
でも、msゴシックとは文字幅が違うので、調整しないといけませんが。

変換時の基準縮尺が0グループとは知らなかったです。
いつも0グループから描いていたので、たまたま丁度良かったと (^^ゞ

>JacConvert変換すると何とか寸法属性がautoにもわたるようで
>auto図面でといの要望にはこれでしのいでしますが
>渡されたほうはデーターとしては使えないのかもしれませんね

そのまま渡すより、auto cadで、まずは上書きしてやること。
次に、寸法スタイルや文字スタイルをauto cadの図枠に入ってるものにあわすこと。
でも、寸法スタイルをJac_dimから変えると壁の寄り寸がくっついてしまうんです。
だから、手作業で直さないといけません (^^ゞ

つまり、auto cadの操作をある程度知ってないといけない。
変換したファイルをauto の図枠に入れるにはブロック挿入か基点コピーですから。

>外注図面屋さんの書かれている内容がかなり高度でなかなか理解
>できませんがんが 情報をこれからもよろしく

操作方法を文字で詳しく書くと、分かりにくくなるんでいけません (^^ゞ
特に、我々、絵の仕事をやっていると、文章作りはいけません。
絵と文字は、脳の違うとこを使うので。

私は、子供のころは作文は得意だったのですが、
この稼業をやるようになって、なんかおかしな文章になってしまいます。

-- CMN v0.61aβ --
・ツリー全体表示
<Mozilla/4.0(CMN)@unknown>

Re(1):JacConvertを使ったjww→dwg変換について
 施工図や  - 14/12/09(火) 1:07 -

引用なし
パスワード
   JacConvertこれありがたいのですが
解説があまりないので、試行錯誤で PDF出力の時は
JWWの線情報を使わないでようやく線幅を設定でs来ました
線幅20で細線PDF 100で印刷PDFとしています

JWWの図面をautoの図面に返還で渡すのですが
0グループに表示させたい縮尺にして変換すると
jww図面の主縮尺で渡せます 異形縮尺はダメですが
この時0グループがからであればダミーで点でも入れておく

DXF変換も0グループの縮尺になるようですね。

JacConvert変換すると何とか寸法属性がautoにもわたるようで
auto図面でといの要望にはこれでしのいでしますが
渡されたほうはデーターとしては使えないのかもしれませんね

外注図面屋さんの書かれている内容がかなり高度でなかなか理解
できませんがんが 情報をこれからもよろしく
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko@218.33.236.203>

図面貼り付けで固まる
 施工図や  - 14/12/09(火) 0:39 -

引用なし
パスワード
   XPのもよくあったのですが メモリー管理がいいはずのwin8 32を使っています

20メガ程度の図面でA1-20枚程度の図面を書き
1枚ずつの図面化にするため コピー貼り付けを繰り返していると
7、8枚ぐらいでコピー元図面が応答しなくなり最悪jwwを再起動させています。

先ほどwin8の64環境ではと思い試してみましたが やはり同じ症状が出ました
メモリー不足ではないのですがjww側の処理が遅くなるのか
数十枚の図面1枚化をやるときにストレスになっております

何か打開策はないでしょうか
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko@218.33.236.203>

Re: 本当に重なり合っている?
 外注図面屋 E-MAIL  - 14/12/08(月) 19:41 -

引用なし
パスワード
   kojimaさん、こんにちは。

午前中に、建築フォーラムJacサポート掲示板に今回のことを書いておいたので、作者から回答があるかもしれません。

-- CMN v0.61aβ --
・ツリー全体表示
<Mozilla/4.0(CMN)@113.158.69.167>

Re(2):一括連続印刷
 LA  - 14/12/08(月) 17:33 -

引用なし
パスワード
   ごめんなさい。ひとつ、書忘れました。

連続印刷.BAT内の
start /d%~dp0 c:\tool\uwsc\uwsc 連続印刷1.uws tmp.txt
の行ですが、
c:\tool\uwsc\uwsc の部分を、UWSCインストール場所に合わせて、適宜修正してください。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0; Sleipnir/2.9.19) lik...@202.222.146.18>

Re(2):一括連続印刷
 LA  - 14/12/08(月) 17:27 -

引用なし
パスワード
   //(続き)
FUNCTION レイヤ文字列から(ls,ofs,l,g=-1) //g=-1:グループ
n=l+g*16+ofs
DbgPRINT(n+":"+l+","+g,0)
IF (ASC(COPY(ls,INT(n/6)+1,1))-$30) AND POWER(2,(5-(n MOD 6))) THEN RESULT=1 ELSE RESULT=0
FEND

PROCEDURE レイヤ設定ファイル作成読込(id0,ly[15][16],ls="",rs="")
// s="" //"PRTCT_CH=1<#CR>" //プロテクト有効にしたい場合はこれ
s="#ls="+ls+"<#CR>#rs="+rs+"<#CR>"
FOR j=0 TO 15
 s=s+"LAYCND_"+FORMAT(j,1,-1)+"="+JOIN(ly[j],",")+"<#CR>"
NEXT
DbgPRINT(s)
f=FOPEN("tmp0.jwl",F_WRITE)
FPUT(f,s)
FCLOSE(f)
//jwl読込による排他ロック回避 copyコマンドによる上書で可(v7.11時点)
DOSCMD("COPY /y tmp0.jwl tmp.jwl",FALSE,dbg>0)
//Win32API MoveFileExで上書は不可っぽい
//IF !MoveFileExA("tmp0.jwl","tmp.jwl",MOVEFILE_REPLACE_EXISTING) THEN DbgPRINT("書込失敗",2)
環境設定ファイル読込(id0,GET_CUR_DIR+"\tmp.jwl");SLEEP(wt)
IF !dbg THEN DeleteFileA("tmp0.jwl")
FEND

//環境設定ファイル読込
PROCEDURE 環境設定ファイル読込(id0,fp)
id=OpenDiagJww(id0,32923,"開く") //環境設定ファイル読込
InputStr(id,fp,tt);SLEEP(0.1)
PushBtnOK(id,"開く");SLEEP(0.1) //ここで止りやすい
FEND

//印刷コマンド時に倍率のリストをクリック
PROCEDURE 印刷倍率設定(id0,z)
IF z<6 THEN z=INT((z+0.00001)*1000)/10 //6以上は%表記と解釈 少数1位まで 50%->49.9%になったので、微調整
IF GETSLCTLST(id0)="任意倍率 ( "+z+" % )" THEN EXIT //同じ任意倍率が続く場合
IFB !PushBtnLst(id0,z+"% (") THEN
 //PushBtnLst(id0,"任意倍率") //これだと、押さない
 WHILE !CLKITEM(id0, "任意倍率", CLK_LIST or CLK_SHORT);SLEEP(wt);WEND
 id=WaitActiveDlg("印刷倍率入力",TRUE)
 InputStr(id,z)
 PushBtnOK(id)
 WaitActive(jww)
ENDIF
FEND

//カラー印刷設定(id0,kk)
PROCEDURE カラー印刷設定(id0,kk)
SELECT kk
CASE 1
 IF CHKBTN(id0,"カラー印刷")=1 THEN CLKITEM(id0,"カラー印刷",CLK_BTN,FALSE)
CASE 2
 IF CHKBTN(id0,"カラー印刷")=0 THEN CLKITEM(id0,"カラー印刷",CLK_BTN,TRUE)
SELEND
FEND

//jwwファイル読込
FUNCTION jwwファイル読込(id0,var fp1,var fn1,var fp,var fn)
RESULT=FALSE
IF fn1="" THEN EXIT
fp=カレントjww(id0,1);DbgPRINT(fp)
IF fp1=fp THEN EXIT
IF !FOPEN(fp1,F_EXISTS) THEN EXIT
DbgPRINT(fp1+"を開きます",2)

id=OpenDiagJww(id0,57601,"ファイル選択");SLEEP(wt*10)//ファイルを開く
PushBtn(id,"リスト表示")//リスト表示 ON
i=POS("\",fp1,-1)
IF i=0 THEN fpp=fp1 ELSE fpp=COPY(fp1,1,i-1)
DbgPRINT(fpp);DbgPRINT(fn1)
CLKITEM(id, fpp, CLK_TREEVEW or CLK_LEFTCLK);SLEEP(wt)
WHILE STATUS(id,ST_VISIBLE)
 CLKITEM(id,fn1,CLK_LSTVEW or CLK_LEFTCLK or CLK_DBLCLK);SLEEP(wt);
WEND;SLEEP(wt)
fp=fp1;fn=fn1
PushBtnOK(WaitActiveDlg("jw_win"),"いいえ");SLEEP(1) //上書保存ダイアログの回避 上書保存しないので、必要な場合は保存しておく事
RESULT=TRUE
FEND

//図面情報コピーして現在のjwwファイルのパスを取得
FUNCTION カレントjww(id0,fPath=0) //fPath0:ファイル名のみ 1:ファイル名を含むフルパス 2:フォルダのフルパス
PostMessageA(IDTOHND(id0), WM_COMMAND,32987, 0)//図面情報コピー
RESULT=""
SLEEP(wt)
s=GETSTR(0)
re=RegExp.Exe("^(.+)\\([^\\]+)\.jww ",s)
IF re.count=0 THEN EXIT

SELECT fPath
CASE 0
 RESULT=re.Item(0).SubMatches.Item(1)+".jww"
CASE 1
 RESULT=TRIM(re.Item(0)+"")
CASE 2
 RESULT=re.Item(0).SubMatches.Item(0)+"\"
SELEND
DbgPRINT("カレントJWW:"+RESULT)
FEND

//図面情報コピーして印刷基準点取得
PROCEDURE 図面情報コピーして印刷基準点取得(id0,var px1,var py1)
IF px1<>"" THEN EXIT
PostMessageA(IDTOHND(id0), WM_COMMAND,32987, 0)//図面情報コピー
SLEEP(wt)
s=GETSTR(0)
re=RegExp.Exe("\-P[0-9\.\-]+,[0-9\.\-]+,[0-9\.\-]+,([0-9\.\-]+),([0-9\.\-]+)",s)
//PRINT RegExp.Test("\-P[0-9\.\-]+,[0-9\.\-]+,[0-9\.\-]+,([0-9\.\-]+),([0-9\.\-]+)",s);SLEEP(10)
px1=VAL(re.Item(0).SubMatches.Item(0)+"")
py1=VAL(re.Item(0).SubMatches.Item(1)+"")
FEND

//外変ファイル取込
PROCEDURE 外変ファイル取込(var tjList[],fn=tmp)
f=FOPEN(fn,F_READ)
ExitEX(fn+"が開けません",f=-1)
rows=FGET(f,F_LINECOUNT)-1
jt=SPLIT(FGET(f,F_ALLTEXT,1,TRUE),"<#CR>",TRUE)
FCLOSE(f);SLEEP(wt)
IF !dbg THEN DeleteFileA(fn)

DIM ty[rows]
RESIZE(tjList,rows)

j=0
FOR i=0 TO rows
 op=TRIM(jt[i])
 IFB COPY(op,1,2)="ch" THEN
  s=BETWEENSTR(op,"<#DBL>")
  DbgPRINT(j+":"+s)
  IFB RegExp.Test("(^.+\.jww)|(^| )-[A-Z]",s) THEN
  ty[j]=VAL(BETWEENSTR(op," "," ",2,TRUE),0);DbgPRINT(ty[j])
  tjList[Ipp(j)]=s
  ENDIF
 ENDIF
NEXT
ExitEx("図面情報がありません",j=0)
RESIZE(tjList,j);RESIZE(ty,j)
QSORT(ty,1,tjList)
FEND


//一般関数
FUNCTION Max(i,j)
IF j > i THEN RESULT=j ELSE RESULT=i
FEND

FUNCTION Min(i,j)
IF j < i THEN RESULT=j ELSE RESULT=i
FEND

//TOKENから数値を取出す(初期値=v)
FUNCTION TokenV(sep,var st,v=0,a3=FALSE,a4=FALSE)
RESULT=VAL(TOKEN(sep,st,a3,a4),v)
FEND

//btnをチェックしながら押す
PROCEDURE PushBtn(id,s,btn=CLK_BTN,on=TRUE,num=1)
DbgPRINT(s)
WHILE CHKBTN(id,s,num)<>on
 CLKITEM(id,s,btn,on,num);SLEEP(wt)
WEND
FEND

//btn(押すとdlgを閉じる)をチェックしながら押す
PROCEDURE PushBtnOK(id,s="OK",btn=CLK_BTN,on=TRUE,num=1)
DbgPRINT(s)
WHILE STATUS(id,ST_VISIBLE)
 CLKITEM(id,s,btn,on,num);SLEEP(wt);
WEND
WaitActive(jww)
FEND

//リストをチェックしながら押す リストに無い場合はFALSE
FUNCTION PushBtnLst(id,s,num=1)
IFB ChkTxt_List(id,s,num) THEN
 WHILE POS(s,GETSLCTLST(id,num))=0
  CLKITEM(id, s, CLK_LIST or CLK_SHORT);SLEEP(wt)
 WEND
 RESULT=TRUE
ELSE
 RESULT=FALSE
ENDIF
FEND

//文字列を入力
PROCEDURE InputStr(id,s,num=1)
DbgPRINT(s)
WHILE GETSTR(id,num)<>s
 SENDSTR(id,s,num,TRUE);SLEEP(wt*2)
WEND
SLEEP(wt)
FEND

//ステータスバーの表示を待つ
PROCEDURE WaitSB(id,s)
DbgPRINT(s)
WHILE POS(s,GETSTR(id,1,STR_STATUS))=0
 SLEEP(wt)
WEND
FEND

//ウインドウがアクティブになるまで待つ
FUNCTION WaitActive(s,lock=FALSE)
DbgPRINT(s)
WHILE POS(s,STATUS(GETID(GET_ACTIVE_WIN),ST_TITLE))=0
 SLEEP(wt)
WEND
id=GETID(GET_ACTIVE_WIN)
IF lock and (dbg=0) THEN LockWindowUpdate(IDTOHND(id))
SLEEP(wt)
RESULT=id
FEND

//WM_COMMAND を送ってダイアログを開く
FUNCTION OpenDiagJww(id0,cmd,s,lock=FALSE)
PostMessageA(IDTOHND(id0), WM_COMMAND, cmd, 0)
RESULT=WaitActiveDlg(s,lock)
FEND

//ダイアログがアクティブになるまで待つ
FUNCTION WaitActiveDlg(s,lock=FALSE))
DbgPRINT(s)
id= GETID(s, "#32770", -1)
IF lock and (dbg=0) THEN LockWindowUpdate(IDTOHND(id))
SLEEP(wt)
RESULT=id
FEND

//半角SPCxn 主に、掲示板のSPCx2->全角 対策
FUNCTION Spc(n=2)
s=""
FOR i=1 TO n; s=s+" ";NEXT
RESULT=s
FEND

//ListBox内に文字列があるか調べる
FUNCTION ChkTxt_List(id,s,num=1)
f=FALSE
n=GETITEM(id,ITM_LIST,num,TRUE)
FOR i=0 TO n-1
 IFB POS(s,ALL_ITEM_LIST[i]) THEN
  f=TRUE;BREAK
 ENDIF
NEXT
RESULT=f
DbgPRINT(num+"->"+s+":"+f)
DbgPRINT(JOIN(ALL_ITEM_LIST,"<#CR>"),0)
FEND

//正規表現
MODULE RegExp
FUNCTION Test(pt,s)
regEx.Pattern=pt
RESULT=regEx.Test(s)
FEND

FUNCTION Exe(pt,s)
//戻り値:Matchesコレクションオブジェクト
//RegExp.Exe.Item()を、数値として取出す場合は、一旦文字列にする事
regEx.Pattern=pt
RESULT=regEx.Execute(s)
FEND

FUNCTION Rp(pt,pt2,s)
regEx.Pattern=pt
RESULT=regEx.Replace(s,pt2)+""
FEND
ENDMODULE
/


//インクリメント演算子等
FUNCTION Ipp(var i); RESULT=i; i=i+1;FEND
FUNCTION Imm(var i); RESULT=i; i=i-1;FEND
FUNCTION ppI(var i); i=i+1;RESULT=i;FEND
FUNCTION mmI(var i); i=i-1;RESULT=i;FEND

//強制終了
PROCEDURE ExitEx(s="",f=TRUE,w=1.5)
IF !f THEN EXIT
LockWindowUpdate(0)
IF s<>"" THEN DbgPRINT(s,1)
SLEEP(w)
regEx=NOTHING
EXITEXIT
FEND

//デバッグ用
PROCEDURE DbgPRINT(s,dbg1=dbg)
SELECT dbg1
CASE 1
 FUKIDASI(s,G_MOUSE_X+50,G_MOUSE_Y+50);SLEEP(wt)
CASE 2
 PRINT s;SLEEP(wt)
SELEND
FEND

//この前行まで
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0; Sleipnir/2.9.19) lik...@202.222.146.18>

Re(1):一括連続印刷
 LA  - 14/12/08(月) 17:19 -

引用なし
パスワード
   ▼main1さん:
こんにちは

以前、図面情報文字列のリストから連続印刷する外変を作りましたので、公開します。

例えば、
-P0,0,1
-P500,0,1
-P1000,0,1
-P1500,0,1
の様な文字列を指定すれば、用紙仮枠から図寸で500毎に4連続で印刷します。

あらかじめ、図面の正確な中央に、読取可能点等を作図しておく必要があります。
(書込み線色を補助線色にして、作図→点で用紙仮表示枠の対角の中心点を指定 等)

実行には、umiumiさんが作成された、UWSCが必要です。
http://www.uwsc.info/

下記スクリプトをコピーして、メモ帳等のテキストエディタに貼付け、適当なフォルダに保存してください。
尚、IE11の場合等、各行の先頭に不要な半角spcが混入する場合があるようですので、それは削除してください(batファイルのみでいいです)。

連続印刷.BAT
:=====この次行から
REM 図面情報文字列で連続印刷
REM #jww
REM #cd
REM #h3
REM #hc 図面情報文字列を選択して下さい
REM #g1
REM #bz

copy /Y jwc_temp.txt tmp.txt
start /d%~dp0 c:\tool\uwsc\uwsc 連続印刷1.uws tmp.txt
del jwc_temp.txt
:=====この前行まで

連続印刷1.uws
//==================この次行から===================
//図面情報文字列に従い連続印刷 要UWSC4.7以降
//===事前準備===
//JWWを起動しておく
//正確な用紙中央点に仮点等を配置 ※印刷する全てのjwwファイルに必要
//図面情報文字列のリスト(上から順に印刷)を図面上作成しておく
//プリンタの設定
//現在のjwwファイルの保存(必要な場合) ※他のjwwファイルに移行する場合も上書保存しないので注意
//===使い方===
//外変として実行し、図面情報文字列のリストを選択する
//or あらかじめリストをクリップボードにコピーしておき、単体で実行する
//===文字列 追加option(標準を含め大文字のみ)===
//-Y 用紙サイズ 文字数3を縦とする ex. -YA4R :A4縦 実はRでなくてもよい
//-K モノクロ印刷 0:変更無 1orKのみ:ON 2:カラー
//これ以外は、 FUNCTION 図面情報文字列解釈 のところを参照
OPTION SHORTCIRCUIT //論理演算の短絡評価

//Win32API定義 等
DEF_DLL GetWindowRect(Hwnd,{Long,Long,Long,Long}):long:user32
DEF_DLL PostMessageA(Hwnd,Long,Long,Dword):Bool:user32
DEF_DLL LockWindowUpdate(Hwnd):long:user32
DEF_DLL DeleteFileA(String):Bool:kernel32
CONST WM_COMMAND = $111
PUBLIC regEx;regEx=CREATEOLEOBJ("VBScript.RegExp")
regEx.Global=True;regEx.IgnoreCase=true//大小文字区別無;文字列全体

CONST wt=0.01 //ウェイト小
CONST dbg=0 //DebugMode 0:off 1:fukidasi 2:print
CONST jww=" - jw_win" //JWWのtitle識別用
CONST tmp="tmp.txt" //外変?識別用 外変時に使う引数(jwc_tempのコピー)

DIM xx=0,yy=0,z=1,px=0,py=0,fp="",fn="",ls="",rs="",kk=0 //現在値 参照:図面情報文字列解釈()
DIM xx1=0,yy1=0,z1=1,px1="",py1="",fp1="",fn1="",ls1="",rs1="",kk1=0 //新値
DIM ys1="",hv1="",ys,hv //用紙サイズ
DIM cx,cy,sc //JWWの中央座標,縮尺
DIM ly[15][16] //レイヤ状態 0:非表示 1:表示 2:編集 100:書込 10:/ 20:X
DIM p1st=TRUE //ファイルを開いて最初の印刷
PUBLIC tt;IF KINDOFOS()<20 THEN tt=1 ELSE tt=2 //開くダイアログのファイル名欄
PUBLIC dlgPrnSet
IF KINDOFOS()<22 THEN dlgPrnSet="プリンタの設定" ELSE dlgPrnSet="プリンターの設定" //プリンタの設定ダイアログのtitle Win7,8:ーが付く

id0=GETID(jww,"",-1)

//tjList 取込 他
IFB PARAM_STR[0]=tmp THEN
DIM tjList[0]
外変ファイル取込(tjList)
ELSE
s=TRIM(GETSTR(0))
ExitEx("文字列がありません",s="")
ExitEx("図面情報がありません",!RegExp.Test("(^.+\.jww)|(^| )-[A-Z]",s))
tjList=SPLIT(GETSTR(0),"<#CR>",TRUE)
ENDIF

用紙設定取得(id0,ys,hv);ys1=ys;hv1=hv
中央座標取得(id0,cx,cy)
オフセット常駐(id0)
PUBLIC fp0;fp0=カレントJWW(id0,2)
fn=カレントJWW(id0);fp=カレントJWW(id0,1)

n=RESIZE(tjList);ct=1
FOR i=0 TO n
tj=TRIM(tjList[i]) //LF対策
IF tj="" THEN CONTINUE
DbgPRINT(ct+":"+tj,2)
IFB !図面情報文字列解釈(tj,fp1,fn1,"",xx,yy,z,px1,py1,ys1,hv1,"",ls,rs,kk) THEN
 DbgPRINT("図面情報がありません",2);CONTINUE
ENDIF
p1st=p1st or jwwファイル読込(id0,fp1,fn1,fp,fn)

IFB p1st THEN
 原点準備(id0) //マークジャンプ4に(0,0) x100000 をセット
 印刷コマンドに移行(id0)
 印刷範囲基準点(id0,"中・中")
 図面情報コピーして印刷基準点取得(id0,px1,py1) //px,pyの指定が無いとき
 p1st=FALSE
ENDIF

IFB px1<>"" THEN
 px=px1;py=py1
ENDIF
レイヤ変更(id0,ls,rs,ly)
sc=縮尺取得(id0)
印刷倍率設定(id0,z)
カラー印刷設定(id0,kk)
位置を指定して印刷(id0,cx,cy,px,py,sc,ys1,hv1,ys,hv);SLEEP(1)
WHILE STATUS(GETID(GET_ACTIVE_WIN),ST_TITLE)="jw_win";SLEEP(1);WEND //印刷中ダイアログの間待ち
DbgPRINT("終了");Ipp(ct)
NEXT

オフセット常駐(id0,FALSE)
LockWindowUpdate(0)
DbgPRINT("印刷終了 : "+(ct-1),1);SLEEP(1.5)
DbgPRINT("終了")
regEx=NOTHING
IFB dbg<>0 THEN
ACW(GETID(GET_LOGPRINT_WIN)); WHILE 1;SLEEP(1);WEND
ENDIF
EXIT

//JWWの一連処理用関数

//ダイアログを出して駐在ボタンを押す 解除はsw=FALSE
PROCEDURE オフセット常駐(id0,sw=TRUE)
DbgPRINT("オフセット常駐"+sw)
ACW(id0)
id=OpenDiagJww(id0,32842,"軸角・目盛・オフセット "+Spc()+"設定")
WHILE STATUS(id,ST_ACTIVE)
 IFB CHKBTN(id,"オフセット常駐") =sw
  CLKITEM(id, "Ok", CLK_BTN, True);SLEEP(wt)
 ELSE
  CLKITEM(id, "オフセット常駐", CLK_BTN, sw);SLEEP(wt)
 ENDIF
WEND
FEND

//マークジャンプ4等に、原点位置を設定する
PROCEDURE 原点準備(id0,num="〔4〕")
DbgPRINT("原点準備")
PushBtnOK(OpenDiagJww(id0,32811,"画面倍率・文字表示  設定"),"用紙全体表示");SLEEP(wt);
id=OpenDiagJww(id0,32811,"画面倍率・文字表示  設定");SLEEP(wt)
InputStr(id,"100000");SLEEP(wt)
PushBtnOK(id, "指定倍率表示");SLEEP(wt)
id=OpenDiagJww(id0,32811,"画面倍率・文字表示  設定");SLEEP(wt)
PushBtn(id,num);SLEEP(wt)
PushBtnOK(id, "設定", CLK_BTN or CLK_SHORT);SLEEP(wt)
マークジャンプ4(id0)
FEND

//マークジャンプ4等を使って原点に移動
PROCEDURE マークジャンプ4(id0,num="〔4〕")
PushBtnOK(OpenDiagJww(id0,32811,"画面倍率・文字表示  設定"), num, CLK_BTN,1,2);SLEEP(wt)
//SCKEY(id0,VK_SHIFT,VK_F6) //SHIFT+F6にあてた場合
FEND

//印刷コマンドに移行
PROCEDURE 印刷コマンドに移行(id0)
PushBtnOK(OpenDiagJww(id0,57607,"印刷"))
WaitSB(id0,"印刷範囲を確認してください。")
FEND

//印刷範囲基準点が 中・中 等になるまでボタンを押す
PROCEDURE 印刷範囲基準点(id0,s="中・中")
DbgPRINT("印刷範囲基準点 "+s)
マークジャンプ4(id0)
GETITEM(id0,ITM_BTN)
WHILE ALL_ITEM_LIST[2]<>s
 CLKITEM(id0,"・",CLK_BTN or CLK_SHORT);SLEEP(wt)
 GETITEM(id0,ITM_BTN)
WEND
SLEEP(wt)
FEND

//プリンターの設定ダイアログから現在の用紙を取得
PROCEDURE 用紙設定取得(id0,var ys,var hv)
DbgPRINT("用紙設定取得")
id=OpenDiagJww(id0,57606,dlgPrnSet)
s=GETSLCTLST(id,2)
IF CHKBTN(id,"横") THEN hv="横" ELSE hv="縦"
DbgPRINT("用紙:"+ys+" "+hv)
PushBtnOK(id)
FEND

//プリンターの設定ダイアログで用紙設定
PROCEDURE 用紙の設定(id0,ys1,hv1,var ys,var hv)
IF POS(ys1,ys) AND POS(hv1,hv) THEN EXIT
ACW(id0);sleep(wt)
id=OpenDiagJww(id0,57606,dlgPrnSet)
IF PushBtnLst(id,ys1,2) THEN ys=ys1
PushBtn(id,hv1,CLK_BTN or CLK_SHORT)
hv=hv1

PushBtnOK(id)
DbgPRINT("用紙:"+ys+" "+hv)
FEND

//図面情報文字列を解釈する
FUNCTION 図面情報文字列解釈(tj,var fp,var fn,var cmt,var xx,var yy,var z,var px1,var py1,var ys1,var hv1,var num,var ls,var rs,var kk)
DbgPRINT("図面情報文字列解釈")
flg=FALSE //図面情報文字列以外:FALSE
re=RegExp.Exe("(^-[A-Z])|(.jww *)",tj)
IF !re.count THEN EXIT
i=re.Item(0).FirstIndex
IFB i THEN
 fp=TRIM(COPY(tj,1,i+4));DbgPRINT("フルパス:"+fp+"で")//フルパス
 IF !RegExp.Test("^([A-Z]:)?\\",fp) THEN fp=fp0+fp //相対パスの処理
 IF !FOPEN(fp,F_EXISTS) THEN EXIT
// re=RegExp.Exe("\\*[^\\]+\.jww$",fp)
 j=POS("\",fp,-1)
 fn=COPY(fp,j+1,LENGTH(fp)-j-4*0);DbgPRINT("ファイル名:"+fn+"す") //ファイル名(.jww付 拡張子無は-4*1)
 opt=COPY(tj,i+6)
 flg=TRUE
 px1="";py1=""
ELSE
 fp="";fn="";opt=tj
ENDIF

WHILE opt<>""
 op=TOKEN(" ",opt,TRUE)
 SELECT COPY(op,1,2)
 CASE "-C"//コメント
  cmt=COPY(op,3)
 CASE "-P"
  op=COPY(op,3)
  xx=TokenV(",",op);yy=TokenV(",",op)
  z=TokenV(",",op,1)
  px1=TokenV(",",op,xx);py1=TokenV(",",op,yy)
  flg=TRUE
 CASE "-Y" //用紙サイズ
  ys1=COPY(op,3,2)
  IF LENGTH(op)=5 THEN hv1="縦" ELSE hv1="横"
 CASE "-L" //レイヤ
  ls=COPY(op,3);flg=TRUE
 CASE "-R" //プロテクトレイヤ(将来用)
  rs=COPY(op,3)
 CASE "-K" //モノクロ印刷
  IF LENGTH(op)=2 THEN kk=1 ELSE kk=VAL(COPY(op,3,1),0)
  flg=TRUE
 SELEND
WEND
RESULT=flg
FEND

//作図領域の中央座標取得
PROCEDURE 中央座標取得(id0,var cx,var cy)
DIM l,t,r,b
ret=GetWindowRect(GETCTLHND(id0,"AfxFrameOrView90s"),l,t,r,b);SLEEP(wt)
cx=(l+r)/2;cy=(t+b)/2
FEND

//現在の縮尺をステータスバーから取得
FUNCTION 縮尺取得(id0)
DbgPRINT("縮尺取得")
re=RegExp.Exe("[0-9\.]+",GETSTR(id0,3,STR_STATUS))
RESULT=EVAL(re.Item(1)+"/"+re.Item(0));DbgPRINT(RESULT)
FEND

//位置を指定して印刷
PROCEDURE 位置を指定して印刷(id0,cx,cy,px,py,sc,ys1,hv1,ys,hv)
用紙の設定(id0,ys1,hv1,ys,hv)
印刷位置変更(id0,cx,cy,px,py,sc)
印刷実行(id0)
FEND

//範囲変更ボタンを押して印刷位置変更
PROCEDURE 印刷位置変更(id0,cx,cy,px,py,sc)
DbgPRINT("印刷位置変更")
CLKITEM(id0, "範囲変更 (R)");SLEEP(wt)
WaitSB(id0,"印刷範囲を指示してください。")
MMV(cx,cy,10);BTN(RIGHT,CLICK) //ここでよく止るので、止ったら手動で中央の点を右クリックしてください
id=WaitActiveDlg("オフセット",TRUE);SLEEP(wt)
DbgPRINT(px+","+py+","+sc)
InputStr(id, (px*sc)+","+(py*sc))
PushBtnOK(id)
FEND

//印刷ボタンを押して印刷実行
PROCEDURE 印刷実行(id0)
DbgPRINT("印刷実行")
WaitSB(id0,"印刷範囲を確認してください。")
CLKITEM(id0, "印刷 (L)");SLEEP(wt)
FEND

//レイヤ変更
PROCEDURE レイヤ変更(id0,ls,rs,var ly[15][16])
IF ls="" THEN EXIT
レイヤ文字列を解釈(ls,rs,ly)
レイヤ設定ファイル作成読込(id0,ly,ls,rs)
FEND

//レイヤ文字列を解釈
//表示lg16 ly256 編集lg16 ly256
//非表示:0 表示:1 編集:2 プロテクト/:10 X:20 書込:100
PROCEDURE レイヤ文字列を解釈(ls,rs,var ly[15][16])
FOR j=0 TO 15
 n=レイヤ文字列から(ls,16,j)+レイヤ文字列から(ls,288,j)*2
 IF n=3 THEN n=100
 ly[j][0]=n

 FOR i=0 TO 15
  n=レイヤ文字列から(ls,16,i,j)+レイヤ文字列から(ls,288,i,j)*2
  IF n=3 THEN n=100
  ly[j][i+1]=n
NEXT;NEXT

//プロテクトレイヤ
IF rs="" THEN EXIT
FOR j=0 TO 15
 ly[j][0]=ly[j][0]+レイヤ文字列から(rs,16,j)*10+レイヤ文字列から(rs,288,j)*20
 FOR i=0 TO 15
  ly[j][i+1]=ly[j][i+1]+レイヤ文字列から(rs,16,i,j)*10+レイヤ文字列から(rs,288,i,j)*20
NEXT;NEXT

FEND
//(続く)
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0; Sleipnir/2.9.19) lik...@202.222.146.18>

Re(2):重複線整理されない線の謎
 田んぼのトンボ E-MAILWEB  - 14/12/08(月) 17:07 -

引用なし
パスワード
   ▼いっちさん:
>
>そういえば、重複整理といえば、私の場合は、
>重複整理されないというよりも、重複整理コマンドを実行すると、
>パソコンが固まったような状態に落ち込んでしまう事がよくあるのが
>気になっています。

線整理でパソコンが止まったようになった時、いつもM.Hayashiさんの
Repairを利用させていただいています。作業をしていると不正データが
混じるかもしれません。理屈は良く判らないのですがこれでJwwデータ
を修復すると線整理でPCが固まったような状態になることは無いようです。
この場をお借りしてM.Hayashiさんに感謝いたします。

Repairは以下から
http://f884leap.yh.land.to/index.htm
・ツリー全体表示
<Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CL...@27.114.34.10>

本当に重なり合っている?
 kojima  - 14/12/08(月) 16:20 -

引用なし
パスワード
   本当に重なり合っているのですか?

JWC図面をJWWで開くと、連続線のはずが連続線ではなくなります。
JWCは単精度(小数点以下有効桁数7)、JWWは倍精度(小数点以下有効桁数14)だから起こる症状です。
小数点以下で誤差がでてしまうのです。

JAC経由のDXFは単精度なのではないですか?
小数点以下6桁くらいで誤差がでていると、数万倍に拡大しないとズレを確認できません。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; MALNJS; rv:11.0) like Gecko@126.143.18.142>

Re(1):Re2: Re2: 不具合なら
 O.M  - 14/12/08(月) 0:05 -

引用なし
パスワード
   ▼外注図面屋さん:
レイヤーもグループも同一なんですね、失礼いたしました。
JacConvertでDWG→jww変換をする際に、
起こりうる現象として気を付けようと思います。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39....@124.154.95.128>

Re(2):不具合なら
 mol  - 14/12/07(日) 20:56 -

引用なし
パスワード
   ▼mattariさん:
>ここにもデータを直に変換するソフトを何度も公開している方がいますが
>明らかにダメだって指摘されているのに何度も公開するわけですから

ダレに何を明らかにダメだって指摘されてるのでしょう?
当然指摘しているのは掲示板の管理者ですよね。
そんな事例があるのなら知りたいです。
・ツリー全体表示
<Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0@197.231.221.211>

  新規投稿 ┃ツリー表示 ┃スレッド表示 ┃一覧表示 ┃トピック表示 ┃番号順表示 ┃検索 ┃設定 ┃  ┃ホーム  
9 / 50 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:   
468503
(SS)C-BOARD v3.8 is Free
Jw_cad Copyright (C)1997-2009 Jiro Shimizu & Yoshifumi Tanaka