2025-11-25 05:09 PM
工場などで使用されるホイストクレーンのオブジェクトが欲しい。と依頼され作成していたのですが、
使用していくにあたってフックの部分をどこに配置するか選択肢があるといいよねとの要望をいただき、どうせならホットスポットで感覚的に移動できた方が使いやすいのではと思いました。
しかし、そのやり方(可能かどうかも)がわからないのでもしご存じの方がいらっしゃるようであれば教えていただきたいと思います。
現状としてはこのように大まかなモデルは作成済みで全体のサイズを変更するためのホットスポットを各端点(4か所)に配置しています。
そして質問の詳細ですが、赤点線の🔴で囲った部分を動かしたいです。
(できればフックと操作リモコンの長さもホットスポットで変更できたらと考えています。)
現状設定ダイアログで数値を入力して変更はできるのですが、それだといちいちせていダイアログを開くのが手間になってしまうかもしれないと思っています。
@GDL
まだアーキキャド使用し始めて半年ちょっと、GDLオブジェクト作成も2個目で質問するのもここに書き込むのも何を書いたらいいかわからず質問していますので不足情報等ありましたら申し訳ございません。
ご存じの方いらっしゃれば教えていただきたいと思います。よろしくお願いいたします。
解決済! 解決策の投稿を見る。
2025-11-25 08:42 PM
赤丸の位置は一方向(X方向)に動けば良いという理解で良いですか?
であればもう一歩だと思います。
こんな動きでしょうか。
フックの位置を変数にして移動ホットスポットを設定 → フックをその変数に合わせて"add"コマンドで移動で実現可能です。
3Dスクリプト(ホットスポットモデル1.gsm)↓
! レール
addy -B/2
block A,B,ZZYZX
del 1
! フック部分移動ホットスポット
! Hookpos(フックの位置)
hotspot 0, 0, 0, unID, Hookpos, 1 + 128 : unID = unID + 1
hotspot Hookpos, 0, 0, unID, Hookpos, 2 : unID = unID + 1
hotspot -1, 0, 0, unID, Hookpos, 3 : unID = unID + 1
addx Hookpos !ここでフックの位置をずらす
addz -HookL
! フック
cylind HookL, 0.1
del 1
del 1
また、フックの長さを変える場合はこのような感じでしょうか。
こんな感じで高さ(Z)方向に移動ホットスポットを設定します。
3Dスクリプト(ホットスポットモデル2.gsm)↓
! レール
addy -B/2
block A,B,ZZYZX
del 1
! フック部分移動ホットスポット
! Hookpos(フックの位置)
hotspot 0, 0, 0, unID, Hookpos, 1 + 128 : unID = unID + 1
hotspot Hookpos, 0, 0, unID, Hookpos, 2 : unID = unID + 1
hotspot -1, 0, 0, unID, Hookpos, 3 : unID = unID + 1
! フック部分長さホットスポット
! HookL(フックの長さ)
!フックの移動と同じようにフック長さのホットスポットも動かしたいのでXはいずれも"Hookpos"(フック位置)
hotspot Hookpos, 0, 0, unID, HookL, 1 + 128 : unID = unID + 1
hotspot Hookpos, 0, -HookL, unID, HookL, 2 : unID = unID + 1
hotspot Hookpos, 0, 1, unID, HookL, 3 : unID = unID + 1
addx Hookpos !ここでフックの位置をずらす
addz -HookL
cylind HookL, 0.1
del 1
del 1
サンプルのデータも添付しましたので参考になれば幸いです。
2025-11-25 08:42 PM
赤丸の位置は一方向(X方向)に動けば良いという理解で良いですか?
であればもう一歩だと思います。
こんな動きでしょうか。
フックの位置を変数にして移動ホットスポットを設定 → フックをその変数に合わせて"add"コマンドで移動で実現可能です。
3Dスクリプト(ホットスポットモデル1.gsm)↓
! レール
addy -B/2
block A,B,ZZYZX
del 1
! フック部分移動ホットスポット
! Hookpos(フックの位置)
hotspot 0, 0, 0, unID, Hookpos, 1 + 128 : unID = unID + 1
hotspot Hookpos, 0, 0, unID, Hookpos, 2 : unID = unID + 1
hotspot -1, 0, 0, unID, Hookpos, 3 : unID = unID + 1
addx Hookpos !ここでフックの位置をずらす
addz -HookL
! フック
cylind HookL, 0.1
del 1
del 1
また、フックの長さを変える場合はこのような感じでしょうか。
こんな感じで高さ(Z)方向に移動ホットスポットを設定します。
3Dスクリプト(ホットスポットモデル2.gsm)↓
! レール
addy -B/2
block A,B,ZZYZX
del 1
! フック部分移動ホットスポット
! Hookpos(フックの位置)
hotspot 0, 0, 0, unID, Hookpos, 1 + 128 : unID = unID + 1
hotspot Hookpos, 0, 0, unID, Hookpos, 2 : unID = unID + 1
hotspot -1, 0, 0, unID, Hookpos, 3 : unID = unID + 1
! フック部分長さホットスポット
! HookL(フックの長さ)
!フックの移動と同じようにフック長さのホットスポットも動かしたいのでXはいずれも"Hookpos"(フック位置)
hotspot Hookpos, 0, 0, unID, HookL, 1 + 128 : unID = unID + 1
hotspot Hookpos, 0, -HookL, unID, HookL, 2 : unID = unID + 1
hotspot Hookpos, 0, 1, unID, HookL, 3 : unID = unID + 1
addx Hookpos !ここでフックの位置をずらす
addz -HookL
cylind HookL, 0.1
del 1
del 1
サンプルのデータも添付しましたので参考になれば幸いです。
2025-11-26 09:53 AM