روشها میتوانند با داشتن تابعی که خود را در یک حلقه بازگشتی فراخوانی میکند، بازگشت را پشتیبانی کنند. مثالهای زیر مدلهای هندسی بازگشتی CAD یک فرش Sierpinski را به صورت دو بعدی و یک اسفنج منگر را به صورت سه بعدی ایجاد میکنند.
روش زیر، create_carpet ، بازگشت را به یک سطح بازگشتی خاص با توجه به یک پارامتر mslevel تعریف شده توسط کاربر، که در زیر تعریفهای جهانی در Model Builder تعریف شده است، آغاز میکند. برای جلوگیری از ایجاد یک هندسه بسیار بزرگ، محدودیتی را در 5 سطح تعیین می کند. این روش فرض می کند که شما یک مؤلفه دو بعدی ایجاد کرده اید و یک شمارنده متغیر اسکالر عدد صحیح را اعلام کرده اید .
متد create_carpet به نوبه خود تابع بازگشتی اصلی فرش را که در زیر فهرست شده است، با استفاده از چهار آرگومان ورودی برای سطح بازگشتی، مختصات مرکزی x – و y – و طول ضلع فعلی فراخوانی میکند.
model.component(“comp1”).geom(“geom1”).feature(“sq”+strix+”C”+ toString(counter)).label(“Square”+strix+”C”+toString(counter));
توجه داشته باشید که تعداد اجسام هندسی مربع تعریف شده برای فرش سطح 3 512 است. تعداد اجسام هندسی برای فرش سطح N 8 N است. این بدان معناست که برای حداکثر سطح 5 تعیین شده توسط روش create_carpet ، هندسه حاصل دارای 32768 شی هندسی است.
روش های فرش Sierpinski به راحتی به سه بعدی تعمیم می یابد. با این حال، در سه بعدی، باید مراقب باشید که اشیاء بیش از توانایی رایانه شما تولید نکنید. این روش فرض می کند که شما یک کامپوننت سه بعدی ایجاد کرده اید و یک شمارنده متغیر اسکالر عدد صحیح را اعلام کرده اید .
The method sponge, shown below, is called by the above method and recursively creates a Menger sponge.
model.component(“comp1”).geom(“geom1”).feature(“blk”+strix+”C”+ toString(counter)).label(“Block”+strix+”C”+toString(counter));