<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>ライブラリ＆オブジェクトのトピックRe: 【検証】Archicadで広大なゾーンを作った時の不思議な話（FRA()の最大値）</title>
    <link>https://community.graphisoft.com/t5/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/%E6%A4%9C%E8%A8%BC-Archicad%E3%81%A7%E5%BA%83%E5%A4%A7%E3%81%AA%E3%82%BE%E3%83%BC%E3%83%B3%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AE%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E8%A9%B1-FRA-%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4/m-p/379016#M38</link>
    <description>&lt;P&gt;そこまで突き詰めて原因を特定する事が可能なんて凄いです。&lt;/P&gt;&lt;P&gt;INTは小数点以下切り捨て出来るけど、永遠ではないという事ですね。&lt;/P&gt;&lt;P&gt;マニアックで奥深い話ですが、刺激を受ける内容でとても面白いですね。&lt;/P&gt;</description>
    <pubDate>Mon, 08 May 2023 02:50:59 GMT</pubDate>
    <dc:creator>TOMIMARI</dc:creator>
    <dc:date>2023-05-08T02:50:59Z</dc:date>
    <item>
      <title>【検証】Archicadで広大なゾーンを作った時の不思議な話（FRA()の最大値）</title>
      <link>https://community.graphisoft.com/t5/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/%E6%A4%9C%E8%A8%BC-Archicad%E3%81%A7%E5%BA%83%E5%A4%A7%E3%81%AA%E3%82%BE%E3%83%BC%E3%83%B3%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AE%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E8%A9%B1-FRA-%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4/m-p/378875#M37</link>
      <description>&lt;H1&gt;条件&lt;/H1&gt;
&lt;UL&gt;
&lt;LI&gt;ゾーンラベルではなく&lt;STRONG&gt;ゾーンスタンプ&lt;/STRONG&gt;を使用している場合&lt;/LI&gt;
&lt;LI&gt;ゾーンの面積が&lt;STRONG&gt;21,474,836.47㎡(≒2千万㎡)を超える&lt;/STRONG&gt;場合&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;である場合&lt;STRONG&gt;のみ起きる&lt;/STRONG&gt;現象です。&lt;/P&gt;
&lt;P&gt;そのため&lt;U&gt;ゾーンラベルがデフォルトになったArchicad26ではあまり起きない&lt;/U&gt;現象と思われますが、検証したら面白いことがわかったので共有します。（雑談程度のノリで見てください）&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;現象&lt;/H1&gt;
&lt;P&gt;モデル表示オプションでチェックを入れると26でもゾーンスタンプを表示することができます。&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Kotetsu_0-1683288605784.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/36904iC88CF12BAEDBF46A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Kotetsu_0-1683288605784.png" alt="Kotetsu_0-1683288605784.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;で、ゾーンスタンプを表示した状態で&lt;STRONG&gt;広大な面積のゾーンを作成したら不思議なことが起こりました。&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Kotetsu_1-1683288726064.png" style="width: 519px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/36905i544BC00F54E753EB/image-dimensions/519x501?v=v2" width="519" height="501" role="button" title="Kotetsu_1-1683288726064.png" alt="Kotetsu_1-1683288726064.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;5000m x 5000mのゾーンを作成したら、&lt;STRONG&gt;ゾーンスタンプの値がおかしな事になったのです！&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;面積がマイナス？？なんじゃこりゃ&lt;STRONG&gt;&lt;span class="lia-unicode-emoji" title=":考えている顔:"&gt;🤔&lt;/span&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;この現象は4000m x 4000mでは起こりません。&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Kotetsu_2-1683289235896.png" style="width: 555px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/36907iF6412351EA71A1AE/image-dimensions/555x594?v=v2" width="555" height="594" role="button" title="Kotetsu_2-1683289235896.png" alt="Kotetsu_2-1683289235896.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;色々検証した結果、面積が&lt;STRONG&gt;21,474,836.47㎡を超えると数値がバグる&lt;/STRONG&gt;ことがわかりました。&lt;/P&gt;
&lt;P&gt;現在はゾーンラベルを使っている方が多いでしょうし、そもそもこれだけの面積のゾーンを使うことも無いと思うのであまり心配することは無いでしょうが・・・。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;検証&lt;/H1&gt;
&lt;P&gt;一定規模を超えるとNG？でもなんでラベルはOKでスタンプはNGなんだろう？&lt;/P&gt;
&lt;P&gt;その謎を解明すべく&lt;STRIKE&gt;我々はアマゾンの奥地へと向かった&lt;/STRIKE&gt;ゾーンスタンプをCtrl + Shift+Oで開いてみました。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":警告:"&gt;⚠️&lt;/span&gt;マニアックな内容が含まれます。ご注意ください。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Kotetsu_3-1683289521671.png" style="width: 400px;"&gt;&lt;img src="https://community.graphisoft.com/t5/image/serverpage/image-id/36910iC2F992E4A78D3852/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Kotetsu_3-1683289521671.png" alt="Kotetsu_3-1683289521671.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;詳細は省きますが、怪しい変数の中身を見ていくと原因らしき記述にたどり着きました。&lt;/P&gt;
&lt;DIV&gt;
&lt;DIV&gt;&lt;LI-CODE lang="javascript"&gt;if iAreaprec = 5 then
	m2keta = 2	: bairitu = 100
endif

!~~~中略~~~

if iDisp_Prec = 1 then
	a_meter = _calculatedArea * bairitu
	a_meter = (a_meter - FRA(a_meter))/bairitu
endif&lt;/LI-CODE&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;結果的に、このなかでも後半の「FRA(a_meter)」が問題でした。&lt;/P&gt;
&lt;P&gt;このFRA関数は()の中の数値の小数部分のみを返すするものですが、()の中の数値が&lt;STRONG&gt;2,147,483,648を超えると小数部分では無く、値+2,147,483,648を返してしまうようです。&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;（ここの値が面積でNGになる限界の100倍になっているのは上記の処理でbairitu = 100を掛けているため）&lt;/P&gt;
&lt;P&gt;つまりFRA(3,000,000,000.55)とすると本当は0.55が返ってくるはずなのに&lt;STRONG&gt;5,147,483,648&lt;/STRONG&gt;.&lt;STRONG&gt;55&lt;/STRONG&gt;が返ってきてしまいます。&lt;/P&gt;
&lt;P&gt;そのため、5000m x 5000m の例では&lt;/P&gt;
&lt;P&gt;25,000,000 - (25,000,000 + 21,474,836.48) = &lt;STRONG&gt;-21,474,836.48㎡&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;という値が表示されてしまっていると思われます。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;考察&lt;/H1&gt;
&lt;P&gt;プログラムを書かれる方なら多分ピンと来ていると思いますが、「&lt;SPAN&gt;2,147,483,647」という数値はint型の最大値です。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ということは、FRA()関数の整数部分が内部でintで処理されていて、intの最大値を超えるとオーバーフローしている？&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ここまで行くとプログラマーでは無い私には手に負えないので詳しい人がいたら解説お願いします&lt;span class="lia-unicode-emoji" title=":合わせた両手:"&gt;🙏&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;あとおかしな記述があればツッコミ歓迎です。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;とりあえず、FRA関数を使うときは気をつけた方が良さそうです。&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H1&gt;&lt;SPAN&gt;最後に&lt;/SPAN&gt;&lt;/H1&gt;
&lt;P&gt;&lt;SPAN&gt;Archicadはあくまで建築系のBIMソフトなので、あまりにも&lt;STRONG&gt;広大な面積を処理するようにはできていません。&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;今回のこと以外にも不具合が出がちなので、広大な敷地に建物が点在するような場合は、ひとつひとつの建物を別ファイルにして、別のソフトウェアで統合した方が良いでしょう。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 May 2023 13:05:04 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/%E6%A4%9C%E8%A8%BC-Archicad%E3%81%A7%E5%BA%83%E5%A4%A7%E3%81%AA%E3%82%BE%E3%83%BC%E3%83%B3%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AE%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E8%A9%B1-FRA-%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4/m-p/378875#M37</guid>
      <dc:creator>Kotetsu</dc:creator>
      <dc:date>2023-05-05T13:05:04Z</dc:date>
    </item>
    <item>
      <title>Re: 【検証】Archicadで広大なゾーンを作った時の不思議な話（FRA()の最大値）</title>
      <link>https://community.graphisoft.com/t5/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/%E6%A4%9C%E8%A8%BC-Archicad%E3%81%A7%E5%BA%83%E5%A4%A7%E3%81%AA%E3%82%BE%E3%83%BC%E3%83%B3%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AE%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E8%A9%B1-FRA-%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4/m-p/379016#M38</link>
      <description>&lt;P&gt;そこまで突き詰めて原因を特定する事が可能なんて凄いです。&lt;/P&gt;&lt;P&gt;INTは小数点以下切り捨て出来るけど、永遠ではないという事ですね。&lt;/P&gt;&lt;P&gt;マニアックで奥深い話ですが、刺激を受ける内容でとても面白いですね。&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2023 02:50:59 GMT</pubDate>
      <guid>https://community.graphisoft.com/t5/%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88/%E6%A4%9C%E8%A8%BC-Archicad%E3%81%A7%E5%BA%83%E5%A4%A7%E3%81%AA%E3%82%BE%E3%83%BC%E3%83%B3%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%9F%E6%99%82%E3%81%AE%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AA%E8%A9%B1-FRA-%E3%81%AE%E6%9C%80%E5%A4%A7%E5%80%A4/m-p/379016#M38</guid>
      <dc:creator>TOMIMARI</dc:creator>
      <dc:date>2023-05-08T02:50:59Z</dc:date>
    </item>
  </channel>
</rss>

