ダイナミックブロック問題集(9) 解答


1 中心距離で「直線」のストレッチと「円弧」と「左右半径パラメータ」の移動
2 左右半径で「円弧」の尺度変更
3 直径で「左右半径パラメータ」のストレッチと「直線」の移動

左右半径パラメータはチェーンアクションで。
直径での直線移動の一つは反対方向に動くので、角度を180度にする。 

dbl09a

ファイルはこちら

  1. #1 by liki - 4月 21st, 2009 at 19:15

    うお~!感激です。感謝です。
    そうそう、移動とかチェーンとかいろいろ試行錯誤してたんですが、なかなかうまくいかなかったんです。
    ありがとうございます。中身いろいろ確認してみます。

  2. #2 by liki - 4月 22nd, 2009 at 11:58

    BEDIT中って貼り付け(Ctrl+V)できないですね。
    この長穴ブロックをいろいろ使い回ししようと思ったのにそれぞれで作らないといかんのですね。^^;

    2010ならいろいろと便利になってるのかしら。

  3. #3 by liki - 4月 23rd, 2009 at 14:16

    またまた質問です。
    パラメータをオブジェクトプロパティ管理にカスタムとして表示できますが、これの順番を変える方法ってありますかね。
    作るときにちゃんと順番に作ればいいでしょうけどね。
    どうでしょうか。

  4. #4 by yuri - 4月 24th, 2009 at 00:14

    >BEDIT中って貼り付け(Ctrl+V)できないですね。
    パラメータはアクションは無理みたいですね。
    2010でも一緒です。

    >順番を変える方法
    順番に作るしか今のところわかりません・・・。
    確かに変更したいかも。

  5. #5 by liki - 4月 27th, 2009 at 19:35

    またまた質問です。^^;
    例えば長さの違う三本(100mm,200mm,300mm)の線があり、片方の端点はすべて原点にあるとします。
    可視状態の設定によりどの線分を表示するかの設定をします。
    また、回転アクションをそれぞれに与えます。このときグリップはそれぞれのもう一方の端点とします。
    100mmの線を表示させて、回転アクションで15度回転させます。
    この後に200mmを表示させたときに、200mmの線分も15度で表示され、グリップもちゃんと200mmの線分の端点にあるようにしたいのです。
    う~ん、この説明でわかりますか?
    チェーンにすると循環するぞ!と怒られるし、チェーンしないと別の線分で角度与えても、別の線分の角度プロパティは0のままなんです。T_T

  6. #6 by liki - 4月 29th, 2009 at 18:04

    いろいろ試してみました。
    直線状パラメータと尺度アクションで回転パラメータの半径を変更できるようにし、可視状態とルックアップで3線の表示/非表示と直線状パラメータを表示線分に合わせて変更できるようにしたら、うまく望みの動作ができました。
    ダイナミックブロックの作り方ってむずかしいですね。
    でも、おもしろい。^^v
    また、いろいろ教えてくださいね。

  7. #7 by yuri - 4月 30th, 2009 at 10:07

    うおー、考えてる間に解決されたようで(^^;

    ルックアップかぁ、なるほどφ(。。 )
    その辺あまり使わないので思いつかなかった!

  8. #8 by liki - 4月 30th, 2009 at 10:36

    ちなみになんで円形状ストレッチでやらんかというと、単純な線分ではないからなんですねえ。例えばラフタークレーンのブームのようにブーム長さが変わると見た目もかわりつつ、角度も変えたいからなんですよ。
    2010の拘束を使えばアド設計さんのようなこともできるんでしょうけどね。
    http://www.adds.co.jp/Default.aspx?tabid=36&EntryID=32&language=ja-JP

    しかし、拘束の機能ってもっと早く採用されててもいいんじゃねえの、オートさん。^^

  9. #9 by liki - 5月 3rd, 2009 at 17:05

    さて、また悩んでます。
    □ひとつ○がふたつ縦に並んだブロックがあるとします。
    状態としては○がひとつなのかふたつなのか。ひとつの場合は単に上の○が非表示になるだけ。それと□があるか無いか。□がない場合は上の○はが下に移動する。
    動作自体を作るのは簡単なんですが、パラメータをプロパティ管理に表示させて変更したいんですが、項目としては○の数と□の有無のみです。
    一つのルックアップで4パターンを選択するのではなく、○と□は別々に選択させたいんです。
    ルックアップを複数作ってパラメータ自体もそれぞれの場合で表示/非表示させようかとも思ったけど、その場合にパラメータの名前を変えなきゃだめだし、なんかいい知恵ないかしら。

  10. #10 by liki - 5月 3rd, 2009 at 19:40

    あ~、ごめんなさい。また解決です。
    同じ形なので、○の方を配列複写にすればうまくいきました。^^v

    だいぶ、こつがつかめてきた?^^;

  11. #11 by hiro坊 - 5月 3rd, 2009 at 22:20

    yuri 先生ーーー! ^^

  12. #12 by liki - 5月 4th, 2009 at 21:31

    今度こそほんと困った。例えば長方形があるとして、底辺の中点が原点(基点)。
    たてとよこを直線状でストレッチ。底辺はそのまま移動せず、よこ方向は直線状パラメータの基点を中点にして両側にストレッチ。
    さて、ブロックの基点を4頂点、各辺の中点および重心の9点を選択させたい。さて、どうしたもんでしょうか。

  13. #13 by liki - 5月 8th, 2009 at 23:21

    見つけた!
    http://www.private.peterlink.ru/poleshchuk/cad/articlese.htm
    ここにある
    http://www.private.peterlink.ru/poleshchuk/cad/2009/tainypod12e.htm#moveProps
    これ。
    まだLISPの内容は見てないけど、ダイナミックブロックのカスタムプロパティの順番を入れ替えることができます。R2007で確認しました。
    これで好き勝手に作ってあとで(move-properties)関数で簡単に順番を入れ替えられるよ。^^v

  14. #14 by liki - 5月 11th, 2009 at 18:10

    (move-properties)関数は微妙にバグがある。ダイナミックブロックが壊れるとか、図面がおかしくなるようなことはないけど。
    ちょっとダイナミックブロックのプロパティの順番とプロパティ名の変更を簡単にできるLISPを制作中。φ(.. )

  15. #15 by liki - 5月 11th, 2009 at 23:43

    バグだと思ったら勘違い。円形状パラメータのように距離と角度のふたつのラベルをもつものをちゃんと扱っていたからだった。
    むしろすばらしいということですね。ちょっとソースが読みにくいし、move-upとmove-downがほとんど同じなのに別関数にしているのがわかりにくい。

(will not be published)

  1. No trackbacks yet.