キャンセル
提案をオンにする
自動提案では、入力時に可能な一致が提案されるので検索結果を素早く絞り込むことができます。
次の結果を表示 
次の代わりに検索 
もしかして: 
  • フォーラム
    • インストール&アップデート
    • ライセンス
    • モデリング
    • ライブラリ&オブジェクト
    • ドキュメント
    • ビジュアライズ
    • BIMx
    • プロジェクト管理
    • パラメトリックデザイン
    • サスティナブルデザイン
    • チームワーク&BIMcloud
    • OPEN BIM
    • フリートーク
    • Our Community
  • ナレッジベース
    • インストール&アップデート
    • ライセンス
    • Archicadをはじめよう
    • モデリング
    • ライブラリ&オブジェクト
    • ドキュメント
    • ビジュアライズ
    • BIMx
    • プロジェクト管理
    • チームワーク&BIMcloud
    • OPEN BIM
    • Communityの使い方
  • Building Together
    • Insights
    • Archicadユーザーグループ
      • ユーザーグループ紹介
      • ユーザーグループからのお知らせ
      • Archicadユーザーグループマガジン
      • 施工ユーザーグループ メンバー専用
      • ワークフロー研究会 メンバー専用
    • USERFEST
      • USERFEST 2022
      • USERFEST 2023
      • USERFEST 2024
      • USERFEST 2025
    • チャレンジ(コンテスト)
      • Your Best Design Option
    • BIM相談室 配信情報
    • How to use Archicad - NEW
    • ウィッシュリスト
    • ロードマップ
    • Graphisoft テクノロジープレビュープログラム 2025
      • フォーラム
      • 新機能ガイド
      • ダウンロード
  • 製品ヘルプ
  • Service & Support
    • スキルアップ動画
search
ヘルプサインイン
キャンセル
提案をオンにする
自動提案では、入力時に可能な一致が提案されるので検索結果を素早く絞り込むことができます。
次の結果を表示 
次の代わりに検索 
もしかして: 
BMP10

BIM マネージャープログラム、11/4からライブクラス スタート。
受講生募集中!詳しくはこちらをご覧ください!

  • 日本コミュニティ
  • :
  • フォーラム
  • :
  • ライブラリ&オブジェクト
  • :
  • GDL GOSUBの使い方
オプション
  • RSS フィードを購読する
  • トピックを新着としてマーク
  • トピックを既読としてマーク
  • このトピックを現在のユーザーにフロートします
  • ブックマーク
  • この話題を購読する
  • ミュート
  • 印刷用ページ
ライブラリ&オブジェクト
GDL、ArchicadとBIMcloudのライブラリ、ライブラリの管理と移行、オブジェクトとその他のライブラリオブジェクトなどに関するフォーラムです。
解決済!

GDL GOSUBの使い方

takao
takao
Enthusiast
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-11-06 02:27 PM

‎2023-11-06 02:27 PM

いろいろと検証して問題は無いように思うのですが、使い方として合っているか教えてください。

 

リファレンスによると内部サブルーチンを呼び出して何度も使えるようですが、RETURNとENDが必ず必要?

①~⑦まで検証しておりますが、⑥は?です。

通常は⑦のような使い方が合っているのでしょうか🤔

(GOSUB(1001、1002)を上に記載して、サブルーチンを下に記載する)

 

①(1001)を表示しようとしたが、ENDを記載しなかったらエラーになる。(1001)は表示される。

20231106GDL(gosub)01.png

 

②ENDを記載したら、エラーが解消されました。

20231106GDL(gosub)02.png

 

③同じスクリプト(1001)を再利用し、回転させて表示しました。(問題なし)

20231106GDL(gosub)03.png

 

④別のスクリプト(1002)を配置したいが、(1001)でENDにしているので、表示されない。

20231106GDL(gosub)04.png

 

⑤(1001)のENDを消すと、エラーになるし、(1002)も表示されない。

20231106GDL(gosub)05.png

 

⑥GOTOで無理やり飛ばすと、エラーにならず問題なし。

20231106GDL(gosub)06.png

 

⑦GOTOを消して、スクリプトの順番を変える(1001を下に記載する)と、問題なし。

20231106GDL(gosub)07.png

 

 

解決済! 解決策の投稿を見る。

ラベル:
  • ラベル:
  • GDL
2 件のいいね!
返信
  • すべてのフォーラムトピック
  • 前のトピック
  • 次のトピック
1 件の受理された解決策

受理された解決策
解決策
Kiyonari
Kiyonari
Enthusiast
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-11-07 02:18 PM

‎2023-11-07 02:18 PM

ENDは『本文』『サブ構文』を分けるライン引きとして使われます。

 

gosubとENDがセットなのは

gosubがサブ構文にジャンプする動作をしたいのに対して

本文とサブ構文の境目がENDで定義していないため

サブにジャンプするって言われたけど、サブってどこからですか?とエラーが出ています

(①~③、⑤について)

 

⑥については

GOTOの後にENDが定義されているため、特にエラーは出ないです

 

また「1001:」や「1002:」のような数字とコロンの組み合わせについて

『ここが1001番の場所だよ!』とプログラム側に認識させる記号のようなものなので

gosubやGOTOがなくても実は問題ないです

(ただしgosubやGOTO側からすると、無いと動きません)

 

 

RETURNについては記載がなくてもエラーが出ないです

ただし、サブ構文から本文へ戻らないという状態になっているため正しく動作はしてない状態です

---------

プログラムA

 gosub 1

  プログラムB

END

1:プログラムC

---------

上記の場合、サブ構文から本文にRETURNしていないのでプログラムBが動作しない

 

元の投稿で解決策を見る

3 件のいいね!
返信
3件の返信3
解決策
Kiyonari
Kiyonari
Enthusiast
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-11-07 02:18 PM

‎2023-11-07 02:18 PM

ENDは『本文』『サブ構文』を分けるライン引きとして使われます。

 

gosubとENDがセットなのは

gosubがサブ構文にジャンプする動作をしたいのに対して

本文とサブ構文の境目がENDで定義していないため

サブにジャンプするって言われたけど、サブってどこからですか?とエラーが出ています

(①~③、⑤について)

 

⑥については

GOTOの後にENDが定義されているため、特にエラーは出ないです

 

また「1001:」や「1002:」のような数字とコロンの組み合わせについて

『ここが1001番の場所だよ!』とプログラム側に認識させる記号のようなものなので

gosubやGOTOがなくても実は問題ないです

(ただしgosubやGOTO側からすると、無いと動きません)

 

 

RETURNについては記載がなくてもエラーが出ないです

ただし、サブ構文から本文へ戻らないという状態になっているため正しく動作はしてない状態です

---------

プログラムA

 gosub 1

  プログラムB

END

1:プログラムC

---------

上記の場合、サブ構文から本文にRETURNしていないのでプログラムBが動作しない

 

3 件のいいね!
返信
takao
takao
Enthusiast
Kiyonariに対する応答
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-11-07 02:42 PM

‎2023-11-07 02:42 PM

非常にわかりやすく、丁寧な解説ありがとうございます!!

 

2 件のいいね!
返信
Kiyonari
Kiyonari
Enthusiast
オプション
  • 新着としてマーク
  • ブックマーク
  • 購読
  • ミュート
  • RSS フィードを購読する
  • ハイライト
  • 印刷
  • 不適切なコンテンツを報告

‎2023-11-07 02:55 PM

‎2023-11-07 02:55 PM

自分もあまり使い慣れてないのでよくエラーを頻発しています・・

 

経験談となりますが、gosub等のサブルーチン内での座標移動を行った場合は

RETURN前にDELを使用して、サブルーチン内で変換スタックを±0に戻した方が後々のメンテナンスのときに楽です!

 

ただし、DELTOPを使用してしまうと、それ以前の座標移動も消えてしまうので

自分は基本的に使わないようにしています・・・・

2 件のいいね!
返信
返信を見逃したくないですか?
トピックを購読する
Ignite Graphisoft Conference 2025 - October 6-8, 2025 - Budapest

回答が見つかりませんでしたか?

このフォーラムで
他の記事をチェック

フォーラムへ戻る

最新の解決策をチェック

採用された解決策

新しいディスカッションを始める

投稿する

フォーラム

  • インストール&アップデート
  • ライセンス
  • モデリング
  • ライブラリ&オブジェクト
  • ドキュメント
  • ビジュアライズ
  • BIMx
  • プロジェクト管理
  • パラメトリックデザイン
  • サスティナブルデザイン
  • チームワーク&BIMcloud
  • OPEN BIM
  • フリートーク
  • Our Community

ナレッジベース

  • インストール&アップデート
  • ライセンス
  • Archicadをはじめよう
  • モデリング
  • ライブラリ&オブジェクト
  • ドキュメント
  • ビジュアライズ
  • BIMx
  • プロジェクト管理
  • チームワーク&BIMcloud
  • OPEN BIM
  • Communityの使い方

Building Together

  • Graphisoft Insights
  • Archicadユーザーグループ
  • USERFEST
  • チャレンジ(コンテスト)
  • BIM相談室 配信情報
  • How to use Archicad - NEW
  • ウィッシュリスト
  • 製品ロードマップ
  • Graphisoft テクノロジープレビュープログラム 2025
Powered by Khoros
Copyright © 2025 GRAPHISOFT. All rights reserved.
  • プライバシーポリシー
  • 利用規約
  • コミュニティ投稿ガイドライン

GraphisoftはNemetschekのグループ企業です