<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>FeatureScript — Onshape</title>
        <link>https://forum.onshape.com/</link>
        <pubDate>Fri, 06 Mar 2026 17:38:50 +0000</pubDate>
        <language>en</language>
            <description>FeatureScript — Onshape</description>
    <atom:link href="https://forum.onshape.com/categories/featurescript/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Custom Feature: Chamfillet</title>
        <link>https://forum.onshape.com/discussion/30366/custom-feature-chamfillet</link>
        <pubDate>Thu, 05 Mar 2026 23:34:35 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>brett_jaeger168</dc:creator>
        <guid isPermaLink="false">30366@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/0856c33697ab96fedd9b350e/w/e67b146ded009a395357c283/e/6d6d3ce4228b79d57a7ec8c7" rel="nofollow noopener ugc">Link to Feature</a></p><p>A common problem with 3d printed models (FDM) is that a fillet on the build plate ends up looking ugly because the printer cannot print a horizontal overhang. Usually, if you are designing a 3d printed part, you then use a chamfer on the bottom face because most FDM printers can print at least a 45 degree overhang. But what if you still want a nice curved bottom? Enter Chamfillet! You select the bottom face and the overhang angle your printer is capable of and then it creates a chamfer that blends into a fillet. I did some quick trigonometry to make sure that the chamfer/fillet combo is the exact same size as a fillet on its own. The sketch in the second image shows what is being calculated.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/U4J3FO2B8R2G\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:177717,&quot;width&quot;:1483,&quot;height&quot;:942,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FU4J3FO2B8R2G%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54626,&quot;dateInserted&quot;:&quot;2026-03-05T21:06:24+00:00&quot;,&quot;insertUserID&quot;:66148,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;66148&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/U4J3FO2B8R2G/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/U4J3FO2B8R2G/image.png" alt="image.png" height="942" width="1483" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/U4J3FO2B8R2G/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/U4J3FO2B8R2G/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/U4J3FO2B8R2G/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/U4J3FO2B8R2G/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/U4J3FO2B8R2G/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/U4J3FO2B8R2G/image.png 2000w, https://us.v-cdn.net/5022071/uploads/U4J3FO2B8R2G/image.png" sizes="100vw" /></a>
    </span>
</span>
<span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/AHKZY8ZLKDSC\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:118200,&quot;width&quot;:2265,&quot;height&quot;:1554,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FAHKZY8ZLKDSC%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54629,&quot;dateInserted&quot;:&quot;2026-03-05T21:21:05+00:00&quot;,&quot;insertUserID&quot;:66148,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;66148&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/AHKZY8ZLKDSC/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/AHKZY8ZLKDSC/image.png" alt="image.png" height="1554" width="2265" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/AHKZY8ZLKDSC/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/AHKZY8ZLKDSC/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/AHKZY8ZLKDSC/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/AHKZY8ZLKDSC/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/AHKZY8ZLKDSC/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/AHKZY8ZLKDSC/image.png 2000w, https://us.v-cdn.net/5022071/uploads/AHKZY8ZLKDSC/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>The image below shows a sliced model with a 8mm Chamfillet (left) and a 8mm standard fillet (right). As you can see, the slicer wants to put support material under to standard fillet to support the surface because the fillet is technically 0 degrees from the bed, which the printer cannot print. Supports are annoying to remove, especially at production volumes over 1-5x and will leave marks on the surface.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/EXZA5STEKSAT\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:600314,&quot;width&quot;:2260,&quot;height&quot;:1636,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FEXZA5STEKSAT%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54627,&quot;dateInserted&quot;:&quot;2026-03-05T21:13:54+00:00&quot;,&quot;insertUserID&quot;:66148,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;66148&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/EXZA5STEKSAT/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/EXZA5STEKSAT/image.png" alt="image.png" height="1636" width="2260" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/EXZA5STEKSAT/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/EXZA5STEKSAT/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/EXZA5STEKSAT/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/EXZA5STEKSAT/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/EXZA5STEKSAT/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/EXZA5STEKSAT/image.png 2000w, https://us.v-cdn.net/5022071/uploads/EXZA5STEKSAT/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>The other option is to turn off supports, which the slicer rightfully warns us about. The blue lines represent unsupported lines.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/L0DCCJX2BQ7X\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:914832,&quot;width&quot;:2316,&quot;height&quot;:1577,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FL0DCCJX2BQ7X%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54628,&quot;dateInserted&quot;:&quot;2026-03-05T21:20:14+00:00&quot;,&quot;insertUserID&quot;:66148,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;66148&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/L0DCCJX2BQ7X/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/L0DCCJX2BQ7X/image.png" alt="image.png" height="1577" width="2316" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/L0DCCJX2BQ7X/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/L0DCCJX2BQ7X/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/L0DCCJX2BQ7X/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/L0DCCJX2BQ7X/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/L0DCCJX2BQ7X/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/L0DCCJX2BQ7X/image.png 2000w, https://us.v-cdn.net/5022071/uploads/L0DCCJX2BQ7X/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>3D Printing Results: Fillet, No Supports (Left), Fillet With Supports (Middle), Chamfillet (Right)</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/1BV24V93152M\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:5400337,&quot;width&quot;:2611,&quot;height&quot;:1959,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F1BV24V93152M%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54634,&quot;dateInserted&quot;:&quot;2026-03-05T23:18:54+00:00&quot;,&quot;insertUserID&quot;:66148,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;66148&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/1BV24V93152M/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/1BV24V93152M/image.png" alt="image.png" height="1959" width="2611" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/1BV24V93152M/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/1BV24V93152M/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/1BV24V93152M/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/1BV24V93152M/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/1BV24V93152M/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/1BV24V93152M/image.png 2000w, https://us.v-cdn.net/5022071/uploads/1BV24V93152M/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>The Chamfillet and With Supports models look about the same, but the Chamfillet does not require post-processing. No supports looks droopy.</p><p></p><p>Good Luck!</p>]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Amalgam Tag and Amalgamate</title>
        <link>https://forum.onshape.com/discussion/29396/custom-feature-amalgam-tag-and-amalgamate</link>
        <pubDate>Mon, 24 Nov 2025 18:00:08 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Derek_Van_Allen_BD</dc:creator>
        <guid isPermaLink="false">29396@/discussions</guid>
        <description><![CDATA[<p>Are you like me and use Point Derive for everything? The ability to draw a part studio in one document and copy and paste functional geometry all over a different document is a huge force multiplier for quickly and precisely generating complex parts that adhere to centralized standards and document control schemes. For awhile I would tell people that they don't need a new custom featurescript for an operation, they just need a clever tool studio and Point Derive. There are 2 big downsides to Point Derive, however, and a relatively recent addition to the Onshape standard tools solves both. The first issue with Point Derive is that even though it allows for all the boolean operations right in the feature, sometimes I want to do additive and subtractive operations in the same feature. The other issue is that searching for my Point Derive tool documents in a shared workspace with my coworkers is like finding a needle in a haystack and I wish there were a way to just type in the name of the thing I'm looking for into the feature itself and have my tool geometry populate.<br /><br />
The Sheet Metal Form feature solves both of these problems. With the Form feature you can pre-determine a union body and a subtraction body for forming geometry and place complex details all over your sheet metal parts, adding and subtracting in the same step. It also carries with it the ability to start typing into the fields and filter to the relevant form studios due to a recent update. So I bootlegged the sheet metal feature to get it to work on non-sheet metal parts.<br /><br />
Introducing two new features: <a href="https://cad.onshape.com/documents/0e895d7eacdacb4177ac69da/w/94aee328b73fe8a1b4ff3a7f/e/7ac2839064e448ad2390dd3e" rel="nofollow noopener ugc"><strong>Amalgam Tag and Amalgamate</strong></a></p><p><strong>Amalgam Tag</strong> works in much the same way as the existing Tag feature, but I've stripped back some of the sheet metal specific functions in it to operate more generically as well as allowing the user to paint multiple bodies for subtraction or union operations. (Sheet Metal limits you to one each for largely logical reasons) You can even tag parts for an Insert→ New operation if you have objects that you want to place into locations in your downstream studios and don't want to merge them with either a union or a subtraction operation.<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/FCN0G1LNFGSA\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:98838,&quot;width&quot;:1118,&quot;height&quot;:1050,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FFCN0G1LNFGSA%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:52354,&quot;dateInserted&quot;:&quot;2025-11-24T17:08:32+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/FCN0G1LNFGSA/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/FCN0G1LNFGSA/image.png" alt="image.png" height="1050" width="1118" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/FCN0G1LNFGSA/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/FCN0G1LNFGSA/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/FCN0G1LNFGSA/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/FCN0G1LNFGSA/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/FCN0G1LNFGSA/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/FCN0G1LNFGSA/image.png 2000w, https://us.v-cdn.net/5022071/uploads/FCN0G1LNFGSA/image.png" sizes="100vw" /></a>
    </span>
</span>
<p><strong>Amalgamate </strong>works in much the same way as the Point Derive or Form features work. You select seed locations to do your business with and the feature will draw new instances of geometry at your selected locations oriented by mate connector and then the script will execute the boolean operations you defined on each of the seed bodies at each of the locations. Different scopes are allowed for the union and subtraction operations for cases where you want to add material to one body but remove material from a different body.<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/6SW9XP8N1803\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:183598,&quot;width&quot;:1486,&quot;height&quot;:1193,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F6SW9XP8N1803%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:52355,&quot;dateInserted&quot;:&quot;2025-11-24T17:21:03+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/6SW9XP8N1803/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/6SW9XP8N1803/image.png" alt="image.png" height="1193" width="1486" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/6SW9XP8N1803/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/6SW9XP8N1803/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/6SW9XP8N1803/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/6SW9XP8N1803/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/6SW9XP8N1803/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/6SW9XP8N1803/image.png 2000w, https://us.v-cdn.net/5022071/uploads/6SW9XP8N1803/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>Like puzzle piece or dovetail geometry. I'm adding material to the blue side and subtracting it from the gray side. These examples might not seem like the flashiest of case studies but they're simple tests to prove the concept. Your tool studios can be as complicated or configurable as you like (within general reason). The reason I got into developing this tool was that I wasn't satisfied with the existing featurescripts that generate printable threads and didn't want to maintain yet another branch of a custom feature, nor figure out how to generate modified Whitworth thread profiles with my preferred clearances in two incompatible featurescripts. So instead of trying to script it, I just built a configurable studio using whatever features worked best on an individual basis to generate my seed geometry and now I've got the ability to greeble it everywhere I need it.<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/GFY6GSVY5R3S\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:371902,&quot;width&quot;:1269,&quot;height&quot;:1196,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FGFY6GSVY5R3S%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:52357,&quot;dateInserted&quot;:&quot;2025-11-24T17:45:44+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/GFY6GSVY5R3S/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/GFY6GSVY5R3S/image.png" alt="image.png" height="1196" width="1269" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/GFY6GSVY5R3S/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/GFY6GSVY5R3S/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/GFY6GSVY5R3S/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/GFY6GSVY5R3S/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/GFY6GSVY5R3S/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/GFY6GSVY5R3S/image.png 2000w, https://us.v-cdn.net/5022071/uploads/GFY6GSVY5R3S/image.png" sizes="100vw" /></a>
    </span>
</span>
<span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/UZN710FTDE7O\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:410478,&quot;width&quot;:1846,&quot;height&quot;:1224,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FUZN710FTDE7O%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:52359,&quot;dateInserted&quot;:&quot;2025-11-24T17:48:02+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/UZN710FTDE7O/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/UZN710FTDE7O/image.png" alt="image.png" height="1224" width="1846" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/UZN710FTDE7O/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/UZN710FTDE7O/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/UZN710FTDE7O/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/UZN710FTDE7O/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/UZN710FTDE7O/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/UZN710FTDE7O/image.png 2000w, https://us.v-cdn.net/5022071/uploads/UZN710FTDE7O/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>Now it's super easy to insert your printed 10mm Size 8 Chamlet Head Bolts. I'll follow up with some examples of the library being built but I need to debug some Form tools library validation stuff I broke in the last update.</p>]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Heat Set Insert (Threaded inserts for 3D Printed Parts)</title>
        <link>https://forum.onshape.com/discussion/27617/custom-feature-heat-set-insert-threaded-inserts-for-3d-printed-parts</link>
        <pubDate>Tue, 29 Apr 2025 10:56:22 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>brett_jaeger168</dc:creator>
        <guid isPermaLink="false">27617@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/515b197dfe1d80762df566c7/v/f60dbfa7dea3f2fe830ae2a5/e/fd03acb2c7ffb79df66306c6" rel="nofollow noopener ugc">Custom Feature: Heat Set Insert</a></p><p>I wanted to learn FeatureScript, so I created a new custom feature to place cavities for heat set inserts into 3d Printed parts quickly and easily. I have been really happy with it and have found that it really speeds up my designs, so I wanted to share it out!</p><p>Right now, it includes dimensions for 3 different brands of inserts: <a href="https://www.mcmaster.com/products/inserts/threaded-insert-type~heat-set/thread-insert-style~standard/thread-type~metric/material~brass-1/" rel="nofollow noopener ugc">McMaster</a>, <a href="https://cnckitchen.store/collections/insert-sets" rel="nofollow noopener ugc">CNC Kitchen</a>, and <a href="https://www.amazon.com/Ktehloy-Threaded-Assortment-Printing-Components/dp/B0CLKDPN65?crid=22XMV3ZN9BK0L&amp;dib=eyJ2IjoiMSJ9._kUhT8_c3fLIFvHwKA4mMgIuZk3BZNevhATKJRbxAnx-ClfdgPTthCdS5TVaaXjwwxibA5KB13q3fKqKr2SqjeyuYNxOXQPj-ajjzWet8zN0L4697LUkUG-rPEKfsn6-xlgFugJzyHFDfWG0ISe6ezdSNEOvmC7N9dyDZSHHi2RYToDBY22VE9XvYtBKqiAsrz-3iax9tWPlidnHSVPsvn_InhrCJ0RFTgG-1Q0ahJA.QhPeY8Wh-wYQ1FsF5CtfW-UL4W9uT-wUT_C7U-6BV3w&amp;dib_tag=se&amp;keywords=heat%2Bset%2Binserts&amp;qid=1728683410&amp;sprefix=%2Caps%2C109&amp;sr=8-3&amp;th=1" rel="nofollow noopener ugc">Ktehloy on Amazon</a>.</p><p>The featurescript creates a cavity that is the correct diameter for the insert selected from the drop down menu and the correct depth to allow the melted plastic to have somewhere to go when the insert melted in.</p><p>My preferred workflow is to use the normal Hole tool to make tapped holes and set the location of the heat set insert using mate connectors in the Heat Set Insert tool. Let me know if you want any features added to make it even better!</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/AMI0L864KI1H\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:115283,&quot;width&quot;:753,&quot;height&quot;:698,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;mediaID&quot;:48259,&quot;dateInserted&quot;:&quot;2025-04-29T00:43:01+00:00&quot;,&quot;insertUserID&quot;:66148,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;66148&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/AMI0L864KI1H/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/AMI0L864KI1H/image.png" alt="image.png" height="698" width="753" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/AMI0L864KI1H/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/AMI0L864KI1H/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/AMI0L864KI1H/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/AMI0L864KI1H/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/AMI0L864KI1H/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/AMI0L864KI1H/image.png 2000w, https://us.v-cdn.net/5022071/uploads/AMI0L864KI1H/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>[Chatbot Copilot] - We Built a FeatureScript AI Assistant That Outperforms ChatGPT</title>
        <link>https://forum.onshape.com/discussion/26237/chatbot-copilot-we-built-a-featurescript-ai-assistant-that-outperforms-chatgpt</link>
        <pubDate>Wed, 18 Dec 2024 21:57:48 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>guillauem_d</dc:creator>
        <guid isPermaLink="false">26237@/discussions</guid>
        <description><![CDATA[<p>Hey everyone,</p><p>I’m a mechanical engineer, and I’ve been working with FeatureScript at my company for about a year now. Honestly, it’s been tough. Tools like ChatGPT suck at FeatureScript, which is frustrating when you know how useful they are for more familiar languages like JavaScript or Python. Unless you're a FeatureScript expert, I think we can all agree that productivity takes a big hit compared to more common languages because there’s no good LLM-powered copilot to help out.</p><p>So, we fixed that !  <strong>We built our own AI assistant, specifically for FeatureScript</strong> !</p><p>It’s not perfect, but it’s way better than ChatGPT in this area. This isn’t just a basic GPT model with the Onshape Standard Library as input—two of our machine learning engineers spent six months building it. They used a technique based on a paper called “Large language model multi-agent collaborations”. I’m no, expert but basically, they created a system with reasoning steps, multiple agents working together to analyze questions, generate code, cross-check the documentation, test, and iterate until the output works. It uses RAG, agent-based reasoning, and multiple LLM calls to get the job done. Internally, it’s been a game-changer for how we work with FeatureScript. And while this tool clearly doesn't make us better than a featurescript expert, it does make us infinitely more productive.</p><p>Don’t get me wrong, if we had 10 million dollars to label tons of FeatureScript data and fine-tune a big model, that would be even better. But for now, this approach is giving us a really good productivity boost, and we’re pretty excited about it.</p><p>Now we’re wondering if we should share this with the outside world. There are a couple of big questions:</p><ul><li><strong>Would people pay for it?</strong> Let’s be real: running all these models and doing this whole chain-of-thought process isn’t cheap. Plus, they put so much work into this. They’d have to charge a monthly fee. For professional work, it’s a no-brainer—just a small productivity boost pays for itself almost immediately. But do you feel the same way?</li><li><strong>Is there enough interest out there?</strong> Are we looking at a niche tool that only a handful of people would find useful, or is there a real market for something like this?</li></ul><p>I’d love to hear what you think. Would a specialized FeatureScript assistant be worth the cost to you or your company? Are we barking up the wrong tree, or does this seem like something that could fill a real need?</p><p>Thanks for any thoughts you can share !</p>]]>
        </description>
    </item>
    <item>
        <title>Classify Onshape Standard Content in FS?</title>
        <link>https://forum.onshape.com/discussion/30327/classify-onshape-standard-content-in-fs</link>
        <pubDate>Mon, 02 Mar 2026 14:30:52 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Max_Schürer</dc:creator>
        <guid isPermaLink="false">30327@/discussions</guid>
        <description><![CDATA[<p>Hi everyone,</p><p>is there a way of creating a query to determine if a part is Onshape standard content in FS?  I think there must be some kind of undocumented, internal "standardContentId" or something like qGeneratedByStandard because somehow the standard icon in the feature tree has to be added to these certain parts in the creation process.  Or has someone of you already created an isStandardContent() using some other sneaky workaround? Maybe  <a data-username="Caden_Armstrong" data-userid="75328" rel="nofollow" href="https://forum.onshape.com/profile/Caden_Armstrong">@Caden_Armstrong</a>  or <a data-username="EvanReese" data-userid="13463" rel="nofollow" href="https://forum.onshape.com/profile/EvanReese">@EvanReese</a> (tagging you two because you always seem to find a way to make the impossible work, thanks for the great community work btw!)?</p><p>I want to use this in computed part properties, to unify imported standard content from neutral formats (eg. STEP) (acquired that already) and the one created in Onshape to the same category, because i want to use the Onshape categories for mapping in further export.</p><p>Regards,</p><p>Max</p>]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Triad Transform</title>
        <link>https://forum.onshape.com/discussion/29540/custom-feature-triad-transform</link>
        <pubDate>Thu, 11 Dec 2025 03:57:19 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Derek_Van_Allen_BD</dc:creator>
        <guid isPermaLink="false">29540@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/53f9c96eec0b3ad76a729611/w/ea757013cdd2d906819d65de/e/b97ba1f841d8528589403ea9" target="_blank" rel="nofollow noopener ugc"><strong>-Link to feature up front-</strong></a><br />
Onshape's vanilla transform feature doesn't give you those nice buttery smooth rotation handles to play with like the assembly tabs do, which is a shame because some of the most aesthetically pleasing structures aren't confined to the bounds of XYZ coordinates. I mean look at these crystal clusters moving around the screen as freeform as can be.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/XIFOT2BBR0NE\/triadtransformhq.gif&quot;,&quot;name&quot;:&quot;TriadTransformHQ.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:25243730,&quot;width&quot;:1274,&quot;height&quot;:1010,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FXIFOT2BBR0NE%2Ftriadtransformhq.gif&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:52684,&quot;dateInserted&quot;:&quot;2025-12-11T03:36:03+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif" alt="TriadTransformHQ.gif" height="1010" width="1274" data-display-size="medium" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif 2000w, https://us.v-cdn.net/5022071/uploads/XIFOT2BBR0NE/triadtransformhq.gif" sizes="100vw" /></a>
    </span>
</span>
<p>Wait was that a feature dialog window?</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/FG1ZLVEYBDAQ\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:182297,&quot;width&quot;:1403,&quot;height&quot;:1267,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FFG1ZLVEYBDAQ%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:52685,&quot;dateInserted&quot;:&quot;2025-12-11T03:44:41+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/FG1ZLVEYBDAQ/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/FG1ZLVEYBDAQ/image.png" alt="image.png" height="1267" width="1403" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/FG1ZLVEYBDAQ/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/FG1ZLVEYBDAQ/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/FG1ZLVEYBDAQ/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/FG1ZLVEYBDAQ/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/FG1ZLVEYBDAQ/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/FG1ZLVEYBDAQ/image.png 2000w, https://us.v-cdn.net/5022071/uploads/FG1ZLVEYBDAQ/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>It sure was.<br />
I've been working on some projects recently that necessarily need to be freed from the confines of coordinate grids and as much as I love the standard rotation transform and mate connector to mate connector transform they weren't letting the creative juices flow. So I made <strong>Triad Transform</strong> to bring that sweet full triad manipulator to the part studio environment. Use this tool to make your D&amp;D minis look more organic and lively. Use this tool when your boss wants you to nudge that part over that way and rotate it 45 degrees just for looksies real quick, and he doesn't understand the difference between part studios and assemblies. Use this tool on your coworker's parts and hide it in their feature tree so that all of their drawing views are 0.5° out of alignment and watch them tear their hair out trying to figure out why their dimensional callouts aren't working. The possibilities are endless.</p>]]>
        </description>
    </item>
    <item>
        <title>Given a mate connector how do you find the owner body for it?</title>
        <link>https://forum.onshape.com/discussion/13781/given-a-mate-connector-how-do-you-find-the-owner-body-for-it</link>
        <pubDate>Wed, 10 Jun 2020 10:01:45 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>pmd</dc:creator>
        <guid isPermaLink="false">13781@/discussions</guid>
        <description><![CDATA[How do you go from a mate connector to the owner part?<br /><br />I tried qOwnerBody(mc) but that seems to return the MC itself since MC's are bodies in their own right.<br /><br /><pre spellcheck="false" tabindex="0">annotation { "Feature Type Name" : "OwnerOfMC" }&#13;
export const myFeature = defineFeature(function(context is Context, id is Id, definition is map)&#13;
    precondition&#13;
    {&#13;
        annotation { "Name" : "My Query", "Filter" : BodyType.MATE_CONNECTOR, "MaxNumberOfPicks" : 1 }&#13;
        definition.mc is Query;&#13;
        &#13;
    }&#13;
    {&#13;
        var mc_owner = qOwnerBody(definition.mc);&#13;
        debug(context, mc_owner);&#13;
    });&#13;
</pre><div><br /></div><a rel="nofollow" href="https://cad.onshape.com/documents/fc195edc346146cb553ba40a/w/ee195a6b5394daccf5b1a8d8/e/36e00d6dd082306d848814a5" title="Link: https://cad.onshape.com/documents/fc195edc346146cb553ba40a/w/ee195a6b5394daccf5b1a8d8/e/36e00d6dd082306d848814a5">https://cad.onshape.com/documents/fc195edc346146cb553ba40a/w/ee195a6b5394daccf5b1a8d8/e/36e00d6dd082306d848814a5</a><br /><br />The reason I want this is I am using the MC to indicate a reference point on a part and do not want the user to have select both the MC and the part.]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Gridfinity Bin &amp; Base Generators</title>
        <link>https://forum.onshape.com/discussion/24405/custom-feature-gridfinity-bin-base-generators</link>
        <pubDate>Fri, 21 Jun 2024 22:54:20 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>seishin</dc:creator>
        <guid isPermaLink="false">24405@/discussions</guid>
        <description><![CDATA[I just wanted to share the two generators I've written:<br /><a href="https://cad.onshape.com/documents/f307f8af01083b99b55bbcf9/w/e62d7ab7a660a796bb9461a7/e/10837cead0dddf47a9b60a3b" rel="nofollow">https://cad.onshape.com/documents/f307f8af01083b99b55bbcf9/w/e62d7ab7a660a796bb9461a7/e/10837cead0dddf47a9b60a3b</a><br /><a href="https://cad.onshape.com/documents/f307f8af01083b99b55bbcf9/w/e62d7ab7a660a796bb9461a7/e/6f4023e4bb25eda38c5e4f2d" rel="nofollow">https://cad.onshape.com/documents/f307f8af01083b99b55bbcf9/w/e62d7ab7a660a796bb9461a7/e/6f4023e4bb25eda38c5e4f2d</a><br /><br />cheers!]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Gridfinity Parametric Generator</title>
        <link>https://forum.onshape.com/discussion/27807/custom-feature-gridfinity-parametric-generator</link>
        <pubDate>Mon, 19 May 2025 06:48:48 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>igalarzab</dc:creator>
        <guid isPermaLink="false">27807@/discussions</guid>
        <description><![CDATA[<p>Hi!</p><p>I created a custom feature to generate Gridfinity bins, either completely solid (so you can make cutouts), or hollowed with customisable features like labels, finger sliders, etc.</p><p>I saw another version of something similar posted here, but some of its dimensions are off and I also ran into issues when stacking the bins. I also thought this would be a great opportunity to learn FeatureScript (this is my first custom feature!).</p><p>Anyway, here it is:</p><p><a href="https://cad.onshape.com/documents/3cbb7496bf21033c93732426/w/d2bf330d898a189967c4abb8/e/64e5b33252db3da9f6fb4a4b" rel="nofollow noopener ugc">https://cad.onshape.com/documents/3cbb7496bf21033c93732426/w/d2bf330d898a189967c4abb8/e/64e5b33252db3da9f6fb4a4b</a></p><p>I tried to be careful to reduce the amount of waste material and followed the Gridfinity official dimensions strictly, but let me know if you encounter any issues, or if you would like any extra features, as I've developed only the ones I needed for myself (I can't promise if/when I will be able to make them though).</p><p>I uploaded it also to Github in case you would like to contribute there:</p><p><span data-embedjson="{&quot;body&quot;:&quot;Gridfinity Generator for Onshape. Contribute to igalarzab\/gridfinity-generator-onshape development by creating an account on GitHub.&quot;,&quot;photoUrl&quot;:&quot;https:\/\/opengraph.githubassets.com\/9926f1e140696b9b231285a74f6fbf4daa722a04d8bb24ebc5e8bc5b714582c0\/igalarzab\/gridfinity-generator-onshape&quot;,&quot;url&quot;:&quot;https:\/\/github.com\/igalarzab\/gridfinity-generator-onshape&quot;,&quot;embedType&quot;:&quot;link&quot;,&quot;name&quot;:&quot;GitHub - igalarzab\/gridfinity-generator-onshape: Gridfinity Generator for Onshape&quot;,&quot;faviconUrl&quot;:&quot;https:\/\/github.githubassets.com\/favicons\/favicon.svg&quot;,&quot;embedStyle&quot;:&quot;rich_embed_inline&quot;}">
    <a href="https://github.com/igalarzab/gridfinity-generator-onshape" rel="nofollow noopener ugc">
        https://github.com/igalarzab/gridfinity-generator-onshape
    </a>
</span>
</p>]]>
        </description>
    </item>
    <item>
        <title>Can&#39;t figure out CANNOT_RESOLVE_ENTITIES from opBoolean</title>
        <link>https://forum.onshape.com/discussion/30314/can-039-t-figure-out-cannot-resolve-entities-from-opboolean</link>
        <pubDate>Sun, 01 Mar 2026 17:38:10 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>mike_holczer</dc:creator>
        <guid isPermaLink="false">30314@/discussions</guid>
        <description><![CDATA[<p>I've been going through the FeatureScript Fundamentals course in the learning system, and I'm on the final exercise. I'm getting a CANNOT_RESOLVE_ENTITIES from a opBoolean call, and I can't figure out what going wrong. I've more than triple checked my code against what's provided in the instructions, and I've added debug calls for the both the tool and target queries being passed to opBoolean and they both are finding a solid body. It would be great if someone could take look and see if you can spot what I'm doing wrong.</p><p>My document is <a href="https://cad.onshape.com/documents/a54f7c681817ca14f0810e10/w/7df64ab373a51dd1933f9e7f/e/19616971d3925d5cbcf6d147" rel="noopener noreferrer ugc nofollow">https://cad.onshape.com/documents/a54f7c681817ca14f0810e10/w/7df64ab373a51dd1933f9e7f/e/19616971d3925d5cbcf6d147</a>. Error is on line 80 of the Milk Crate Lattice FeatureStudio.</p><p>Thank you in advance for any help you can provide.</p>]]>
        </description>
    </item>
    <item>
        <title>Gear Lab - Cylindrical, Bevel, Face Gears</title>
        <link>https://forum.onshape.com/discussion/18686/gear-lab-cylindrical-bevel-face-gears</link>
        <pubDate>Mon, 18 Jul 2022 05:17:37 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>antlu65</dc:creator>
        <guid isPermaLink="false">18686@/discussions</guid>
        <description><![CDATA[<div>Yup, it's another custom feature for gears. I had previously used Neil Cooke's excellent 'Spur Gear' feature [<a rel="nofollow" href="https://cad.onshape.com/documents/0023de306780bd6153871aa4/v/8fea747c8a15e3e9f2e607bb/e/d26f32003891756b0ecb81f1" title="Link: https://cad.onshape.com/documents/0023de306780bd6153871aa4/v/8fea747c8a15e3e9f2e607bb/e/d26f32003891756b0ecb81f1">Link</a>], but I wanted the ability to generate bevel and face gears as well. I only learned about Bob Tipton's great <a rel="nofollow" href="https://cad.onshape.com/documents/db73276df7574c7e29b36a0a/w/677116fcd7a1ac2e1fe6dcb3/e/9cdd845cb072bf9378d4151d" title="Link: https://cad.onshape.com/documents/db73276df7574c7e29b36a0a/w/677116fcd7a1ac2e1fe6dcb3/e/9cdd845cb072bf9378d4151d">bevel gear FS</a> after I had nearly finished this. I fear that my "Gear Lab" custom feature is largely rehashing what has already been done, but I thought I'd share what I have in case anyone does find a use for it.<br /><br />Here is a brief description of the feature set:</div><div><br /></div><div>--- Gear Lab ---</div><div>* Generate cylindrical gears (spur, helical, herringbone, internal) with involute teeth.</div><div>* Generate bevel gears (straight, spiral, herringbone, internal) with spherical involute teeth.</div><div>* Generate face gears (straight, spiral, herringbone) with trapezoidal teeth and varying pressure angle.</div><div>* Position generated gear by specifying primitive geometry (a face, a face and vertex, an edge and vertex, etc.)<br />* Generate and position a gear by selecting a 'parent' gear created by this custom feature. The 'child' gear will have parameters and positioning set to fit the parent gear. Can enter an angle offset, or align to other geometry primitives.<br /></div><div>* Adjustment settings: bore + keyway, tooth chamfer, root fillet, tip/root/side adjustments, minimum land.<br /><br /></div><div>A few additional comments:<br />- most inputs are unitless and represent multiples of the gear module; consequently, changing the module will scale the entire part (with a few minor exceptions like the bore/keyway options).<br />- the pressure angle input is specifically for *normal* pressure angle (I believe the 'Spur Gear' feature uses transverse pressure angle for its input).<br />- the type of gear is determined by the bevel angle <b></b>𝛿 (𝛿 = 0 for cylindrical gear, 𝛿 = 90 for face gear); the face gear produced here is for meshing with cylindrical gears; the code can handle creating a face gear for meshing with bevel gears (𝛿 = 90 with spherical involute teeth), but I wasn't sure how to elegantly present that option to the user, so I left it out.<br />- the helical/spiral teeth are right-handed for positive values, and left-handed for negative values; the spiral bevel and face gear teeth follow a logarithmic spiral; could implement additional spiral patterns if requested, or zerol teeth.<br />- when using the "Inherit from Parent Gear" mode, valid unselected parent gears are highlighted in cyan; the currently selected parent gear is not highlighted.<br />- when specifying a Shaft Angle for a bevel gear pair, the resulting shaft angle may be slightly different from your input - this is because gear teeth are restricted to integer values. But for common usage where both bevel gears have the same bevel angle, this won't be an issue.<br />- the "minimum land" input in the Advanced Settings enforces a minimum tooth tip width (top land) to prevent teeth narrowing to a sharp point at high pressure angle.<br /><br /></div><div>I've attached several animated gifs below to briefly demonstrate some of the features. Please let me know if you find it useful, have suggestions, feature requests, bugs, etc.<br /><br /><b>Gear Lab [<a rel="nofollow" href="https://cad.onshape.com/documents/f349bdd78c53f3325055aefc/w/161d6a507877f1872b55c2b4/e/53214cbff7d86d5817cf8efb">Link</a>]:</b><br /><br /><img alt="" src="https://us.v-cdn.net/5022071/uploads/editor/jg/4gii0a27248c.gif" title="Image: https://us.v-cdn.net/5022071/uploads/editor/jg/4gii0a27248c.gif" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/editor/jg/4gii0a27248c.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/editor/jg/4gii0a27248c.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/editor/jg/4gii0a27248c.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/editor/jg/4gii0a27248c.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/editor/jg/4gii0a27248c.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/editor/jg/4gii0a27248c.gif 2000w, https://us.v-cdn.net/5022071/uploads/editor/jg/4gii0a27248c.gif" sizes="100vw" /><br /></div><img alt="" src="https://us.v-cdn.net/5022071/uploads/editor/a6/lzlx92qk06of.gif" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/editor/a6/lzlx92qk06of.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/editor/a6/lzlx92qk06of.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/editor/a6/lzlx92qk06of.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/editor/a6/lzlx92qk06of.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/editor/a6/lzlx92qk06of.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/editor/a6/lzlx92qk06of.gif 2000w, https://us.v-cdn.net/5022071/uploads/editor/a6/lzlx92qk06of.gif" sizes="100vw" /><img alt="" src="https://us.v-cdn.net/5022071/uploads/editor/hj/wt4jhg92xq0c.gif" title="Image: https://us.v-cdn.net/5022071/uploads/editor/hj/wt4jhg92xq0c.gif" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/editor/hj/wt4jhg92xq0c.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/editor/hj/wt4jhg92xq0c.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/editor/hj/wt4jhg92xq0c.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/editor/hj/wt4jhg92xq0c.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/editor/hj/wt4jhg92xq0c.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/editor/hj/wt4jhg92xq0c.gif 2000w, https://us.v-cdn.net/5022071/uploads/editor/hj/wt4jhg92xq0c.gif" sizes="100vw" /><br /><img alt="" src="https://us.v-cdn.net/5022071/uploads/editor/r2/h2psybjkn21u.gif" title="Image: https://us.v-cdn.net/5022071/uploads/editor/r2/h2psybjkn21u.gif" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/editor/r2/h2psybjkn21u.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/editor/r2/h2psybjkn21u.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/editor/r2/h2psybjkn21u.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/editor/r2/h2psybjkn21u.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/editor/r2/h2psybjkn21u.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/editor/r2/h2psybjkn21u.gif 2000w, https://us.v-cdn.net/5022071/uploads/editor/r2/h2psybjkn21u.gif" sizes="100vw" /><br /><br />]]>
        </description>
    </item>
    <item>
        <title>New FeatureScript: Plastic Threads</title>
        <link>https://forum.onshape.com/discussion/25343/new-featurescript-plastic-threads</link>
        <pubDate>Sat, 28 Sep 2024 20:19:59 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>william_knoblauch</dc:creator>
        <guid isPermaLink="false">25343@/discussions</guid>
        <description><![CDATA[<p>Hi everyone,</p><p>I've recently been messing around with FeatureScript and decided to make a thread feature for 3D-printed plastic parts. The general concept came from the <a href="https://cad.onshape.com/documents/6b640a407d78066bd5e41c7a/v/21ef017a4e386179c3be31f3/e/f8aea9e5c33e02eab0854a4f" target="_blank" rel="nofollow noopener ugc">ThreadCreator</a> script written by David Cowden almost 8 years ago. His script works really well and has even more configurability than mine but I wanted to tap into a more specific market than his captures. This FeatureScript aims to create internal and external threads that can be printed and immediately threaded together with little to no post-processing.</p><p>You can find the FeatureScript here <a href="https://cad.onshape.com/documents/7a5d17f7ab4323f51774364f/v/d61030981e0fe5a69074e0e1/e/eda9f6b8a0137132dd01e138" rel="nofollow noopener ugc">Plastic Thread</a>. The document has many examples as well as the full code base. If you have any comments or concerns please leave them below.</p><p>Features:</p><ul><li>Automatic pitch definition for basic threads with optional user input</li><li>Only one thread type: ANSI Standard (Could add more in the future if there is demand)</li><li>Internal and External Threads</li><li>Multi-start threads for ease of assembly</li><li>Left/Right handed threads</li><li>Configurable threaded length</li><li>Mate point for easy mating of assemblies</li><li>Precalculated thread tolerance for easy threading given no post-processing</li></ul><p>Please don't use this to create threads for metal bolts or other metal parts you want to machine. I cannot ensure the threads work with CNC or metal 3D-printed parts.</p><p></p><p>To create threads, simply provide a cylindrical face representing the major diameter of an external thread or the minor diameter of an internal thread:</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/YLS8WG58UM7X\/basic-threads.gif&quot;,&quot;name&quot;:&quot;Basic Threads.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:884055,&quot;width&quot;:1906,&quot;height&quot;:906,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;mediaID&quot;:39216,&quot;dateInserted&quot;:&quot;2024-09-28T20:11:21+00:00&quot;,&quot;insertUserID&quot;:80313,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;80313&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/YLS8WG58UM7X/basic-threads.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/YLS8WG58UM7X/basic-threads.gif" alt="Basic Threads.gif" height="906" width="1906" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/YLS8WG58UM7X/basic-threads.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/YLS8WG58UM7X/basic-threads.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/YLS8WG58UM7X/basic-threads.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/YLS8WG58UM7X/basic-threads.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/YLS8WG58UM7X/basic-threads.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/YLS8WG58UM7X/basic-threads.gif 2000w, https://us.v-cdn.net/5022071/uploads/YLS8WG58UM7X/basic-threads.gif" sizes="100vw" /></a>
    </span>
</span>
<p>From there many options can be configured from the number of starts to the handedness of the thread, and the thread length. Create a mate point to easily add a mate connector to the center of the thread for use in an assembly. </p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/D1LDS5N4ILCL\/thread-length-demo.gif&quot;,&quot;name&quot;:&quot;Thread Length Demo.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:2334345,&quot;width&quot;:1906,&quot;height&quot;:906,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;mediaID&quot;:39218,&quot;dateInserted&quot;:&quot;2024-09-28T20:11:38+00:00&quot;,&quot;insertUserID&quot;:80313,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;80313&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif" alt="Thread Length Demo.gif" height="906" width="1906" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif 2000w, https://us.v-cdn.net/5022071/uploads/D1LDS5N4ILCL/thread-length-demo.gif" sizes="100vw" /></a>
    </span>
</span>
<p>If you have a bolt and a nut you can easily select both and create the same threads on each in one step.</p><p>The tolerance between both internal and external threads is handled right away by the script:</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/FMXJCARN7WFX\/internal-26-external-demo.gif&quot;,&quot;name&quot;:&quot;Internal &amp; External Demo.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:11179141,&quot;width&quot;:1906,&quot;height&quot;:906,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;mediaID&quot;:39222,&quot;dateInserted&quot;:&quot;2024-09-28T20:14:07+00:00&quot;,&quot;insertUserID&quot;:80313,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;80313&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif" alt="Internal &amp; External Demo.gif" height="906" width="1906" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif 2000w, https://us.v-cdn.net/5022071/uploads/FMXJCARN7WFX/internal-26-external-demo.gif" sizes="100vw" /></a>
    </span>
</span>
<p>A function predetermines the tolerances and a tighter version of this function can be selected.</p><p>Some limitations associated with this FeatureScript are:</p><ul><li>Only one thread profile type. Even from Dave's Thread Creator script, there is no difference between the ANSI and ISO standard profiles (other than the naming convention).</li><li>No tolerance input meaning you cannot change the backlash of the threads. Currently, a log function determines the tolerance and has 2 versions a default "loose" tolerance and an optional "tight" tolerance. The "loose" tolerance function is designed to work at any diameter and ensure the parts thread together even with a lower-quality print with a poor surface finish.</li><li>Major/minor diameter input. I would like to add this in a future update</li><li>No starting or ending chamfer inputs. Chamfers are predetermined by their location and the number of thread starts.</li><li>Lead in input. (I don't find it useful enough for a 3D-printed part because it doesn't have to follow machining conventions. Also don't you just want your threads to end where you wanted them to)</li><li>Intelligent feature naming. I couldn't figure out how to add a nice name to the feature when it was created so I didn't and instead, there is an option to show the pitch of the threads in a message.</li><li>Thread clocking. I haven't added this yet. Let me know if it would be useful and I'll add it to my feature requests.</li></ul><p>I have some additions in mind to make the script either more configurable or more robust.</p><p>Possible Future Additions:</p><ul><li>Major, and minor diameter inputs to control every dimension and aspect of the threads.</li><li>Lead in functionality to make the threads prettier and maybe stronger.</li><li>Partially threaded internal threads (I don't know what use this would have right now).</li><li>Intelligent feature naming to make seeing the pitch easier.</li><li>Thread clocking to move the start of the thread relative to the rest of the part.</li></ul><p></p><p>You can find the FeatureScript here <a href="https://cad.onshape.com/documents/7a5d17f7ab4323f51774364f/v/d61030981e0fe5a69074e0e1/e/eda9f6b8a0137132dd01e138" target="_blank" rel="nofollow noopener ugc">Plastic Thread</a>. The document has many examples as well as the full code base. If you have any comments or concerns please leave them below.</p>]]>
        </description>
    </item>
    <item>
        <title>Tolerance for Boolean Add Along Surface Edges?</title>
        <link>https://forum.onshape.com/discussion/30261/tolerance-for-boolean-add-along-surface-edges</link>
        <pubDate>Tue, 24 Feb 2026 20:14:04 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>S1mon</dc:creator>
        <guid isPermaLink="false">30261@/discussions</guid>
        <description><![CDATA[<p>Is there an accepted way to compare two surface edges to see if they are within tolerance for a boolean add operation?</p><p>I'm trying to create an approximate offset curve along a surface - within tolerance - so it can be used for trimming and other operations. In this image the input curve is an isoparam (degree-3) and the output has been elevated to degree 7 to match the surface better. I have a bunch of options and tuning for fitting, but I need to know what's a good fit for that curve to be seen as "on the surface".<br /><br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/4Q3A1N609HR0\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:608786,&quot;width&quot;:1834,&quot;height&quot;:1062,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F4Q3A1N609HR0%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54400,&quot;dateInserted&quot;:&quot;2026-02-24T20:09:40+00:00&quot;,&quot;insertUserID&quot;:30526,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;30526&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/4Q3A1N609HR0/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/4Q3A1N609HR0/image.png" alt="image.png" height="1062" width="1834" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/4Q3A1N609HR0/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/4Q3A1N609HR0/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/4Q3A1N609HR0/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/4Q3A1N609HR0/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/4Q3A1N609HR0/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/4Q3A1N609HR0/image.png 2000w, https://us.v-cdn.net/5022071/uploads/4Q3A1N609HR0/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>New Featurescript: PP Surface Text 2.0</title>
        <link>https://forum.onshape.com/discussion/6423/new-featurescript-pp-surface-text-2-0</link>
        <pubDate>Sun, 07 May 2017 01:19:09 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>dave_cowden</dc:creator>
        <guid isPermaLink="false">6423@/discussions</guid>
        <description><![CDATA[<h2 data-id="we-are-pleased-to-announce-that-version-2-0-of-our-surface-text-creator-featurescript-is-now-available">We are pleased to announce that version 2.0 of our Surface Text creator Featurescript is now available.<br /></h2><b>Add the feature to your toolbar by searching for "PP Surface Text", or open this document:<br /><br /><a rel="nofollow" href="https://cad.onshape.com/documents/cad175bd2990f3c9314a1c10/w/05ec37b276b1dd333f6afc16/e/08c7b53ee50a34dc6966a026" title="Link: https://cad.onshape.com/documents/cad175bd2990f3c9314a1c10/w/05ec37b276b1dd333f6afc16/e/08c7b53ee50a34dc6966a026">https://cad.onshape.com/documents/cad175bd2990f3c9314a1c10/w/05ec37b276b1dd333f6afc16/e/08c7b53ee50a34dc6966a026</a></b><br /><br /><h2 data-id="new-features"><b><i>New Features:</i></b></h2><ul><li>Improved performance, especially on planar surfaces</li><li>Much more robust. If the text does not fit on the surface, it will be truncated, rather than creating a render error (thanks <a href="https://forum.onshape.com/profile/owen_sparks" rel="nofollow">@owen_sparks</a> )</li><li>New alignment modes allow selecting text to be aligned with baseline, or with the full extent of text</li><li>It is now easy to use the edges of a face as the align curve </li><li>Custom tracking allows tweaking spacing between letters (thanks <a href="https://forum.onshape.com/profile/SledDriver" rel="nofollow">@SledDriver</a> )</li><li>Custom Kerning allows fine-tuning the spacing between each pair of letters</li><li>Text is projected onto the selected surface, so that base curves can be located on another plane if desired</li><li>Text letters can now be filleted</li></ul><br />As always, this feature is a BETA, free for personal and commercial use.  We only ask that you report both good and bad experiences so we can improve the product.  Make sure to open the example folder for lots of good examples of the feature in action!    More information is available here:<br /><br /><a rel="nofollow" href="http://store.parametricparts.com/store/p10/CURVED-TEXT-2.0"><b></b></a><a href="http://store.parametricparts.com/store/p10/CURVED-TEXT-2.0" rel="nofollow">http://store.parametricparts.com/store/p10/CURVED-TEXT-2.0</a><br /><br />This feature and our others are available on the Parametric Parts store, at <a rel="nofollow" href="http://store.parametricparts.com/products.html">http://store.parametricparts.com/products.html</a><br /><br /><img src="https://us.v-cdn.net/5022071/uploads/editor/j7/ghh0vgg7p391.gif" alt="" title="Image: https://us.v-cdn.net/5022071/uploads/editor/j7/ghh0vgg7p391.gif" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/editor/j7/ghh0vgg7p391.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/editor/j7/ghh0vgg7p391.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/editor/j7/ghh0vgg7p391.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/editor/j7/ghh0vgg7p391.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/editor/j7/ghh0vgg7p391.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/editor/j7/ghh0vgg7p391.gif 2000w, https://us.v-cdn.net/5022071/uploads/editor/j7/ghh0vgg7p391.gif" sizes="100vw" /><br /><br />]]>
        </description>
    </item>
    <item>
        <title>First FeatureScript 🎉 “Braille Surface Text” + quick licensing/LLM question</title>
        <link>https://forum.onshape.com/discussion/30246/first-featurescript-braille-surface-text-quick-licensing-llm-question</link>
        <pubDate>Mon, 23 Feb 2026 13:46:01 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>roman_jurt190</dc:creator>
        <guid isPermaLink="false">30246@/discussions</guid>
        <description><![CDATA[<p>Hey all - my first FS (with basicly no coding experience) and I’m pretty excited!</p><p>I built it with Gemini 3 Pro in 2–3 hours but had to fiddle around quite a bit to get the dots working on spheres.<br />
It places Braille-dots on curved surfaces to support accessibility to all kinds of objects.<br />
BRAILLE SURFACE TEXT : https://cad.onshape.com/documents/1fc1fc5ae605e4efd3a797f1/w/8d2ce7163bcdc10b51893d43/e/ca08d0073497aa834aef9631<br />
Inspired by <a data-username="dave_cowden" data-userid="4667" rel="nofollow" href="https://forum.onshape.com/profile/dave_cowden">@dave_cowden</a> FS: https://cad.onshape.com/documents/cfec40e2b66bb4ddb2f3414b/w/24132f252a02825eb0606641/e/c8e6602fb08acac97a10a38e</p><p>Two quick questions:</p><ol><li>If a public Onshape doc has no LICENSE tab, what’s the community norm for reusing code (crediting the author, of course)?</li><li>OK to paste snippets into an LLM just for explanation/refactor?<span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/9RBSWBKJJ7ZH\/bildschirmfoto-2026-02-23-um-14-39-05.png&quot;,&quot;name&quot;:&quot;Bildschirmfoto 2026-02-23 um 14.39.05.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:977074,&quot;width&quot;:4304,&quot;height&quot;:1690,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F9RBSWBKJJ7ZH%2Fbildschirmfoto-2026-02-23-um-14-39-05.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54352,&quot;dateInserted&quot;:&quot;2026-02-23T13:39:35+00:00&quot;,&quot;insertUserID&quot;:18724,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;18724&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png" alt="Bildschirmfoto 2026-02-23 um 14.39.05.png" height="1690" width="4304" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png 2000w, https://us.v-cdn.net/5022071/uploads/9RBSWBKJJ7ZH/bildschirmfoto-2026-02-23-um-14-39-05.png" sizes="100vw" /></a>
    </span>
</span>
<span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/121RNC9AXAAU\/bildschirmfoto-2026-02-23-um-14-38-26.png&quot;,&quot;name&quot;:&quot;Bildschirmfoto 2026-02-23 um 14.38.26.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:686536,&quot;width&quot;:1910,&quot;height&quot;:1136,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F121RNC9AXAAU%2Fbildschirmfoto-2026-02-23-um-14-38-26.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54353,&quot;dateInserted&quot;:&quot;2026-02-23T13:39:44+00:00&quot;,&quot;insertUserID&quot;:18724,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;18724&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png" alt="Bildschirmfoto 2026-02-23 um 14.38.26.png" height="1136" width="1910" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png 2000w, https://us.v-cdn.net/5022071/uploads/121RNC9AXAAU/bildschirmfoto-2026-02-23-um-14-38-26.png" sizes="100vw" /></a>
    </span>
</span>
</li></ol><p>Thanks!</p>]]>
        </description>
    </item>
    <item>
        <title>FeatureScript Standard Library Visualizer</title>
        <link>https://forum.onshape.com/discussion/30230/featurescript-standard-library-visualizer</link>
        <pubDate>Fri, 20 Feb 2026 22:33:38 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>S1mon</dc:creator>
        <guid isPermaLink="false">30230@/discussions</guid>
        <description><![CDATA[<p><span data-embedjson="{&quot;body&quot;:&quot;&quot;,&quot;url&quot;:&quot;https:\/\/gatrall.github.io\/fsvisualizer\/&quot;,&quot;embedType&quot;:&quot;link&quot;,&quot;name&quot;:&quot;FeatureScript Stdlib Visualizer&quot;,&quot;embedStyle&quot;:&quot;rich_embed_inline&quot;}">
    <a href="https://gatrall.github.io/fsvisualizer/" rel="nofollow noopener ugc">
        https://gatrall.github.io/fsvisualizer/
    </a>
</span>
<br /><br />
I built a tool (or more accurately vibe coded a tool) to visualize the Onshape Standard FeatureScript library. This is very new, and I'm sure there are some weird things about it. Let me know what works and what doesn't. For each module, it shows what's imported/exported, a link to the documentation, the cad.onshape.com link to the module, and lots lots more…</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/QGIJMRRUTK5P\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:1317395,&quot;width&quot;:3304,&quot;height&quot;:2130,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FQGIJMRRUTK5P%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54302,&quot;dateInserted&quot;:&quot;2026-02-20T22:34:43+00:00&quot;,&quot;insertUserID&quot;:30526,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;30526&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/QGIJMRRUTK5P/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/QGIJMRRUTK5P/image.png" alt="image.png" height="2130" width="3304" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/QGIJMRRUTK5P/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/QGIJMRRUTK5P/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/QGIJMRRUTK5P/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/QGIJMRRUTK5P/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/QGIJMRRUTK5P/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/QGIJMRRUTK5P/image.png 2000w, https://us.v-cdn.net/5022071/uploads/QGIJMRRUTK5P/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: OnlyTabs - A premium sheet metal tab and slot feature</title>
        <link>https://forum.onshape.com/discussion/29991/custom-feature-onlytabs-a-premium-sheet-metal-tab-and-slot-feature</link>
        <pubDate>Fri, 30 Jan 2026 22:57:53 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Derek_Van_Allen_BD</dc:creator>
        <guid isPermaLink="false">29991@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/140d501acd0c1b92deac5cce/w/2808958d7f4377b889f4aaca/e/b74d730ca1a9535f903f8f55" target="_blank" rel="nofollow noopener ugc"><strong>-Link to feature up front-</strong></a></p><p>A long time ago in the distant year of late 2024 our sheet metal obsessed production company was evaluating our CAD options and found ourselves checking out Onshape as an alternative to our old licenses of Solidworks. There were two main barriers in the way of our adoption, support for sheet metal cones, and a sheet metal tab and slot feature. Cone support came very quickly after we began our evaluation which gave us the confidence to switch, and featurescript had partial solutions for the tab and slot support already that we could make some use of for some projects. The problem is none of the other public facing scripts support sheet metal geometry, let alone <em>curved </em>sheet metal geometry where you want tabs to smoothly roll along edges of your parts. And forget about cones, those were brand new at the time. So I reached out to <a data-username="Caden_Armstrong" data-userid="75328" rel="nofollow" href="https://forum.onshape.com/profile/Caden_Armstrong">@Caden_Armstrong</a> to help build a sheet metal tab and slot script that covers more of our use cases and support rolled geometry on active sheet metal parts because at the time I was brand new to Onshape and knew barely anything about featurescript. I could generate the slots pretty easily with a thicken operation, but the thing I really needed was help with was a feature that generated the tabs.<br /><br />
Through a full year of iteration since then <strong>OnlyTabs </strong>has become a full featured tab and slot feature that supports all major surface types that sheet metal supports.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/1JKMZ4C4SVTC\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:155479,&quot;width&quot;:1240,&quot;height&quot;:1121,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F1JKMZ4C4SVTC%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:53759,&quot;dateInserted&quot;:&quot;2026-01-30T23:29:16+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/1JKMZ4C4SVTC/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/1JKMZ4C4SVTC/image.png" alt="image.png" height="1121" width="1240" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/1JKMZ4C4SVTC/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/1JKMZ4C4SVTC/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/1JKMZ4C4SVTC/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/1JKMZ4C4SVTC/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/1JKMZ4C4SVTC/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/1JKMZ4C4SVTC/image.png 2000w, https://us.v-cdn.net/5022071/uploads/1JKMZ4C4SVTC/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>As long as Onshape treats the surface as a main sheet metal face (no bend faces at the moment) it will allow you to tabs extending from the edges you select. The only prerequisite is that the edge needs not to be part of a rip or bend joint to start with. You don't even necessarily have to specify a slot scope on your parts if you want to draw only the tabs. There are numerous spacing options available for tab placement whether you're looking to drive by a strict number, or best fit spacing, or strict spacing from one end of your path to the other. It even supports tabs spanning across multiple edges in a chain all at once.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/L1TLLRYBCOAQ\/onlytabsequalspacingdemo.gif&quot;,&quot;name&quot;:&quot;OnlyTabsEqualSpacingDemo.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:45607081,&quot;width&quot;:1784,&quot;height&quot;:1030,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FL1TLLRYBCOAQ%2Fonlytabsequalspacingdemo.gif&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:53760,&quot;dateInserted&quot;:&quot;2026-01-30T23:39:31+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif" alt="OnlyTabsEqualSpacingDemo.gif" height="1030" width="1784" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif 2000w, https://us.v-cdn.net/5022071/uploads/L1TLLRYBCOAQ/onlytabsequalspacingdemo.gif" sizes="100vw" /></a>
    </span>
</span>
<p>Slot clearances are accounted for, chamfer depths for the tips of the tabs, offset spacing from the ends of the chain if you want to maintain an equal pitch but set 1" in from that side and .5" in from that other side.<br /><br />
I even included a randomizer to make it impossible for your fabricators to install panels backwards.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/FC6OPLI0DHXF\/onlytabsrandomizerdemo.gif&quot;,&quot;name&quot;:&quot;OnlyTabsRandomizerDemo.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:31549483,&quot;width&quot;:1954,&quot;height&quot;:968,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FFC6OPLI0DHXF%2Fonlytabsrandomizerdemo.gif&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:53761,&quot;dateInserted&quot;:&quot;2026-01-30T23:45:32+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif" alt="OnlyTabsRandomizerDemo.gif" height="968" width="1954" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif 2000w, https://us.v-cdn.net/5022071/uploads/FC6OPLI0DHXF/onlytabsrandomizerdemo.gif" sizes="100vw" /></a>
    </span>
</span>
<p><br />
The working principle of the current iteration of this feature uses as much native sheet metal functionality as possible, both because I tried everything else first and ran into impenetrable bugs, and because performance in previous iterations was not worth publishing publicly. This version however, has pretty dang good performance for a custom sheet metal feature.<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/A6ZKUG92RPJA\/onlytabsperformancetest.gif&quot;,&quot;name&quot;:&quot;OnlyTabsPerformanceTest.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:48321415,&quot;width&quot;:2210,&quot;height&quot;:1158,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FA6ZKUG92RPJA%2Fonlytabsperformancetest.gif&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:53762,&quot;dateInserted&quot;:&quot;2026-01-30T23:48:29+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif" alt="OnlyTabsPerformanceTest.gif" height="1158" width="2210" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif 2000w, https://us.v-cdn.net/5022071/uploads/A6ZKUG92RPJA/onlytabsperformancetest.gif" sizes="100vw" /></a>
    </span>
</span>
<p>I don't think I'll ever actually send out a tab and slot joint with 200 randomized tabs and slots, but it's comforting to know that I can, should the need arise.<br /><br />
Subscribe to my OnlyTabs.</p>]]>
        </description>
    </item>
    <item>
        <title>PointsManipulator/TogglePointsManipulator Size?</title>
        <link>https://forum.onshape.com/discussion/30251/pointsmanipulator-togglepointsmanipulator-size</link>
        <pubDate>Mon, 23 Feb 2026 22:41:28 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>S1mon</dc:creator>
        <guid isPermaLink="false">30251@/discussions</guid>
        <description><![CDATA[<p>Is there some reason that a points manipulator would be smaller when there's only one? Is this a bug or intended feature?<br /><br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/7ASX1S340RHV\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:43657,&quot;width&quot;:1046,&quot;height&quot;:642,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F7ASX1S340RHV%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54375,&quot;dateInserted&quot;:&quot;2026-02-23T22:38:57+00:00&quot;,&quot;insertUserID&quot;:30526,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;30526&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/7ASX1S340RHV/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/7ASX1S340RHV/image.png" alt="image.png" height="642" width="1046" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/7ASX1S340RHV/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/7ASX1S340RHV/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/7ASX1S340RHV/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/7ASX1S340RHV/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/7ASX1S340RHV/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/7ASX1S340RHV/image.png 2000w, https://us.v-cdn.net/5022071/uploads/7ASX1S340RHV/image.png" sizes="100vw" /></a>
    </span>
</span>
<span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/T7R1VF6KWOSM\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:45038,&quot;width&quot;:1046,&quot;height&quot;:642,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FT7R1VF6KWOSM%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54373,&quot;dateInserted&quot;:&quot;2026-02-23T22:38:22+00:00&quot;,&quot;insertUserID&quot;:30526,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;30526&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/T7R1VF6KWOSM/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/T7R1VF6KWOSM/image.png" alt="image.png" height="642" width="1046" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/T7R1VF6KWOSM/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/T7R1VF6KWOSM/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/T7R1VF6KWOSM/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/T7R1VF6KWOSM/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/T7R1VF6KWOSM/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/T7R1VF6KWOSM/image.png 2000w, https://us.v-cdn.net/5022071/uploads/T7R1VF6KWOSM/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>3D from Excel to Onshape</title>
        <link>https://forum.onshape.com/discussion/19597/3d-from-excel-to-onshape</link>
        <pubDate>Thu, 24 Nov 2022 07:22:08 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>jacek_zagaja</dc:creator>
        <guid isPermaLink="false">19597@/discussions</guid>
        <description><![CDATA[Below is Excel file with macro:<br /><a href="https://sphericalhorns.net/wp-content/uploads/2021/03/DrBA_JMLC_V303.zip" rel="nofollow">https://sphericalhorns.net/wp-content/uploads/2021/03/DrBA_JMLC_V303.zip</a><br /><br />that computes cross section point cloud with parameters on Sheet1:<br /><ol><li>Min. points per ellipse</li><li>Ellipse step size [mm] - step in Z direction</li></ol>My question is is it possible rewrite in Onshape and automatically generate surface loft?<br /><br />Points are on Sheet2 but hard to see gap between step size.]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Design Intent</title>
        <link>https://forum.onshape.com/discussion/24627/custom-feature-design-intent</link>
        <pubDate>Fri, 19 Jul 2024 18:38:24 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>DavisCCR</dc:creator>
        <guid isPermaLink="false">24627@/discussions</guid>
        <description><![CDATA[<div>Link to <a rel="nofollow" href="https://cad.onshape.com/documents/6844a9eee3d54ac5624bae3f/v/d627c5b91d79405fe0ed456d/e/2e089df02334436d798855a0" title="Link: https://cad.onshape.com/documents/6844a9eee3d54ac5624bae3f/v/d627c5b91d79405fe0ed456d/e/2e089df02334436d798855a0">Design Intent</a></div><div><br /></div><div>During design reviews I am often asking or being questioned as to why a model was formed the way it was. Usually the answer is in someone's head or personal notes and lacking from any formal documentation. If it is in documentation, then it is likely far from the CAD (unless you keep that in Onshape somehow) and took a long time to do properly.</div><div><br /></div><div>I wrote this custom feature to allow designers to link their thoughts and decisions right where the geometry is being created. I think it is a good practice especially if other people are looking at your models or you are taking long breaks from them. This feature combined with folders could really make for a highly concise feature tree.<br /></div><div> <br /></div><div><img src="https://us.v-cdn.net/5022071/uploads/editor/sj/sgtq1ldlphfu.png" alt="" title="Image: https://us.v-cdn.net/5022071/uploads/editor/sj/sgtq1ldlphfu.png" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/editor/sj/sgtq1ldlphfu.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/editor/sj/sgtq1ldlphfu.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/editor/sj/sgtq1ldlphfu.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/editor/sj/sgtq1ldlphfu.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/editor/sj/sgtq1ldlphfu.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/editor/sj/sgtq1ldlphfu.png 2000w, https://us.v-cdn.net/5022071/uploads/editor/sj/sgtq1ldlphfu.png" sizes="100vw" /></div><div><br /></div><div>The feature itself does nothing. You could actually replicate this using comments if you're OK with one linked object at a time. I see comments as more of a temporary communication tool rather than something that lives with the model. I think the next step in this journey is keeping design notes right in the document as a rendered markdown tab.</div><div><br /></div><div>I hope this feature fits into other user's workflows as well and please let me know any improvements you suggest.<br /></div>]]>
        </description>
    </item>
    <item>
        <title>Who created Spur Gear?  I made it faster.</title>
        <link>https://forum.onshape.com/discussion/30208/who-created-spur-gear-i-made-it-faster</link>
        <pubDate>Thu, 19 Feb 2026 14:33:52 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>joshtargo</dc:creator>
        <guid isPermaLink="false">30208@/discussions</guid>
        <description><![CDATA[<p>Spur Gear is great, but can er very slow for large complex gears.  We have been using it to make curved rack and pinion sections and it means making a gear with hundreds of teeth and then chopping it down.<br /><br />
Taking inspiration from <a href="https://cad.onshape.com/documents/f52df8c171a9d195fcd15e61/w/597ad3e9ffda7334c5c32aea/e/45fa2389f8c788cec371590b" rel="nofollow noopener ugc"><strong>Performant Part Pattern,</strong></a>  I made the hundreds of boolean operations recursive (pattern, boolean, pattern that, boolean again, etc.  so instead of 400 Booleans, there are 8.<br /><br />
This greatly increases performance as you can see in the image from <a href="https://cad.onshape.com/documents/7198ad2fe98d0eb919379247/w/74f040d923df708d95292100/e/27dacdf924190eea9c8bab5c" rel="nofollow noopener ugc"><strong>This Doc.</strong></a></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/97HY9P4Z69BV\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:77754,&quot;width&quot;:456,&quot;height&quot;:438,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F97HY9P4Z69BV%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54250,&quot;dateInserted&quot;:&quot;2026-02-19T14:33:25+00:00&quot;,&quot;insertUserID&quot;:72636,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;72636&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/97HY9P4Z69BV/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/97HY9P4Z69BV/image.png" alt="image.png" height="438" width="456" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/97HY9P4Z69BV/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/97HY9P4Z69BV/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/97HY9P4Z69BV/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/97HY9P4Z69BV/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/97HY9P4Z69BV/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/97HY9P4Z69BV/image.png 2000w, https://us.v-cdn.net/5022071/uploads/97HY9P4Z69BV/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>Can custom tables work like Cutlist?</title>
        <link>https://forum.onshape.com/discussion/30184/can-custom-tables-work-like-cutlist</link>
        <pubDate>Mon, 16 Feb 2026 20:59:40 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>EvanReese</dc:creator>
        <guid isPermaLink="false">30184@/discussions</guid>
        <description><![CDATA[<p>I'm making a custom table that is created by a custom feature that is similar to Cutlist. The tables it produces are associated with parts in the part studio. However, when I go to insert it into the drawing, unlike Cutlist tables, which are inserted by choosing the composite part they create, it seems like I can only insert the custom table by clicking the whole part studio, and it will bring in all tables from that studio, even ones from parts not in the drawing. Is this a limitation of custom tables or is there a way to set it up to work like Cutlist Tables when inserting? Here's what it looks like when choosing a composite part to insert a cutlist.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/BRY0UCW0EHMZ\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:74888,&quot;width&quot;:616,&quot;height&quot;:724,&quot;displaySize&quot;:&quot;small&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FBRY0UCW0EHMZ%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54181,&quot;dateInserted&quot;:&quot;2026-02-16T20:57:45+00:00&quot;,&quot;insertUserID&quot;:13463,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;13463&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/BRY0UCW0EHMZ/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/BRY0UCW0EHMZ/image.png" alt="image.png" height="724" width="616" data-display-size="small" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/BRY0UCW0EHMZ/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/BRY0UCW0EHMZ/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/BRY0UCW0EHMZ/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/BRY0UCW0EHMZ/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/BRY0UCW0EHMZ/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/BRY0UCW0EHMZ/image.png 2000w, https://us.v-cdn.net/5022071/uploads/BRY0UCW0EHMZ/image.png" sizes="100vw" /></a>
    </span>
</span>
<p><br />
And here's what it looks like inserting a table (can only pick part studios, not composites)</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/RKH2DCEO2FJ9\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:28680,&quot;width&quot;:620,&quot;height&quot;:160,&quot;displaySize&quot;:&quot;small&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FRKH2DCEO2FJ9%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54182,&quot;dateInserted&quot;:&quot;2026-02-16T20:58:53+00:00&quot;,&quot;insertUserID&quot;:13463,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;13463&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/RKH2DCEO2FJ9/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/RKH2DCEO2FJ9/image.png" alt="image.png" height="160" width="620" data-display-size="small" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/RKH2DCEO2FJ9/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/RKH2DCEO2FJ9/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/RKH2DCEO2FJ9/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/RKH2DCEO2FJ9/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/RKH2DCEO2FJ9/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/RKH2DCEO2FJ9/image.png 2000w, https://us.v-cdn.net/5022071/uploads/RKH2DCEO2FJ9/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>string formatting in FS?</title>
        <link>https://forum.onshape.com/discussion/3698/string-formatting-in-fs</link>
        <pubDate>Sat, 23 Apr 2016 14:12:51 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>adamohern</dc:creator>
        <guid isPermaLink="false">3698@/discussions</guid>
        <description><![CDATA[I'm used to Python's string formatting, where I can insert variables into a longer string and the result is concatenated automatically. Is there anything similar in FS? In the example below, look how much more readable the Python example is.<br /><br />&#13;
Python:<br /><pre spellcheck="false" tabindex="0">&#13;
"Hello, my name is %s and I like to eat %s on %s." % (name, food, day_of_week)&#13;
</pre>&#13;
or&#13;
<pre spellcheck="false" tabindex="0">&#13;
"Hello, my name is {} and I like to eat {} on {}.".format(name, food, day_of_week)&#13;
</pre>&#13;
&#13;
vs FeatureScript (AFAIK):&#13;
<pre spellcheck="false" tabindex="0">&#13;
"Hello, my name is " ~ name ~ " and I like to eat " ~ food ~ " on " ~ day_of_week ~ "."&#13;
</pre>]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Bip Joints - A Hand Bendable Sheet Metal Joint Feature</title>
        <link>https://forum.onshape.com/discussion/30185/custom-feature-bip-joints-a-hand-bendable-sheet-metal-joint-feature</link>
        <pubDate>Tue, 17 Feb 2026 04:14:03 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Derek_Van_Allen_BD</dc:creator>
        <guid isPermaLink="false">30185@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/da65ebc2d4f9783c095b771c/w/563241ef63dd75752cd1460d/e/faef61a168a45e290e419b19" target="_blank" rel="nofollow noopener ugc"><strong>-Link to feature up front-</strong></a></p><p>If you're a producer of sheet metal parts, or design your parts for sheet metal production, there's a strong possibility that your manufacturing pipeline is catered towards hard flat flanges with edges parallel to the bends because that's what the manufacturing process favors. This manufacturing constraint is likely visible in the final design language of your parts. Now I love a clean press brake bend probably more than the next guy, but sometimes you just need to add a bend in a spot that would require a 4th dimensional press brake to press through the fabric of spacetime to achieve, and you just didn't quote the job like that. Maybe you don't have a press brake at all and you're working out of your garage. <strong>Behold: The Bip Joint.</strong></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/GIORNUVA73IA\/bipjointthumbnail.gif&quot;,&quot;name&quot;:&quot;BipJointThumbnail.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:9071792,&quot;width&quot;:1612,&quot;height&quot;:1144,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FGIORNUVA73IA%2Fbipjointthumbnail.gif&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54187,&quot;dateInserted&quot;:&quot;2026-02-17T03:43:49+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif" alt="BipJointThumbnail.gif" height="1144" width="1612" data-display-size="medium" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif 2000w, https://us.v-cdn.net/5022071/uploads/GIORNUVA73IA/bipjointthumbnail.gif" sizes="100vw" /></a>
    </span>
</span>
<p>Now, I'm not the first person to think about punching enough holes in sheet metal to be able to bend it by hand. Perforated bends are not a new concept to the world of manufacturing and I'm sure there are examples going back centuries of this in action. There are also already a handful of featurescripts that play with some variation of this kind of geometry, and my primary metal vendor OSHcut even lets you change a bend joint into a stitch cut geometry right in the online cart so your geometry can pass the manufacturing checks and you can get your stuff made without having to go back and add splits or change the flanges in a way that's more disruptive to certain CAD programs.</p><p><code spellcheck="false" tabindex="0">So why Bip Joints?</code></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/CF48MDA05FTN\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:2800153,&quot;width&quot;:2079,&quot;height&quot;:1224,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FCF48MDA05FTN%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54188,&quot;dateInserted&quot;:&quot;2026-02-17T03:55:13+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/CF48MDA05FTN/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/CF48MDA05FTN/image.png" alt="image.png" height="1224" width="2079" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/CF48MDA05FTN/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/CF48MDA05FTN/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/CF48MDA05FTN/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/CF48MDA05FTN/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/CF48MDA05FTN/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/CF48MDA05FTN/image.png 2000w, https://us.v-cdn.net/5022071/uploads/CF48MDA05FTN/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>Because the panel gaps on this rock were enormous. I mean look at how unimpressed poor Liam is there. He's gotta fill all of those. The problem is almost all other solutions to this problem are optimized for ease of flat pattern cutting and bending or optimized of ease of drawing, but I need a solution that's optimized for weld filling and maintains tight gaps regardless of initial bend angle. We have another dozen of these that gotta get made and the development time of a script was easily less than the welding time of the whole job across 6 benches. So here's what sets Bip Joints apart from the rest in visual demonstration:</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/1LD8O9SLMA11\/bipjointcomparison.gif&quot;,&quot;name&quot;:&quot;BipJointComparison.gif&quot;,&quot;type&quot;:&quot;image\/gif&quot;,&quot;size&quot;:57548901,&quot;width&quot;:2872,&quot;height&quot;:1156,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F1LD8O9SLMA11%2Fbipjointcomparison.gif&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54189,&quot;dateInserted&quot;:&quot;2026-02-17T04:05:05+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif" alt="BipJointComparison.gif" height="1156" width="2872" data-display-size="large" data-float="none" data-type="image/gif" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif 2000w, https://us.v-cdn.net/5022071/uploads/1LD8O9SLMA11/bipjointcomparison.gif" sizes="100vw" /></a>
    </span>
</span>
<p>See how much tighter those gaps are between the panels? You'll save a fortune in filler metal using this script.</p><p><code spellcheck="false" tabindex="0">No... Why BIP Joints?</code></p><p>Oh. It's half bend half rip. It's a Bip. Look I said I wasn't the first to think of perforating metal, but as far as I can tell from my research I might be the first to alternate bend and rip geometry with their proper calculations in this manner and leverage the advantages of both so on the narrow chance I am actually the first to do this I call naming rights over the joint style.</p>]]>
        </description>
    </item>
    <item>
        <title>Part Numbers but make them words</title>
        <link>https://forum.onshape.com/discussion/30199/part-numbers-but-make-them-words</link>
        <pubDate>Wed, 18 Feb 2026 14:28:34 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Caden_Armstrong</dc:creator>
        <guid isPermaLink="false">30199@/discussions</guid>
        <description><![CDATA[<p>I recently <a href="https://www.smartbenchsoftware.com/post/smart-part-numbers-are-a-trap" rel="nofollow noopener ugc">wrote a blog article</a> about "Smart" Part numbers and how they tend to create more problems than they solve.</p><p>At the end of the article I included some other "fun" options for part numbers.<br />
One of the ideas was inspired by <a href="https://what3words.com/" rel="nofollow noopener ugc">What3Words </a>- what if the part number was a combination of 3 random words?<br />
Some commentors were curious what it would look like in practice…So I threw together a quick demo with FeatureScript.</p><p>Check it out here:<br /><a href="https://cad.onshape.com/documents/a0e627b210f40b3429e97f9f/w/8396d6be1955ad08f9567a16/e/043f204d8ca76147c63db56e" rel="noopener noreferrer ugc nofollow">https://cad.onshape.com/documents/a0e627b210f40b3429e97f9f/w/8396d6be1955ad08f9567a16/e/043f204d8ca76147c63db56e</a><br /><br />
The result? I guess its slightly easier to read than sequential numbers - there might be a context this is helpful. But I don't think I've reinvented the wheel.<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/01O1G6WL94VR\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:66161,&quot;width&quot;:674,&quot;height&quot;:778,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F01O1G6WL94VR%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54226,&quot;dateInserted&quot;:&quot;2026-02-18T14:26:28+00:00&quot;,&quot;insertUserID&quot;:75328,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;75328&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/01O1G6WL94VR/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/01O1G6WL94VR/image.png" alt="image.png" height="778" width="674" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/01O1G6WL94VR/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/01O1G6WL94VR/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/01O1G6WL94VR/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/01O1G6WL94VR/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/01O1G6WL94VR/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/01O1G6WL94VR/image.png 2000w, https://us.v-cdn.net/5022071/uploads/01O1G6WL94VR/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>Custom Feature: Query Variable+</title>
        <link>https://forum.onshape.com/discussion/29012/custom-feature-query-variable</link>
        <pubDate>Fri, 10 Oct 2025 18:14:50 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Derek_Van_Allen_BD</dc:creator>
        <guid isPermaLink="false">29012@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/128231ad02069b995b5dfc8d/w/40c217484879fb976782600a/e/c5254f4fcd1b28319819ce30" rel="nofollow noopener ugc"><strong>-Link to feature up front-</strong></a><br />
Query Variable has been a game changer for more programmatic workflows that save me from needing to develop custom scripts when I can instead pass other existing features through a QV and get results that way. That being said, there are some more powerful querying techniques which haven't yet been added to the default Query Variable implementation that I'm taking some time to write into an extended toolset. For example: just about everything in<a href="https://forum.onshape.com/discussion/14777/query-explorer-feature" rel="nofollow noopener ugc"> the old Query Explorer feature </a>could be used as a QV to enable more parametric workflows involving spatial, geometric, or directional filtering of your queries. My long term goal is to implement all of these Query Explorer features into the new Query Variable feature but I'm starting out small with a few easier lift features and will add more over time.<br /><br />
The first two features in my Query Variable+ implementation are the following:<br /><a href="https://cad.onshape.com/documents/128231ad02069b995b5dfc8d/w/40c217484879fb976782600a/e/4702022d8b6f26ca6f1d2558" rel="nofollow noopener ugc"><strong>Tangent(ish) Faces</strong></a></p><p>This one is simple, the qTangentConnectedFaces() function in the standard library already has an overload which allows you to specify an angle tolerance for some flexibility in the definition of the word "tangent" so I just replaced the version in Query Variable with this angular tolerance version. This lets me flood select face groups from cursed not-mesh import geometry and use the selections to create patch faces and create new clean parametric surfaces without having a feature tree to work with.<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/GG3YWCEBPSIG\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:730019,&quot;width&quot;:1731,&quot;height&quot;:1234,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FGG3YWCEBPSIG%2Fimage.png&quot;,&quot;mediaID&quot;:51443,&quot;dateInserted&quot;:&quot;2025-10-10T16:00:00+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/GG3YWCEBPSIG/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/GG3YWCEBPSIG/image.png" alt="image.png" height="1234" width="1731" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/GG3YWCEBPSIG/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/GG3YWCEBPSIG/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/GG3YWCEBPSIG/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/GG3YWCEBPSIG/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/GG3YWCEBPSIG/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/GG3YWCEBPSIG/image.png 2000w, https://us.v-cdn.net/5022071/uploads/GG3YWCEBPSIG/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>This is not a mesh.</p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/1TF5V4GAZ9RJ\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:236159,&quot;width&quot;:1796,&quot;height&quot;:1227,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2F1TF5V4GAZ9RJ%2Fimage.png&quot;,&quot;mediaID&quot;:51444,&quot;dateInserted&quot;:&quot;2025-10-10T16:01:31+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/1TF5V4GAZ9RJ/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/1TF5V4GAZ9RJ/image.png" alt="image.png" height="1227" width="1796" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/1TF5V4GAZ9RJ/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/1TF5V4GAZ9RJ/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/1TF5V4GAZ9RJ/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/1TF5V4GAZ9RJ/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/1TF5V4GAZ9RJ/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/1TF5V4GAZ9RJ/image.png 2000w, https://us.v-cdn.net/5022071/uploads/1TF5V4GAZ9RJ/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>But with a little bit of curve approximation and resurfacing later it can become usable geometry again. Selecting groups of nearly tangent faces made this much easier to execute.<br /><br /><a href="https://cad.onshape.com/documents/128231ad02069b995b5dfc8d/w/40c217484879fb976782600a/e/9834053f593e30426e79ab58" rel="nofollow noopener ugc"><strong>Matching Bodies</strong></a><br />
Query Variable comes with the ability to select matching edges or matching faces, why not matching bodies? Well the qMatching feature doesn't allow this selection type so that's why it's not allowed here, but there's a similar function called clusterBodies that does something close to this for cut list purposes. I leveraged this into a qMatchingBodies function that allows you to select a part and the function will return all parts in the studio that clusterBodies identifies as a geometric match for the input. (With some tolerance)<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/VQYN8WYUMSHY\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:104758,&quot;width&quot;:1109,&quot;height&quot;:908,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FVQYN8WYUMSHY%2Fimage.png&quot;,&quot;mediaID&quot;:51450,&quot;dateInserted&quot;:&quot;2025-10-10T17:54:11+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/VQYN8WYUMSHY/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/VQYN8WYUMSHY/image.png" alt="image.png" height="908" width="1109" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/VQYN8WYUMSHY/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/VQYN8WYUMSHY/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/VQYN8WYUMSHY/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/VQYN8WYUMSHY/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/VQYN8WYUMSHY/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/VQYN8WYUMSHY/image.png 2000w, https://us.v-cdn.net/5022071/uploads/VQYN8WYUMSHY/image.png" sizes="100vw" /></a>
    </span>
</span>
<p>Useful for workflows where you're working with repetitive geometry that's not necessarily the result of a pattern, or if you've willfully ignored the "best practices" instructions of assembly modeling workflows and need to check that your parts actually are still copies of each other at the end of the tree.<br /><br /><strong>Other features I'd like to implement into the list from Query Explorer:</strong><br />
- Geometry filters for face types<br />
- Distance filters<br />
- Direction filters<br />
- Attribute filters for sheet metal and frames<br />
- Cap entity filters<br />
- …And more things I'm sure will be useful to someone at some point that I have yet to discover</p>]]>
        </description>
    </item>
    <item>
        <title>Temporary Items During Edit?</title>
        <link>https://forum.onshape.com/discussion/30192/temporary-items-during-edit</link>
        <pubDate>Tue, 17 Feb 2026 15:52:39 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>S1mon</dc:creator>
        <guid isPermaLink="false">30192@/discussions</guid>
        <description><![CDATA[<p>How do first party features do things like "Show isocurves"? Is there a standard way to draw stuff without debug() or manipulators that disappears when not editing? </p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/PGKNGYW2E1HT\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:283410,&quot;width&quot;:1604,&quot;height&quot;:1012,&quot;displaySize&quot;:&quot;medium&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FPGKNGYW2E1HT%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:54196,&quot;dateInserted&quot;:&quot;2026-02-17T15:51:07+00:00&quot;,&quot;insertUserID&quot;:30526,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;30526&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/PGKNGYW2E1HT/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/PGKNGYW2E1HT/image.png" alt="image.png" height="1012" width="1604" data-display-size="medium" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/PGKNGYW2E1HT/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/PGKNGYW2E1HT/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/PGKNGYW2E1HT/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/PGKNGYW2E1HT/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/PGKNGYW2E1HT/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/PGKNGYW2E1HT/image.png 2000w, https://us.v-cdn.net/5022071/uploads/PGKNGYW2E1HT/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>Applying bend reliefs to vertexes between rips and bends?</title>
        <link>https://forum.onshape.com/discussion/30035/applying-bend-reliefs-to-vertexes-between-rips-and-bends</link>
        <pubDate>Wed, 04 Feb 2026 17:30:00 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>Derek_Van_Allen_BD</dc:creator>
        <guid isPermaLink="false">30035@/discussions</guid>
        <description><![CDATA[<p><a href="https://cad.onshape.com/documents/da65ebc2d4f9783c095b771c/w/563241ef63dd75752cd1460d/e/aefe8eaa7eee5344ae8482ed" rel="nofollow noopener ugc">Working on yet another sheet metal script</a> and I'm really close to completion on a build that's ready for deployment but I'm having issues getting bend relief geometry to generate on the ends of my bend segments of sheet metal parts. I suspect my issue is that I was trying to apply bend relief attributes to corners that are shared by rip geometry which is not a thing that happens in any other sheet metal feature as far as I can see. Is it even possible to apply bend relief geometry to vertices that correspond to both rips and bends or do I have to construct and subtract my relief cuts manually with some good old fashioned thicken &gt; thicken &gt; thicken &gt; fillet &gt; boolean chain like I did in my sample studio here?<br /></p><span data-embedjson="{&quot;url&quot;:&quot;https:\/\/us.v-cdn.net\/5022071\/uploads\/HBCRUX64F8Z9\/image.png&quot;,&quot;name&quot;:&quot;image.png&quot;,&quot;type&quot;:&quot;image\/png&quot;,&quot;size&quot;:240822,&quot;width&quot;:1910,&quot;height&quot;:908,&quot;displaySize&quot;:&quot;large&quot;,&quot;float&quot;:&quot;none&quot;,&quot;downloadUrl&quot;:&quot;https:\/\/forum.onshape.com\/api\/v2\/media\/download-by-url?url=https%3A%2F%2Fus.v-cdn.net%2F5022071%2Fuploads%2FHBCRUX64F8Z9%2Fimage.png&quot;,&quot;active&quot;:true,&quot;mediaID&quot;:53880,&quot;dateInserted&quot;:&quot;2026-02-04T17:28:00+00:00&quot;,&quot;insertUserID&quot;:79355,&quot;foreignType&quot;:&quot;embed&quot;,&quot;foreignID&quot;:&quot;79355&quot;,&quot;embedType&quot;:&quot;image&quot;,&quot;embedStyle&quot;:&quot;rich_embed_card&quot;}">
    <span>
        <a href="https://us.v-cdn.net/5022071/uploads/HBCRUX64F8Z9/image.png" rel="nofollow noopener ugc" target="_blank">
            <img src="https://us.v-cdn.net/5022071/uploads/HBCRUX64F8Z9/image.png" alt="image.png" height="908" width="1910" data-display-size="large" data-float="none" data-type="image/png" data-embed-type="image" srcset="https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=300, width=300/5022071/uploads/HBCRUX64F8Z9/image.png 300w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=600, width=600/5022071/uploads/HBCRUX64F8Z9/image.png 600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=800, width=800/5022071/uploads/HBCRUX64F8Z9/image.png 800w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1200, width=1200/5022071/uploads/HBCRUX64F8Z9/image.png 1200w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=1600, width=1600/5022071/uploads/HBCRUX64F8Z9/image.png 1600w, https://us.v-cdn.net/cdn-cgi/image/quality=80, format=auto, fit=scale-down, height=2000, width=2000/5022071/uploads/HBCRUX64F8Z9/image.png 2000w, https://us.v-cdn.net/5022071/uploads/HBCRUX64F8Z9/image.png" sizes="100vw" /></a>
    </span>
</span>
]]>
        </description>
    </item>
    <item>
        <title>Extrude up to body, up to face, booleans, performance</title>
        <link>https://forum.onshape.com/discussion/30097/extrude-up-to-body-up-to-face-booleans-performance</link>
        <pubDate>Mon, 09 Feb 2026 18:20:01 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>S1mon</dc:creator>
        <guid isPermaLink="false">30097@/discussions</guid>
        <description><![CDATA[<p>With Parasolid and FeatureScript performance in mind, I'm trying to figure out the best approach to creating a lot of features which a normal user would use "up to next"/add.</p><p>As a regular CAD user, with things like bosses and ribs on injection molded parts, whenever I've been working complex models for a while, each extrude "up to body" seems to make the model slower and slower. My theory is that the trim edges for the complex surface becomes that much more complicated over time, and whatever searching over the topology happens internally goes up exponentially with the number of intersections.<br /><br />
In FeatureScript, in the interest of finding the correct targets and simplifying the end face for extrude up to, I've been trying to use a lot of raycasts, and sometimes fitting a plane to make a flat analytic thing to extrude to. In some cases extruding just a little beyond that plane, so there's definitely an overlap.</p><p>Is this a waste? Should I just always be using "up to next"? As an end user, I've found there are times when extruding just past the target and booleaning that can perform much better than things that are theoretically touching.<br /><br />
What's the best way to analyze this? I know there are timer calls I can do. What's the right way to profile FS code?</p>]]>
        </description>
    </item>
    <item>
        <title>ChatGPT Atlas for FeatureScript vibe coding</title>
        <link>https://forum.onshape.com/discussion/29119/chatgpt-atlas-for-featurescript-vibe-coding</link>
        <pubDate>Tue, 21 Oct 2025 21:39:57 +0000</pubDate>
        <category>FeatureScript</category>
        <dc:creator>S1mon</dc:creator>
        <guid isPermaLink="false">29119@/discussions</guid>
        <description><![CDATA[<p>OpenAI has introduced ChatGPT Atlas, which is their own web browser with built in ChatGPT agent functionality. So far this is MacOS only, but Windows is in development.<br />
https://openai.com/index/introducing-chatgpt-atlas/<br /><br />
What this means potentially is that you can use ChatGPT to vibe code FeatureScript. So far I'm not getting any particularly exciting results, but I'm not giving it the easiest problem. It does have the ability to edit the code within the FeatureScript tab of an Onshape document. It will hit the Commit button for you if you want. Again, I'm just starting, but it does seem like we're heading in the right direction.</p>]]>
        </description>
    </item>
   </channel>
</rss>
