TOP>2008年09月

2008年09月28日

[Jw_cad] リンク機構2

続きです。

次に、リンク1の終点位置からリンク2を作図することを考えます。リンク1の終点=リンク2の始点 の位置の算出をして、傾き角度は、リンク1の角度からどれだけ傾けるのかを指定するようにして、作図させます。

// リンクその2
// まずはリンクの棒2本を作図することを考えます
#VAR
 dmy1 = "---リンク(1)---"  ;dmy1
 px1 = 0    ;*位置X
 py1 = 0    ;*位置Y
 pa1 = 0    ;*角度[°]
 ll1 =50    ;*リンク長さ
 lw1 =10    ;*リンク幅
 dmy2 = "---リンク(2)---"  ;dmy2
 px2      ;位置X
 py2      ;位置Y
 pa2 = 0    ;*角度[°]
 ll2 =80    ;*リンク長さ
 lw2 =15    ;*リンク幅
 // 作業用
 no
 px
 py
 ll
 lw
 pan
 w1
 w2
 w3
 w4
 w5
 w6
 w7
 w8

#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL no = 1
 CAL pan = pa1/180.0*PI
 CAL px = px1
 CAL py = py1
 CAL ll = ll1
 CAL lw = lw1
 #GOTO *LINKDRAW
*RET1
 CAL no = 2
 CAL px2 = px1 + ll1*Cos(pan)
 CAL py2 = py1 + ll1*Sin(pan)
 CAL pan = (pa1+pa2)/180.0*PI
 CAL px = px2
 CAL py = py2
 CAL ll = ll2
 CAL lw = lw2
 #GOTO *LINKDRAW
*RET2
 #EXIT


// リンク1本を作図
//  no = 1、2
*LINKDRAW
 CAL w1 = px
 CAL w2 = py
 CAL w3 = lw/2.0
 CAL w4 = pan + 0.5*PI
 CAL w5 = pan + 1.5*PI
 ARC w1,w2,w3,w4,w5

 CAL w1 = px
 CAL w2 = py + lw/2.0
 CAL w3 = px + ll
 CAL w4 = w2
 GETREV w5,w6, w1,w2,px,py,pan
 GETREV w7,w8, w3,w4,px,py,pan
 LINE w5,w6,w7,w8

 CAL w1 = px
 CAL w2 = py - lw/2.0
 CAL w3 = px + ll
 CAL w4 = w2
 GETREV w5,w6, w1,w2,px,py,pan
 GETREV w7,w8, w3,w4,px,py,pan
 LINE w5,w6,w7,w8

 CAL w3 = px + ll
 CAL w4 = py
 GETREV w1,w2, w3,w4,px,py,pan
 CAL w3 = lw/2.0
 CAL w4 = pan + 1.5*PI
 CAL w5 = pan + 0.5*PI
 ARC w1,w2,w3,w4,w5

 #IF ( no == 1 )
  #GOTO *RET1
 #END
 #GOTO *RET2

20080928b

2008年09月28日

[Jw_cad] リンク機構1

先日の、菱形の作図の話ですが、
Jw_cad 作者さんのホームページの掲示板を見ると、私のこのブログの記事を見られたようですね。結構マイナーなブログだと思いますが、よく見つけたなぁ~等と思ったりして。script!用スクリプトプログラムをそのまま引用されていましたが、多分、なんなんだこれは?って思われた方は結構多いと思います。線記号変形や外部変形ではありませんしね。

そのあと、その繋がりだと思いますが、somemさんのブログでも話題にされましたので、例によって、script!でのリンク機構作図を考えて見ます。

まずは、リンク1本の作図を考えます。
単純に、長円を作図するとします。
但し、位置、角度の考慮をしておきます。
// リンクその1
// まずはリンクの棒1本を作図することを考えます
// 長円を描く事を考えます
#VAR
 px = 0    ;*位置X
 py = 0    ;*位置Y
 pa = 0    ;*角度[°]
 ll =50    ;*リンク長さ
 lw =10    ;*リンク幅
 pan
 w1
 w2
 w3
 w4
 w5
 w6
 w7
 w8

#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL pan = pa/180.0*PI

 CAL w1 = px
 CAL w2 = py
 CAL w3 = lw/2.0
 CAL w4 = pan + 0.5*PI
 CAL w5 = pan + 1.5*PI
 ARC w1,w2,w3,w4,w5

 CAL w1 = px
 CAL w2 = py + lw/2.0
 CAL w3 = px + ll
 CAL w4 = w2
 GETREV w5,w6, w1,w2,px,py,pan
 GETREV w7,w8, w3,w4,px,py,pan
 LINE w5,w6,w7,w8

 CAL w1 = px
 CAL w2 = py - lw/2.0
 CAL w3 = px + ll
 CAL w4 = w2
 GETREV w5,w6, w1,w2,px,py,pan
 GETREV w7,w8, w3,w4,px,py,pan
 LINE w5,w6,w7,w8

 CAL w3 = px + ll
 CAL w4 = py
 GETREV w1,w2, w3,w4,px,py,pan
 CAL w3 = lw/2.0
 CAL w4 = pan + 1.5*PI
 CAL w5 = pan + 0.5*PI
 ARC w1,w2,w3,w4,w5

図は、水平で作図することを考えて、座標値は写像計算(GETREV)で回転させて算出する、角度は回転角度を足す、としておけば、それほど迷わないと思います。
20080928a

2008年09月28日

Jw_cad Ver.6.11

フリーの汎用CADソフト「Jw_cad Ver.6.11」が公開されました。

http://www.jwcad.net/

最新バージョンの変更点

◆Version 6.11 での変更点は以下のとおりです。(2008/09/28)

・AUTOモードとキーコマンドに[画像処理](54)、キーコマンドに[円周1/4点](162)を追加した。(SAMPLE.JWFの「KeyコマンドとAUTOモードのコマンド番号表」参照)

・メニューバーの設定とユーザーツールバーに[円周1/4点](77)を追加した。

・AUTOモードで線・円上の読取点の範囲外で(L)→(L)→(R)クリックをすると節間消しになるようにした。

・画面表示、プリントのグレー線表示幅を環境設定ファイルで設定できるようにした。(SAMPLE.JWFの「LCOLLOR_G」、「PCOLLOR_G」の④線幅を参照)

・文字範囲を背景色で塗りつぶす設定の影響で描画速度が遅くなる不具合を解消した。

・節間消しの後、範囲消去が機能しない現象を回避した。


との事です。

2008年09月28日

Jw_cad Version 6.11がアップされました。

9月28日Jw_cad Version 6.11がアップされました。

最新バージョンの変更点

◆Version 6.11 での変更点は以下のとおりです。(2008/09/28)

・AUTOモードとキーコマンドに[画像処理](54)、キーコマンドに[円周1/4点](162)を追加した。
(SAMPLE.JWFの「KeyコマンドとAUTOモードのコマンド番号表」参照)

・メニューバーの設定とユーザーツールバーに[円周1/4点](77)を追加した。

・AUTOモードで線・円上の読取点の範囲外で(L)→(L)→(R)クリックをすると節間消しになるようにした。

・画面表示、プリントのグレー線表示幅を環境設定ファイルで設定できるようにした。
(SAMPLE.JWFの「LCOLLOR_G」、「PCOLLOR_G」の〓線幅を参照)

・文字範囲を背景色で塗りつぶす設定の影響で描画速度が遅くなる不具合を解消した。

・節間消しの後、範囲消去が機能しない現象を回避した。

2008年09月28日

AFJWV Ver.1.24

当方のサイトシェアウェアコーナーに、
「AFJWV Ver.1.24」というツールをアップしました。

Jw_cadデータを指定すると、
その内容を画面に表示するためのビューワーソフトです。
対応形式は、下記のようになっています。
※JWC形式:MS-DOS版 JW_CAD 図面データ
 JWK形式:MS-DOS版 JW_CAD 図形データ
 JWW形式:Windows版 Jw_cad 図面データ
      (Ver.2.20~6.00形式)
 JWS形式:Windows版 Jw_cad 図形データ
      (Ver.2.30~6.00形式)
 JWクリボスデータ(*.1)
 JWV形式
 (本ソフトウェアで作成出来るJWW&画像バインドデータ)
 
開いたJw_cadデータを画像ファイルとして保存したり、印刷したり、クリップボードに転送する事が可能です。※レジストしていない場合は、BMP/WMF/EMF以外の画像を扱う事は出来ません。※試用版です。

Ver.1.24 2008/09/28 追加変更
・サムネイル表示で右クリックした際にサムネイル表示画面が
 詳細表示モードで表示される場合があった件を修正
・JWW Ver.6.10~で対応されたトリミング画像の描画に対応
 ※描画状態がJWWと完全一致しない場合が有り得ます。
 ※印刷を行う場合は、印刷デバイスによって正常に印刷
  出来ない場合があります。
 ※BMP以外の画像ファイルは一時ファイル「$IMGTEMP.BMP」
  として変換してから開いて描画するようになっています。

AFJWV

2008年09月25日

[Jw_cad] 菱形の作図をしたい

Jw_cad 作者さんのホームページの掲示板で
ひし形の辺の長さを変えること無く対角線を任意に変更出来て外形の変化の軌跡が図面に落とせたら助かります。(今は円の交点を拾ってひし形の変形を書いてますが、とても面倒です)
という要望がありました。
こういった特殊なコマンドが標準コマンドに組み込まれるのかどうかは「?」ですし、そういった特殊な作図は外部変形プログラムを作ってしまう、という手法が一般的かと思いますが、
これを、当方の「script!」で作図することを考えてみます。
http://afsoft.jp/program/p05.html

まずは、菱形の作図です。
// 菱形その1
#VAR
 l = 100    ;*辺の長さ
 h = 50    ;*中心からの高さ
 x       ;x
 w1
 w2
 w3
 w4

#DRAW
 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL x = Sqrt(l*l - h*h)

 CAL w1 = x
 CAL w2 = 0
 CAL w3 = 0
 CAL w4 = h
 LINE w1,w2,w3,w4

 CAL w1 = w3
 CAL w2 = w4
 CAL w3 =-x
 CAL w4 = 0
 LINE w1,w2,w3,w4

 CAL w1 = w3
 CAL w2 = w4
 CAL w3 = 0
 CAL w4 =-h
 LINE w1,w2,w3,w4

 CAL w1 = w3
 CAL w2 = w4
 CAL w3 = x
 CAL w4 = 0
 LINE w1,w2,w3,w4
これは単純に1つの菱形を描きます。

次に、菱形を何個も描く事を考えます。
高さの開始の値と、終了の値、その間を何分割するか、を入力して作図するようにしてみます。
// 菱形その2
#VAR
 l = 100    ;*辺の長さ
 h1 = 10    ;*開始高さ
 h2 = 80    ;*終了高さ
 n = 10    ;*分割数
 h
 x
 i
 w1
 w2
 w3
 w4

#DRAW
 #IF (l <= 0)
  BEEP
  MESSAGE "入力エラー","辺の長さは正の数値で入力して下さい","",0,0
  #EXIT 
 #END
 #IF ((l*l - h1*h1) < 0)
  BEEP
  MESSAGE "入力エラー","開始高さを再入力して下さい","",0,0
  #EXIT 
 #END
 #IF ((l*l - h2*h2) < 0)
  BEEP
  MESSAGE "入力エラー","終了高さを再入力して下さい","",0,0
  #EXIT 
 #END

 LAYER SetLineLay1  // 外形線
 PEN SetLineCol1,SetLineLtp1,SetLineWid1

 CAL h = h1
 CAL i = 0
 #WHILE (i <= n)
  CAL x = Sqrt(l*l - h*h)

  CAL w1 = x
  CAL w2 = 0
  CAL w3 = 0
  CAL w4 = h
  LINE w1,w2,w3,w4

  CAL w1 = w3
  CAL w2 = w4
  CAL w3 =-x
  CAL w4 = 0
  LINE w1,w2,w3,w4

  CAL w1 = w3
  CAL w2 = w4
  CAL w3 = 0
  CAL w4 =-h
  LINE w1,w2,w3,w4

  CAL w1 = w3
  CAL w2 = w4
  CAL w3 = x
  CAL w4 = 0
  LINE w1,w2,w3,w4

  CAL h = h + (h2-h1)/n
  CAL i = i + 1
 #END
これを実行すると・・・
20080925a
となりますので、JWWクリップボード出力をして、JWW側で[貼付]をクリックして配置点を指示します。
20080925b
という感じでしょうか?

2008年09月25日

[Jw_cad] ユーザーバー設定をファイル化

Jw_cad 作者さんのホームページの掲示板で
ユーザーバーの設定を「環境設定ファイル」で持ち運べると
という要望がありました。
ツールバー関連は、レジストリに登録され呼び出しされますので、レジストリエディタでその箇所をエクスポート=設定保存をし、インポート=設定呼び出し、を行う事は出来ると思いますが、レジストリエディタを使うのはやっぱり不安面がありますね。

という訳で、当方では、
「JWlayout」
http://afsoft.jp/program/p05.html
というツールを公開していますが、これが使えるのではないかと思います。

レジストリ情報をファイル「jwlayout.rg」として、ツールと同じフォルダ内に保存しますので、このファイルを持ち運びする、という事は可能だと思います。

2008年09月24日

[Jw_cad] 複写の数値位置デフォルト値

建築資料館さんの掲示板で
「複写コマンド等のデフォルトの数値変更は?」
という質問がありました。

ちょっと感覚は違いますけれども、「JwwMenu」において
送信キー
「@EZ{C"100,0","200,0","300,0"」
というのを設定し、

Jw_cad 側であらかじめ図形を選択した状態で、
上記のコマンドボタンをクリックし、
コンボボックスで
  100,0
  200,0
  300,0
のうちから選択を行って複写コマンドのキーを送る、
というような手法が可能です。

※JWC MENU もどき、AFMouMenu*、AFJoyMenu には実装してません。

・・・やっぱり感覚が違い過ぎ、かな。

あと、範囲選択していないとうまく行きません、というのも少しネックかも。範囲選択の待ち状態を考えるというのは、こういうメニューソフトでは難しいですね。

2008年09月23日

「CAD」とは何ぞや?

ネットサーフィンしていると、
「教えて!goo」でこんな質問がありました。
「CADソフトの基本的考え方について」
 http://oshiete1.goo.ne.jp/qa4347473.html

CADとは、コンピュータ支援設計システムのことですから、マウス操作で図面を作図するものだけが「CAD」であるという事ではありません。なので、エクセルのような感じのシステムもあるかもしれませんし、エキスパートシステムのようなものもあるかもしれません。
寸法設計、強度設計、各種シミュレーション、製造関係、CAD/CAM/CAE等という名前にもなっていきますし、CAxという言い方をする場合もありますが、CAD=寸法設計に特化したものという場合が多い感じは確かにありますね。強度設計は、別途、強度計算ソフト、と言っているような感はあります。

一般的なCADソフトでは、まず、基準を決めて、そこから作図すると思います。その基準が、図面原点(0,0)であったり、中心線だったり、しますが、最初はグリッド(目盛)を目安にするのも良いかもしれませんね。
AutoCADには、原点(0,0)がありますし、コマンドラインで座標入力・数値入力をする事も出来ます。DIESELマクロを組む事も出来ますし、命令を羅列したスクリプトファイルを記述することも出来ます。単なる座標データを羅列したデータ、では無いですね。
Jw_cad (JWW) では、原点は画面中央になりますが、それを意識したコマンドはありませんし、座標直接入力もありません。(座標ファイル機能はありますが)座標(原点)を意識する場合には、まず、用紙枠を表示させてその中央点をマークするとか、用紙枠の端点から縦横○○mm離れた所を原点にする、と決めてから、という事になりそうですね。Jw_cad の場合は、スクリプトというのはありませんが、線記号変形機能、座標ファイル機能、外部変形機能、があります。
私のサイトにあるクリップボードを利用したツールや、Sendkeyを利用したツール、というのはありますけれど。

次に、自動作図な話になってくるのでしたら、AutoCADでしたら、AutoLispやARX,VBAマクロ、という事になってきそうですね。スクリプトファイルやコマンドラインへの貼り付け等でやる事も出来ると思いますが、その場合は別途、プログラミング言語を用意して、スクリプトファイルやコマンドライン文字列を生成するアプリケーションツールを作る、という事になるとは思います。
JWWであれば、一般的には、外部変形でしょうね。awk、Ruby、Perl、WSHのようなスクリプト言語系、Visual BASIC、Visual C++、Delphiのようなコンパイラ系、が多いようですね。それらプログラミング言語を使って、JWWの座標ファイル仕様的なBATファイルを経由するインターフェイスの仕組みで動作させますから、BATファイルの仕様、座標ファイルの仕様、プログラミング言語、が分っていないと組めないと思います。

それとはまた別に、数値演算を行って図形を自動作図させたい場合には、特に数学が分っていないと作れない場合も多いですね。線と線の交点を算出するにはどうするか、円弧と円弧の接続部に更にRをつけるにはどうするか、などなど、どんな図形を描かせたいのかによって様々です。そういうのは自分でアルゴリズムを考えてプログラムにしないといけません。

私のサイトでは、2次元であれば「script!」(フリー)「scriptRunner」(シェア)、3次元では「script!3D」(シェア)というツールを公開しています。
http://afsoft.jp/program/p05.html
http://afsoft.jp/program/p06.html
たわいもないツールですが、スクリプト(図形作図プログラム)を作って、その絵を見せて、CAD/CGへデータを送り、CAD/CGで作図を出来るようにしましょう、という感じのツールです。まぁ余り複雑なことは出来ないかもしれませんし、速度も速くないですが、それなりのスクリプトを書けばそれなりの事が出来ると思います。
いくつかサンプルも用意していますので、そちらも参考にどうぞ。
http://afsoft.jp/program/p09.html

といいつつもやはり、このソフトでも、基準点(原点(0,0))を意識して作る必要がありますし、CADへ渡すときも、そのときの配置点(基準点をどこに指定するか)を意識して作図させる必要があります。

2008年09月22日

CAD&CG MAGAZINE 2008/11

エクスナレッジ「CAD&CG MAGAZINE 2008/11」
以下、目次より抜粋です。

総力特集
設計者こそ使うべき!
無料の画像加工ソフト GIMP
 OUTLINE○建築設計者の必携ソフト「GIMP」を使ってみよう
 GIMPの入手とインストール
PART1
GIMPのキホン
インターフェイス大解剖!
やりたいことがこれでできる
GIMPのキホンテクニックガイド
 Technique01○画像を開く/保存する/印刷する
 Technique02○画像のモードを切り替える
 Technique03○画像の解像度を調整する
 Technique04○画像の明るさを補正する
 Technique05○画像の色調を補正する
 Technique06○ぼけた画像をくっきりさせる
 Technique07○画像のゆがみを修正する
 Technique08○レンズゆがみを修正する
 Technique09○画像の一部を選択/加工する
 Technique10○レイヤを利用して複数の画像を重ねる
 Technique11○画像の一部をきれいに消去する
 Technique12○画像に着色して雰囲気を変える
 Technique13○複雑な形状を[パス]ツールで選択し着色する
PART2
GIMPを建築プレゼンテーションに活用する
パースレタッチ実戦テクニック
 Technique01○線画がパースに変身!簡単着色テクニック
 Technique02○写真が水彩画風パースに変身!デジタルスケッチテクニック
 Technique03○写真1枚でできる!外壁リニューアル提案テクニック
 Technique04○パターン×フィルタ効果でオリジナルテクスチャを作成しよう
PART3
GIMPにしかない機能が目白押し!
フィルタ効果大図鑑

2大新連載スタート!

(新連載)オンラインソフト研究室 Vol.1
インターネットで入手可能なフリーソフトやシェアウェアで
設計業務を効率化する方法を教えます!
DWGファイルの閲覧連続印刷が可能に!
「DWG TrueView 2009」

(新連載)Case Study
個人設計事務所からゼネコンまで
CADの最新活用事例お見せします
 CASE01○「Jw_cad」で簡易見積り マル秘テクニック大公開
 CASE02○前田建設工業の3次元設計手法と最新事例
 CASE03○社内のあらゆる文書を効率的に電子化しています
 CASE04○三貴の新・図面ビジネス

緊急レポート
ついに登場!BIMを用いた3次元設計実務基準
Revit Architecture
設計ガイドライン


その他

添付CD-ROM:
記事連動[とじこみ付録CD-ROM]
仕事で使えるフリーソフト&記事追体験
サンプルデータ多数収録!
GIMP 2.4
DWG TrueView 2009
Jw_cad 6.01


です。
画像ソフトについては、私は「PaintShopPro」の「6J」「8J」を使う事が多いので別段「GIMP」を使う必要性がないので関係無いかな。画像ソフトの定番としては、「Photoshop」「Photoshop Element」を利用される人とか結構多いと思いますし、これまでのCAD&CGでも Photoshopネタは結構あったと思いますが、今回は凄く「GIMP」を押すんですね~。
という訳で私は今回、余り読む所は無いです。