TOP>2010年03月

2010年03月28日

[script!+JWW] 円弧長による円弧作図

というわけで?
script!で書くとすれば以下のような感じ
(敢えてわざと余計なものも入れてますが)
// テストプログラム:円弧長指定の円弧作図
//
// =============================================
// (C)Copyright 2010 AFsoft All Rights Reserved.
// =============================================
#VAR
 r = 100    ;*半径[mm]
 // sa = 0    ;*開始角度[°]
 // ea = 90    ;*終了角度[°]
 //
 // sa = 0    ;*作図開始角度[°]
 // da = 90    ;*作図円弧角度[°]
 //
 sl =  0   ;*開始円弧長[mm]
 dl = 100   ;*作図円弧長[mm]
 x
 y
 a1
 a2
 a3

#DRAW
 LAYER SetLineLay1  // 外径線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 // ----- 入力した角度で円弧を作図するパターン
 // CAL a1 = sa/180*PI
 // CAL a2 = ea/180*PI
 // CAL a3 = a1
 // ----- 入力した作図円弧角度で円弧を作図するパターン
 // CAL a1 = sa/180*PI
 // CAL a2 = (sa+da)/180*PI
 // CAL a3 = a1
 // #IF (da < 0)
 //  CAL a1 = (sa+da)/180*PI
 //  CAL a2 = sa/180*PI
 //  CAL a3 = a2
 // #END
 // ----- 入力した作図円弧長で円弧を作図するパターン
 CAL a1 = sl/r
 CAL a2 = (sl+dl)/r
 CAL a3 = a1
 #IF (dl < 0)
  CAL a1 = (sl+dl)/r
  CAL a2 = sl/r
  CAL a3 = a2
 #END

 // 原点=中心
 // CAL x = 0
 // CAL y = 0
 // 原点=開始点
 CAL x =-r*Cos(a3)
 CAL y =-r*Sin(a3)

 // 作図
 ARC x,y,r,a1,a2
当方の「script!」に貼り付けて、これを実行すると
20100328a
というような感じで、[JWWクリップボード転送]をクリックし、Jw_cad で[貼付]をクリックすると、こんな感じ。
20100328b

2010年03月28日

[JWW] 円弧長入力での円弧作図

Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
半径を指定、たとえばR7000としまして円弧長1500の円弧をきっちりとした長さで描きたいとします。この円弧を簡単に描く方法をどなたかご存じありませんか?円周長を計算して角度で分割してみたり円周上に小さな円のピッチを描いて円弧長を出したりいろいろやってみましたが結構時間がかかります。皆さんは、どんな方法で作画されていますか?
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=37430;id=004
古川さんの外部変形「ArcLDraw」かな?
http://jwx.hp.infoseek.co.jp/soft_jww.html

2010年03月27日

[JWW] sugiさん版疑似線文字

Jw_cad作者さんのサイトの掲示板で以下のような発言がありました。
先程ホームページに「疑似線文字」の外部変形をアップしました。
http://homepage2.nifty.com/igus/starthp/gijisen/gijisen.html
>
本ソフトは Jw_cad for Windows において、文字を線で構成された図形に変換する外部変形です。JW_CAD(DOS版)の疑似線文字相当の機能を実現出来ます。本ソフトは Ruby で書かれているため、実行には別途 Ruby のインストールが必要です。
>
同様のソフトは既に古川 也寸志さんが 疑似線文字 for JWW として公開されています。これは joker さんが作成されたフォントを利用して変換していますが、これとは別のフォントで変換出来ないだろうかと思って探していたところ、Saka.N さんが公開されたフリーのストロークフォント KST32B を見つけました。こちらはフォント本体がテキスト形式なので、編集して自分好みのフォントに改造することも容易そうです。改変や再配布も自由ということなので、これを利用した外部変形を作成してみました。
>
本ソフトはフリーウェアですので無保証で、使用、配付改変、再配付等は自由ですが,使用した結果のいかなる影響についても責任及び賠償責任は一切負いかねます.

興味のある方は使ってみて下さい。制御文字や特殊文字は出来るだけ対応したつもりですが、動作確認はまだ十分ではありません。不具合の報告や要望、感想などありましたら、ここの掲示板でお願いします。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=ntr;tree=16836;id=003
お疲れ様~です

そのフォントは、Nakaharaさんの「JacConvert」でもストロークフォントとして利用されていますね。

私も昔フォントは自作したことがありますけれども、いや~、結構大変でした。N88BASIC(86)で適当にエディタを作ってイケイケでやってましたが(仕事から帰ってきて自宅で少しづつやってました)、1年くらい掛かりました。最初は自作のCADもどきなドローソフトに実装するつもりだったんですが、一部のC言語で作ったツールで使ったのみで、そのドローソフトには実装しませんでした。当時はベクトルフォントを作ってる会社が1つあったらしく、結構なライセンス費用が必要だったそうで、それだったら自作してみるか、と思い立ったんですが、いざやってみると、結構疲れてしまいました。
しばらく後に、NIFTY SERVEの建築フォーラムでお昼寝さんが「HPGLP」用に独自のフォントを作るとかいう話をされていて、その話で少し盛り上がった記憶があります。

Windowsになってからは、TrueTypeFontで自由に綺麗でスケーラブルな文字がかけますから、別に、もう要らないかなぁ~とか思ってました。でも、以外と、Windowsになってもベクトルフォントの需要ってまだあるんだなぁ~等と思ったりして。

2010年03月27日

[JWW] データ形式公開

Ver.7.00形式の内容が公開されました。
http://www.jwcad.net/jwdatafmt.txt
「おぉ~こんなところに~!?」ってのは無さそう。

Ver.7.00β~7.00a でブロックが・・・というのは、
<<(DWORD)m_pDataList->m_nNumber;//ポインタでなく通し番号を保存する
というわけで、ポインタにされていたわけですね。なるほど。
ポインタというとつい、JWC形式での文字データを思い出しますが、はっきりいって、これってトラブルの元だったんですよね。訳わかんない数値が入っている事もあったし、ゼロ値になってる事もあったし。セグメントアドレス・オフセットアドレスというのは、PCによって変わるし、動作状況によって変わる場合もあるだろうし、はっきりいえば、そういうのをデータ形式として埋め込むのは、どうかと思います。
ポインタ(メモリアドレス)は、セグメントアドレス・オフセットアドレスとほとんど同じ意味だから、これも同じく。

プログラム内でアクセスするデータで、動的メモリを使うんであればポインタを使うっていうのは当たり前の話だからそれはいいんですけれども、それそのものの話と、ファイルとして残すデータ形式の方にそのポインタ内容をそのまんま入れてしまうという話は、また別の話なので、正直、どうかと思います。

あと、画像同梱のところですが、
◆ 同梱画像ファイルのファイル名、サイズ、実体(Ver.7.00以降)
for(i=0 ;i //画像ファイル(事前に圧縮済み)オープン
CFile SrcFile;
if( !SrcFile.Open( aStrTempGazouName[i]
, CFile::modeRead | CFile::shareDenyNone ) ){
TRACE("Bitmap File が開けません(%s)//\/i/in",aStrTempGazouName[i]);
continue;
}
char buf[BUFLEN];
ar << aStrTempGazouName[i]; //ファイル名
ar << nSize; //ファイルのサイズ
while(1){
UINT n = SrcFile.Read(buf, BUFLEN );
ar.Write(buf, n);
if(n < BUFLEN) break;
}
SrcFile.Close();
}
というところの「nSize」って?
「nSize = SrcFile.GetLength();」みたいな文がないとおかしいと思うんだけれども、敢えて消してアップされたのかな? ここらが「予期しないファイル」が生成されるポイントだけに、ちょっと気になるところ。あと、(事前の圧縮済み)ってところのルーチンも見てみたいですね。なぜかというと、同梱画像を圧縮する際に、同梱画像が存在しない場合は gz も作成されないから、通常は ~~.bmp.gz が入るはずの aStrTempGazouName[i] に、~~.bmp が入っているから、何らかの回避処理が入っているはずなんだけれども、その際に、nSize 云々もかかわっているかもしれない、みたいな感じもあって。
・・・ま、いいか。

2010年03月26日

[script!+JWW] X型リフター続々編

先日のX型リフターな図の script!テストですが、少しだけチェックを入れました。
// テストプログラム:リフト(修正)
//
// =============================================
// (C)Copyright 2010 AFsoft All Rights Reserved.
// =============================================
#LIST
 ko = "左","中","右"
#VAR
 d1x = 1000   ;*土台X
 d1y = 100   ;*土台Y
 d2x = 1000   ;*リフト台X
 d2y = 100   ;*リフト台Y
 ko = 左    ;*リンク固定点
 l = 1200    ;*リンク長さ
 w = 100    ;*リンク太さ
 l1x = 50    ;*リンク土台端からのX(左/右の際に有効)
 l1y = 50    ;*リンク土台底辺からの高さ
 l2y = 50    ;*リンクリフト台底辺からの高さ
 h = 1000    ;*高さ

 ang
 iko
 kx
 ky
 x1
 y1
 x2
 y2
 cx1
 cy1
 cx2
 cy2
 w1
 w2
 wx1
 wy1
 wx2
 wy2
 wx3
 wy3
 wx4
 wy4
 
#DRAW
 // エラーチェック(最低限)
 // CAL x1 = (d1y - l1y) + l2y  // 土台の上にリフト台が乗る場合
 CAL x1 = 0
 CAL x2 = l
 #IF ( (h < x1) || (h > x2) )
  BEEP
  MESSAGE "入力エラー","高さの入力エラーです","値を再入力して下さい。",x1,x2
  #EXIT
 #END
 CAL x1 = Sqrt(l*l - h*h)
 CAL x2 = d1x - l1x
 #IF (x1 > x2)
  BEEP
  MESSAGE "入力エラー","リンクが土台からはみ出てしまいます","値を再入力して下さい。",0,0
  #EXIT
 #END
 CAL x2 = d2x - l1x
 #IF (x1 > x2)
  BEEP
  MESSAGE "入力エラー","リンクがリフト台からはみ出てしまいます","値を再入力して下さい。",0,0
  #EXIT
 #END

 GETANGLE ang,x1,h
 CHKITEM iko,ko,ko
 CAL ky = l1y + h - l2y  // リフト台基準点
 CAL kx = 0
 #IF (iko == 0)
  CAL kx =-d1x/2+Abs(l1x)
 #END
 #IF (iko == 2)
  CAL kx = d1x/2-Abs(l1x)
  CAL ang = PI - ang
 #END

 LAYER SetLineLay4  // 基準線
 PEN SetLineCol4,SetLineLtp4,SetLineWid4
 // 基準線
 CAL x1 =-d1x/2 - SetZ1  // 中心線はみ出し距離考慮
 CAL y1 = l1y
 CAL x2 = d1x/2 + SetZ1
 CAL y2 = l1y
 LINE x1,y1,x2,y2

 CAL x1 =-d2x/2 - SetZ1
 CAL y1 = ky + l2y
 CAL x2 = d2x/2 + SetZ1
 CAL y2 = ky + l2y
 LINE x1,y1,x2,y2

 CAL x1 = 0
 CAL y1 = ky + d2y + SetZ1
 CAL x2 = 0
 CAL y2 =-SetZ1
 LINE x1,y1,x2,y2

 LAYER SetLineLay1  // 外径線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 // 土台
 CAL x1 =-d1x / 2
 CAL y1 = 0
 CAL x2 = d1x / 2
 CAL y2 = d1y
 BOX x1,y1,x2,y2
 // リフト台
 CAL x1 =-d2x / 2
 CAL y1 = ky
 CAL x2 = d2x / 2
 CAL y2 = ky + d2y
 BOX x1,y1,x2,y2

 // ----- リンク -----

 #IF (iko == 0)
  CAL cx1 = kx
  CAL cy1 = l1y
  CAL cx2 = cx1 + Sqrt(l*l - h*h)
  CAL cy2 = l1y + h
 #END
 #IF (iko == 1)
  CAL cx1 =-Sqrt(l*l - h*h) / 2
  CAL cy1 = l1y
  CAL cx2 = Sqrt(l*l - h*h) / 2
  CAL cy2 = l1y + h
 #END
 #IF (iko == 2)
  CAL cx1 = kx
  CAL cy1 = l1y
  CAL cx2 = cx1 - Sqrt(l*l - h*h)
  CAL cy2 = l1y + h
 #END

 LAYER SetLineLay3  // 中心線
 PEN SetLineCol3,SetLineLtp3,SetLineWid3
 // 中心線
 LINE cx1,cy1,cx2,cy2
 LINE cx1,cy2,cx2,cy1

 LAYER SetLineLay1  // 外径線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL wx1 = cx1 + w/2*Cos(ang+0.5*PI)
 CAL wy1 = cy1 + w/2*Sin(ang+0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(ang+0.5*PI)
 CAL wy2 = cy2 + w/2*Sin(ang+0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w2,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 #IF ( (w1 == 1) && (w2 == 1) )
  LINE x1,y1,x2,y2
 #END
 
 CAL wx1 = cx1 + w/2*Cos(ang-0.5*PI)
 CAL wy1 = cy1 + w/2*Sin(ang-0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(ang-0.5*PI)
 CAL wy2 = cy2 + w/2*Sin(ang-0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w2,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 #IF ( (w1 == 1) && (w2 == 1) )
  LINE x1,y1,x2,y2
 #END
 
 CAL wx1 = cx1 + w/2*Cos(PI-ang+0.5*PI)
 CAL wy1 = cy2 + w/2*Sin(PI-ang+0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(PI-ang+0.5*PI)
 CAL wy2 = cy1 + w/2*Sin(PI-ang+0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w2,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 #IF ( (w1 == 1) && (w2 == 1) )
  LINE x1,y1,x2,y2
 #END
 
 CAL wx1 = cx1 + w/2*Cos(PI-ang-0.5*PI)
 CAL wy1 = cy2 + w/2*Sin(PI-ang-0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(PI-ang-0.5*PI)
 CAL wy2 = cy1 + w/2*Sin(PI-ang-0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w2,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 #IF ( (w1 == 1) && (w2 == 1) )
  LINE x1,y1,x2,y2
 #END
とりあえずこんな感じ。
当方の「script!」にて上記を貼り付けて実行すると
20100325a
というふうになるので、[JWWクリップボード転送]をクリックし
Jw_cad を起動し、Jw_cad で[貼付]をクリック。
20100325b
という感じ。

※各数値に、マイナス値を入れないで下さい

2010年03月25日

[JWW] X型リフター続編

あらあらあら~(CV:大原さやか のノリで)
菱形のほうをリンクされたのですね~
それでは、ちょい script!で作ってみましたので よろしかったらどうぞ~
// テストプログラム:リフト
//
// =============================================
// (C)Copyright 2010 AFsoft All Rights Reserved.
// =============================================
#LIST
 ko = "左","中","右"
#VAR
 d1x = 1000   ;*土台X
 d1y = 100   ;*土台Y
 d2x = 1000   ;*リフト台X
 d2y = 100   ;*リフト台Y
 ko = 左    ;*リンク固定点
 l = 1200    ;*リンク長さ
 w = 100    ;*リンク太さ
 l1x = 50    ;*リンク土台端からのX(左/右の際に有効)
 l1y = 50    ;*リンク土台底辺からの高さ
 l2y = 50    ;*リンクリフト台底辺からの高さ
 h = 1000    ;*高さ

 ang
 iko
 kx
 ky
 x1
 y1
 x2
 y2
 cx1
 cy1
 cx2
 cy2
 w1
 wx1
 wy1
 wx2
 wy2
 wx3
 wy3
 wx4
 wy4
 
#DRAW
 // エラーチェック(最低限)
 #IF (h >= l)
  BEEP
  MESSAGE "入力エラー","リンク長さよりも高さの方が大きくなってます","値を再入力して下さい。",0,0
  #EXIT
 #END
 CAL x1 = Sqrt(l*l - h*h)
 CAL x2 = d1x - l1x
 #IF (x1 > x2)
  BEEP
  MESSAGE "入力エラー","リンクが土台からはみ出てしまいます","値を再入力して下さい。",0,0
  #EXIT
 #END
 CAL x2 = d2x - l1x
 #IF (x1 > x2)
  BEEP
  MESSAGE "入力エラー","リンクがリフト台からはみ出てしまいます","値を再入力して下さい。",0,0
  #EXIT
 #END

 GETANGLE ang,x1,h
 CHKITEM iko,ko,ko
 CAL ky = l1y + h - l2y  // リフト台基準点
 CAL kx = 0
 #IF (iko == 0)
  CAL kx =-d1x/2+Abs(l1x)
 #END
 #IF (iko == 2)
  CAL kx = d1x/2-Abs(l1x)
  CAL ang = PI - ang
 #END

 LAYER SetLineLay4  // 基準線
 PEN SetLineCol4,SetLineLtp4,SetLineWid4
 // 基準線
 CAL x1 =-d1x/2 - SetZ1  // 中心線はみ出し距離考慮
 CAL y1 = l1y
 CAL x2 = d1x/2 + SetZ1
 CAL y2 = l1y
 LINE x1,y1,x2,y2

 CAL x1 =-d2x/2 - SetZ1
 CAL y1 = ky + l2y
 CAL x2 = d2x/2 + SetZ1
 CAL y2 = ky + l2y
 LINE x1,y1,x2,y2

 CAL x1 = 0
 CAL y1 = ky + d2y + SetZ1
 CAL x2 = 0
 CAL y2 =-SetZ1
 LINE x1,y1,x2,y2

 LAYER SetLineLay1  // 外径線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 // 土台
 CAL x1 =-d1x / 2
 CAL y1 = 0
 CAL x2 = d1x / 2
 CAL y2 = d1y
 BOX x1,y1,x2,y2
 // リフト台
 CAL x1 =-d2x / 2
 CAL y1 = ky
 CAL x2 = d2x / 2
 CAL y2 = ky + d2y
 BOX x1,y1,x2,y2

 // ----- リンク -----

 #IF (iko == 0)
  CAL cx1 = kx
  CAL cy1 = l1y
  CAL cx2 = cx1 + Sqrt(l*l - h*h)
  CAL cy2 = l1y + h
 #END
 #IF (iko == 1)
  CAL cx1 =-Sqrt(l*l - h*h) / 2
  CAL cy1 = l1y
  CAL cx2 = Sqrt(l*l - h*h) / 2
  CAL cy2 = l1y + h
 #END
 #IF (iko == 2)
  CAL cx1 = kx
  CAL cy1 = l1y
  CAL cx2 = cx1 - Sqrt(l*l - h*h)
  CAL cy2 = l1y + h
 #END

 LAYER SetLineLay3  // 中心線
 PEN SetLineCol3,SetLineLtp3,SetLineWid3
 // 中心線
 LINE cx1,cy1,cx2,cy2
 LINE cx1,cy2,cx2,cy1

 LAYER SetLineLay1  // 外径線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1
 CAL wx1 = cx1 + w/2*Cos(ang+0.5*PI)
 CAL wy1 = cy1 + w/2*Sin(ang+0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(ang+0.5*PI)
 CAL wy2 = cy2 + w/2*Sin(ang+0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w1,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 LINE x1,y1,x2,y2
 
 CAL wx1 = cx1 + w/2*Cos(ang-0.5*PI)
 CAL wy1 = cy1 + w/2*Sin(ang-0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(ang-0.5*PI)
 CAL wy2 = cy2 + w/2*Sin(ang-0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w1,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 LINE x1,y1,x2,y2
 
 CAL wx1 = cx1 + w/2*Cos(PI-ang+0.5*PI)
 CAL wy1 = cy2 + w/2*Sin(PI-ang+0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(PI-ang+0.5*PI)
 CAL wy2 = cy1 + w/2*Sin(PI-ang+0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w1,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 LINE x1,y1,x2,y2
 
 CAL wx1 = cx1 + w/2*Cos(PI-ang-0.5*PI)
 CAL wy1 = cy2 + w/2*Sin(PI-ang-0.5*PI)
 CAL wx2 = cx2 + w/2*Cos(PI-ang-0.5*PI)
 CAL wy2 = cy1 + w/2*Sin(PI-ang-0.5*PI)
 CAL wx3 =-d1x/2
 CAL wy3 = d1y
 CAL wx4 = d1x/2
 CAL wy4 = d1y
 GETCRSLL w1,x1,y1,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 CAL wx3 =-d2x/2
 CAL wy3 = ky
 CAL wx4 = d2x/2
 CAL wy4 = ky
 GETCRSLL w1,x2,y2,wx1,wy1,wx2,wy2,wx3,wy3,wx4,wy4
 LINE x1,y1,x2,y2
パラメータのとりかたや、数値はテキトウですので、適当に変更してください。
20100325a

リンクがクロスする箇所はCAD側で適当に消す等して下さい。

2010年03月24日

[JWW] 文字の大きさ

Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
いろんな方が文字サイズを設定し作図されていますが私のJWWに複写すると文字の大きさが私の設定になります どうすれば前の文字サイズをそのままで使えるでしょうか
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=37394;id=004
他の人の図面ファイルをJWW形式でもらって、自分のJw_cadを使ってそのJWW形式ファイルを開けば、その図面内での文字設定で、普通は、読み込めるはずですが・・・

「複写すると」というのが、ファイルコピーしてきて、という事ではなくて、別起動したJw_cadからコピー&貼り付けをしてくる、という事であれば、自分側の文字設定はそのまま変わらず、貼り付けた図の文字は任意サイズになると思いますけれど、その際に自分側の文字設定も変わって欲しいって事?それについては現在は出来ないんじゃ。

逆に考えて、相手側の図面ファイルを開いているJw_cadへ、自分の書いた図をコピーする、ってほうが早いかも。そうすれば自分の書いた図のほうが任意サイズになるかな。

2010年03月24日

[JWW] 仮想交点のスナップ

Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
例えば、X線とY線を結ぶRがあります。そこで、移動又は複写するさい、このX線とY線の延長線上の交点を選択したいのですが、簡単に素早く選択する方法を教えて下さい。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=37395;id=004
右クロックAM9時でしょうか。

[JWW FAQ ROOM]
 ・離れた2つの線の交点を読み取りたい
  http://jwwfaq.undo.jp/faq02_48.html

2010年03月24日

[JWW] X型リフター

Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
X型リフターとか、X型伸縮の門などのようなものを自在に変形表示できないかと、いろいろ探しています。外部変形で対応できないものかと、ただいま勉強中ですがなかなかいい方法が見つかりません。よいアドバイスがありましたら、どなたかご教授願います。
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=16820;id=003
ねこ耳、ねこ耳、ねこ耳モード・・・
おっと懐かしいネタだなぁ~
えぇ?ねこ耳娘を描け?
普通のギャル絵に耳つければい~じゃん
というわけで、ライブドアの「お絵かき」機能で
タブレットでラクガキだ!!!

5分後
BlogPaint
何も考えずに描くと テキトーになる





はっ!?

何の話だっけ?

X型リフター? どんなのだろ?
と検索すると、「ドラグナー」!?
懐かしいな~
「レイズナー」のあとにやってたアレだろ?見てないけど。





はっ!?

リフトかな
どんな形状なのかは分からないですが、そうですね~ 普通は、外部変形でしょうか~ 
20100324b
で、x^2+h^2=l^2 で、hを与えたらx は?と考えれば
x=Sqrt(l^2 - x^2)
で分かるから、その基準位置での基準高さと考えれば、そのスラスト差分dx がって考慮をすれば分かりますね。そしたら、角度θは Atan(h/x) だから、斜めの線の両側の線の角度も当然同じだから、間隔値は固定だから、間隔値をdとすれば、dsinθ値をプラスマイナスしたところになるけれども、もともとの l値がどの距離として与えられているかによって多少変わってきますけれど。


2010年03月24日

[JWW] 作図時間の編集

Jw_cad作者さんのサイトの掲示板で以下のような質問がありました。
作図時間を手を止めたままでもすすむやり方ありますか?
http://hpcgi2.nifty.com/jw_cad/c-board.cgi?cmd=one;no=16814;id=003
作図時間は、Jw_win.jwf で
「S_COMM_6」の(6)
?作図時間の変更(0:変更不可 1:変更可)
(環境設定ファイルでのみ指定可)
で変更可にして、自分で時間を手入力する事は出来ます。

が・・・・

これまで作図時間をゼロにする、って要望とかはありましたけれども、わざわざ時間をプラスしたい、という事は、その図面に、これくらいの時間を掛けましたってことを言いたいって事でしょうか? どれだけ図面を早く作図したのか?という事ならまだ分かるけれども、なんだかな~~って感じがします。

どこかから図面等を読み込んできたりして、実際は図面を作図するのに時間を掛けてないってことをごまかすために?とかだったりすると、なんだかヤだなぁ~って気にもなってきます。あくまで、ただの想像の1つですけれど。