# How to get "Quad snap points" on a curve

**URL:** <https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819>\
**Category:** Rhino Developer\
**Created:** [August 23, 2013, 12:29pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819 "2013-08-23T12:29:50Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Katsu](https://avatars.discourse-cdn.com/v4/letter/k/a5b964/32.png) [@Katsu](https://discourse.mcneel.com/u/Katsu)\
**Post date:** [August 23, 2013, 12:29pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/1 "2013-08-23T12:29:50Z")

</div>

Hello,  
I’d like to know How to get “Quad snap points” on a curve by using Python.

Thanks.

---

<div class="post-metadata">

**Author:** ![stevebaer](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/stevebaer/32/473567_2.png) [@stevebaer](https://discourse.mcneel.com/u/stevebaer)\
**Post date:** [August 30, 2013, 7:34pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/2 "2013-08-30T19:34:40Z")

</div>

I’m not exactly sure how to do this in any of our SDKs. @dale do you know if this functionality is available?

---

<div class="post-metadata">

**Author:** ![dale](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/dale/32/685184_2.png) [@dale](https://discourse.mcneel.com/u/dale)\
**Post date:** [September 3, 2013, 4:28pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/3 "2013-09-03T16:28:13Z")

</div>

There is no function on RhinoCommon to return a curve’s quad snap points (which are view-dependent). We might be able to add something to Rhino 6. Why do you need this? What are you trying to do?

---

<div class="post-metadata">

**Author:** ![BimbaLaszlo](https://avatars.discourse-cdn.com/v4/letter/b/3e96dc/32.png) [@BimbaLaszlo](https://discourse.mcneel.com/u/BimbaLaszlo)\
**Post date:** [December 3, 2013, 11:12am UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/4 "2013-12-03T11:12:48Z")

</div>

Hello!

I have a similar problem:  
I’m working with an 5 axis CNC machine, but it has a limited rotating movement around the Z: 0-180 deg. My CAM software does not matters the limits, it does not spliting the calculated toolpaths to smaller segments, so i have to do the job on the model.

I figured out that i can split the surfaces on quads:  
Running Contour command on the surface in Z direction, then i drawing a curve on the Osnap Quads.

[split surface on quads](http://pasteboard.co/1Kl08SXr.png)

I like to automate this procedure, at least for extruding the quad points. Can i do this anyway?

Ps.: sorry for englisch.

---

<div class="post-metadata">

**Author:** ![Katsu](https://avatars.discourse-cdn.com/v4/letter/k/a5b964/32.png) [@Katsu](https://discourse.mcneel.com/u/Katsu)\
**Post date:** [December 7, 2013, 1:35am UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/5 "2013-12-07T01:35:32Z")

</div>

Hi all, Sorry for my late reply.

I want to get Highest points, Lowest points of curve and surface from a view according to work plane axis. I should give near point to get snap.  
Is that possible in new RhinoCommon?

Or, It will be Ok for me using bounding box and intersection functions that now exist.

I’m very grad for considering my questions.

---

<div class="post-metadata">

**Author:** ![diegodx](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/diegodx/32/483318_2.png) [@diegodx](https://discourse.mcneel.com/u/diegodx)\
**Post date:** [June 6, 2014, 2:58pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/6 "2014-06-06T14:58:51Z")

</div>

Hi,  
I ran into the same situation, where I needed to find all the Quads in a curve.  
Using Grasshopper, I could find all the “Extremes” in 3 planes. But there are still 2 “Quads” not found by Gh (the Q dots in the images attached).

I’m not sure what exactly a Quad is in Rhino, or even if I did something to find an actual “Quad”, I just know I need to find/setpts on them.

(Also, I don’t know if I should be posting this as a new question, as my issue its not Dev related, but I was starting a new thread when I saw this one…)

[Quad\_Crv.3dm](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/f/1/f1bf3abbb7725343a502c3bd4aa309a815e728eb.3dm) (31.6 KB)

![](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/f/5/f5962d7d9272a874deb08ccd1a111e9dd0b45df2.png)

---

<div class="post-metadata">

**Author:** ![Jonathan\_Hutchinson1](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/jonathan_hutchinson1/32/268934_2.png) [@Jonathan\_Hutchinson1](https://discourse.mcneel.com/u/Jonathan_Hutchinson1)\
**Post date:** [February 19, 2020, 11:56am UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/7 "2020-02-19T11:56:22Z")

</div>

Hi Dale,

Sorry to bump something very old. This would be helpful for me too.

Quite a simple use case of a closed curve, and then get the quad points (or simply extremities) from the aligned top view. Not sure if there’s anything now in the SDK that would make it possible to get the extremes?

[GetQuadPoints\_Maybe.3dm](https://discourse.mcneel.com/uploads/short-url/gjv9qKaBFrhpJF6bVbqp6res0xo.3dm) (33.5 KB)

Maybe just bounding box then intersect, and hope for only four results?

---

<div class="post-metadata">

**Author:** ![dale](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/dale/32/685184_2.png) [@dale](https://discourse.mcneel.com/u/dale)\
**Post date:** [February 19, 2020, 5:13pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/8 "2020-02-19T17:13:42Z")

</div>

Hi @Jonathan_Hutchinson1,

You might see if [Curve.ExtremeParameters](https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Curve_ExtremeParameters.htm) is of any use.

```auto
import Rhino
import scriptcontext as sc

def test_curve_extremes():
    filter = Rhino.DocObjects.ObjectType.Curve
    rc, objref = Rhino.Input.RhinoGet.GetOneObject("Select curve", False, filter)
    if not objref or rc != Rhino.Commands.Result.Success: return 

    crv = objref.Curve()
    if not crv: return
    
    for i in range(2):
        if i == 0:
            dir = Rhino.Geometry.Vector3d.XAxis
        else:
            dir = Rhino.Geometry.Vector3d.YAxis
        crv_t = crv.ExtremeParameters(dir)
        if crv_t:
            for t in crv_t:
                pt = crv.PointAt(t)
                sc.doc.Objects.AddPoint(pt)
    sc.doc.Views.Redraw();
    
test_curve_extremes()

```

– Dale

---

<div class="post-metadata">

**Author:** ![Juan\_Gallo](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/juan_gallo/32/542095_2.png) [@Juan\_Gallo](https://discourse.mcneel.com/u/Juan_Gallo)\
**Post date:** [October 21, 2022, 3:39pm UTC](https://discourse.mcneel.com/t/how-to-get-quad-snap-points-on-a-curve/1819/9 "2022-10-21T15:39:54Z")

</div>

what is quad point actually?
