1週間前
ArchiCAD29とGeminiで作成した、美麗な方位GDLオブジェクトです。(超軽量設計)
【特徴】
①3D画面でも2D画面のまま表示される
②真北と磁北の表示(選択可)
③磁北偏角を国土地理院のサイトで確認できる
④もちろん、プロジェクトの北に従うことが可能(選択可)
⑤基準軸(Y軸)の表示(選択可)
下記プロンプトをGemini等に投げかけてみてください。
---AIへのプロンプト---
Archicad用のカスタムオブジェクト(GSM)を作成したいです。
初めてでも一発でエラーなく動作する、シンプルで洗練された「方位記号」のGDLスクリプト(パラメータ、2D、3D、UI)一式を出力してください。
以下の【実装要件】と【バグ回避ルール】を厳格に守ってください。
---
### 【1. 必要なパラメータ(変数)】
オブジェクトの「パラメータ」タブに手動で登録するため、以下の変数名、タイプ、初期値をテキスト形式でリストアップしてください。
1. mag_angle (角度) : 初期値 6.88(磁北偏角)
2. b_follow_north (真偽値) : 初期値 ON(プロジェクトの北に従う)
3. b_show_axis (真偽値) : 初期値 ON(基準軸を表示)
4. b_show_mag (真偽値) : 初期値 ON(磁北線を表示)
5. b_show_true_text (真偽値) : 初期値 ON(真北文字を表示)
6. pen_main (ペン) : 初期値 1(主線用)
7. pen_sub (ペン) : 初期値 2(副線・寸法用)
8. pen_axis (ペン) : 初期値 3(基準軸用)
9. lt_base (線種) : 初期値 "一点鎖線"(基準軸の線種)
10. fontType (文字列) : 初期値 "MS Gothic"(軸文字用)
11. font_text (文字列) : 初期値 "Arial"(N文字用)
12. size_text (長さ) : 初期値 1.5(軸文字サイズ)
13. size_n (長さ) : 初期値 1.5(N文字サイズ)
---
### 【2. 2Dスクリプトの要件】
- 半径30cmの2重円の羅針盤、そこから北へ1.6m伸びる真北矢印、1.05m伸びる磁北線を描画。
- 各フラグ(b_show_axis, b_show_mag等)による表示ON/OFF、GLOB_NORTH_DIRへの追従、文字サイズ(size_text, size_n)の連動を正しく実装。
- 真北と基準軸が重なった場合(abs(_rot_true) < 3.0)の文字の自動回避ロジックを実装。
---
### 【3. 3Dスクリプトの要件(★最重要:バグ回避ルール)】
Archicadの3Dワイヤーフレームおよびコンパイルエラーを完全に回避するため、以下の仕様を絶対厳守してください。
1. 【3D TEXTコマンドの禁止】:
3Dの「TEXT」命令や「DEFINE STYLE」は、ワイヤーフレーム画面で文字が消えたり、漢字の解析でクラッシュするため一切使用禁止。
文字("N", "AXIS")は、すべて「LIN_」コマンドを組み合わせた「純粋な線画(ベクトル文字)」として自作して描画してください。「TN」「MN」および角度数値テキストは画面をシンプルに保つため不要です。
2. 【面張りの禁止】:
「CIRCLE」や「ARC」は3Dで勝手に黒い面が張られるバグを誘発するため使用禁止。
円やアークは、すべて「FOR-NEXT」ループを用いた「5度刻みの細かいLIN_の連続」で線画として表現してください。
3. 【スタック数の厳密な管理】:
座標の移動・回転(add, rotz)と、それを解除する「del」の数は一対一で完全に一致させ、アークや文字の位置が羅針盤の中心からズレないようにしてください。
4. 【位置の調整】:
自作した"N"の線画文字は、真北矢印の先端(0, 1.6)からさらに上に綺麗にオフセットして配置。
"AXIS"の線画文字は、基準軸の先端(0, 1.6)から視認性の良い距離を保って配置してください。
---
### 【4. インターフェース(UI)スクリプトの要件】
画面サイズは「444 x 366」とし、3つのセクション(一般設定、シンボルスタイル、テキスト設定)にセパレーター線で美しく整理してください。
1. 磁北偏角の入力欄(mag_angle)の下に、国土地理院地図を開くリンクボタンを配置。
※コマンドは必ず「ui_button UI_LINK, ...」の形式を使い、URLは "https://maps.gsi.go.jp/#14/34.485830/133.362365/&base=std&ls=std&disp=1&vs=c1g1j1h0k0l0u0t0z0r0s0m0f..." を仕込んでください。
2. 4つの真偽値チェックボックス(ui_infield)の【右横】には、それぞれ対応する説明テキスト(ui_outfield)を必ずセットで並べて配置し、ボックス単体で浮かないようにしてください。
以上の要件をすべて満たす、美しくクッキリとしたコードを、スクリプトごとに分けて出力してください。余計な解説は不要です。