# Extract / Create curve that follows surface quad?

**URL:** <https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182>\
**Category:** Rhino for Windows\
**Created:** [April 15, 2020, 9:12pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182 "2020-04-15T21:12:02Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dave3](https://avatars.discourse-cdn.com/v4/letter/d/f1d935/32.png) [@Dave3](https://discourse.mcneel.com/u/Dave3)\
**Post date:** [April 15, 2020, 9:12pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/1 "2020-04-15T21:12:02Z")

</div>

Is there a way to get a curve that follows the quad of a surface? i.e. the outer most point of the surface in that axis.

---

<div class="post-metadata">

**Author:** ![DiegoKrause](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/diegokrause/32/257432_2.png) [@DiegoKrause](https://discourse.mcneel.com/u/DiegoKrause)\
**Post date:** [April 15, 2020, 9:12pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/2 "2020-04-15T21:12:41Z")

</div>

what?

---

<div class="post-metadata">

**Author:** ![Dave3](https://avatars.discourse-cdn.com/v4/letter/d/f1d935/32.png) [@Dave3](https://discourse.mcneel.com/u/Dave3)\
**Post date:** [April 15, 2020, 10:25pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/3 "2020-04-15T22:25:30Z")

</div>

As an example, I want to split this surface along it’s apex, lengthwise. Basically creating a seam along the highest edge of the surface in the Y-axis.

 ![Annotation 2020-04-15 151903](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/b/7/b75baad6b295ae63510c804205ffb8ee7bde2536.jpeg)

It would look something like this:

 ![Annotation 2020-04-15 152321](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/d/7/d731279903112a9a03d8ddd9ab0fa893ba1ae0ee.jpeg)

I used Extractisocurve to do that, but the isocurve doesn’t follow the apex.

---

<div class="post-metadata">

**Author:** ![pascal](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pascal/32/479395_2.png) [@pascal](https://discourse.mcneel.com/u/pascal)\
**Post date:** [April 15, 2020, 10:31pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/4 "2020-04-15T22:31:11Z")

</div>

Can you post that surface? If it is not an isocurve, it may be hard to find – probably a matter of sampling a bunch of locations and approximating.

-Pascal

---

<div class="post-metadata">

**Author:** ![DiegoKrause](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/diegokrause/32/257432_2.png) [@DiegoKrause](https://discourse.mcneel.com/u/DiegoKrause)\
**Post date:** [April 15, 2020, 10:37pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/5 "2020-04-15T22:37:45Z")

</div>

I think the Silhouette command could help

---

<div class="post-metadata">

**Author:** ![pascal](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pascal/32/479395_2.png) [@pascal](https://discourse.mcneel.com/u/pascal)\
**Post date:** [April 15, 2020, 10:39pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/6 "2020-04-15T22:39:39Z")

</div>

Hm - I don’t see that working here, but maybe - I think that curve is not one that you’d see as a silhouette from any one view- the ‘quad’ here changes all along the surface, it is not relative to anything external - if I am reading things right.

-Pascal

---

<div class="post-metadata">

**Author:** ![Dave3](https://avatars.discourse-cdn.com/v4/letter/d/f1d935/32.png) [@Dave3](https://discourse.mcneel.com/u/Dave3)\
**Post date:** [April 15, 2020, 10:52pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/7 "2020-04-15T22:52:52Z")

</div>

Yes, that’s correct Pascal.

My not-totally-accurate work around is to extract a whole bunch of isocurves in the short direction all along the surface. Then us the IntrpCrv tool to draw a curve by snapping to the Quad of each extracted isocurve. I was just hoping there was an easier / more accurate way.

Like this:

 ![Annotation 2020-04-15 155447](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/b/7/b7448faf66eedd2357b802270782d1fdb5422751.jpeg)

---

<div class="post-metadata">

**Author:** ![pascal](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pascal/32/479395_2.png) [@pascal](https://discourse.mcneel.com/u/pascal)\
**Post date:** [April 15, 2020, 10:57pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/8 "2020-04-15T22:57:50Z")

</div>

Hi Dave - Quad is relative to the current CPlane - if that is consistent, then @DiegoKrause 's suggestion of using `Silhouette` may just work. Your original image did not look to me like it was going to be that consistent but if it is, you’re all set, I think with `Silhouette`.

-Pascal

---

<div class="post-metadata">

**Author:** ![DiegoKrause](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/diegokrause/32/257432_2.png) [@DiegoKrause](https://discourse.mcneel.com/u/DiegoKrause)\
**Post date:** [April 15, 2020, 11:08pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/9 "2020-04-15T23:08:33Z")

</div>

I read somewhere that in V7 you can use draftangle at desired angles and make curves on it I’m right @pascal? maybe that could help to but again, it relies on the cplane

---

<div class="post-metadata">

**Author:** ![pascal](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pascal/32/479395_2.png) [@pascal](https://discourse.mcneel.com/u/pascal)\
**Post date:** [April 15, 2020, 11:13pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/10 "2020-04-15T23:13:48Z")

</div>

Hi Diego - yes, there is a tool for draft angle curves in V7. But as you say, it is based on a single direction.

-Pascal

---

<div class="post-metadata">

**Author:** ![Dave3](https://avatars.discourse-cdn.com/v4/letter/d/f1d935/32.png) [@Dave3](https://discourse.mcneel.com/u/Dave3)\
**Post date:** [April 15, 2020, 11:16pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/11 "2020-04-15T23:16:45Z")

</div>

Sorry to confuse; the last image was a different surface. I was just using it as an example. Silhouette wouldn’t work in this case because parts of the surface are hidden by others in planar view.

Using what @DiegoKrause is talking about sounds like it could work; using draft angle to extract curves from a surface. Does that exist in Rhino 6?

---

<div class="post-metadata">

**Author:** ![DiegoKrause](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/diegokrause/32/257432_2.png) [@DiegoKrause](https://discourse.mcneel.com/u/DiegoKrause)\
**Post date:** [April 15, 2020, 11:25pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/12 "2020-04-15T23:25:50Z")

</div>

maybe you can use a custom cplane like this and test with silhouette

 ![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/a/3/a3859c4d8dd73ea416830118222bb8ba7e2900d9.png)

---

<div class="post-metadata">

**Author:** ![pascal](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/pascal/32/479395_2.png) [@pascal](https://discourse.mcneel.com/u/pascal)\
**Post date:** [April 15, 2020, 11:35pm UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/13 "2020-04-15T23:35:01Z")

</div>

To find that plane - `ExtractRenderMesh` or `Mesh` the object, PlaneThroughPt on the mesh, rotate the plane 90 degrees on the ‘obvious’ axis, and CPlane\> Object that plane. Delete the mesh and plane. Silhouette from the `Plan` view.

@Dave3 - here’s a python that might be useful - it is worth a test probably but it needs tuning up to become more friendly, if it basically does the right thing.

- the surface U direction is assumed, for the moment to be the short direction, not the direction of the eventual curve. Use the `Dir` command to verify and swap if necessary.

- There cannot be any holes in the surface

- it must be U-shaped like your example - completely flat bits or closed tubes will mess it up.

All that said, I think it ought to work on your example.

To use the Python script use `RunPythonScript`, or a macro:

`_-RunPythonScript "Full path to py file inside double-quotes"`

[Highline.py](https://discourse.mcneel.com/uploads/short-url/civ2Ma0xA86L2uBtwCAVZtaG6Vc.py) (2.0 KB)

-Pascal

---

<div class="post-metadata">

**Author:** ![vikthor](https://sea3.discourse-cdn.com/mcneel/user_avatar/discourse.mcneel.com/vikthor/32/436812_2.png) [@vikthor](https://discourse.mcneel.com/u/vikthor)\
**Post date:** [April 16, 2020, 12:48am UTC](https://discourse.mcneel.com/t/extract-create-curve-that-follows-surface-quad/100182/14 "2020-04-16T00:48:14Z")

</div>

> [@Dave3](#):
>
> Basically creating a seam along the highest edge of the surface in the Y-axis.

Hi,  
touch both edges use tween command and Project  
so you get the curve on the y-axis from the front view

![image](https://global.discourse-cdn.com/mcneel/uploads/default/original/3X/a/c/ac5e43f872fc143e4b0ba8c22120ace65aa02055.png)
