How to model properly with clipping planes and point clouds?

Hello,

I have a problem while working with point clouds and clipping planes. There are three things that combined make me think that Rhino is useless for CAD modelling from the point cloud.

Problem 1: when elements are cut by clipping planes, I can not select them nor snap to them.

Problem 2: When I draw an element in one of the ortho views, it is created on the origin plane. When clipping planes are active - the object disappears. Then I have to find the object in one of the other views and drag it to the correct position. Is it possible to simplify this workflow? Maybe something with construction planes? Or maybe something like mentioned in this topic:

Problem 3: There is no way to align objects with each other. This is big trouble for me because if elements are connected in reality, they must be modelled in the same way. I asked a similar question before in this topic:

But with hundreds or thousands of elements in the project orienting the objects may take too much time. I really like the way it is solved in Revit: start command–>select one plane–>select second plane. Program do the rest.

Ideally, Rhino would snap one object to the other but I believe it is something hard to code and even harder to make it snap to the right elements and omit the wrong ones.

In my other topic with a similar request:

I was told to move and rotate the object. But, once again, with hundreds of elements, it will take too much time + problem 1 so I can not move and rotate the object precisely with clipping planes.

For the last three months, I have been evaluating Rhino and I know I barely scratched the surface. I hope that these problems can be solved. Maybe old habits from Revit are blinding me but these problems turn modelling into fighting with the program and this is not acceptable. If there is no way to work like I am used to - I am willing to learn new methods. But for now, I see obstacles that increase modelling time greatly. And the reason I am evaluating Rhino is to model efficiently.

Hi -

We don’t necessarily disagree. The following post is still very much valid:

In the meanwhile, the Cockroach | Food4Rhino plug-in was released that could help generating a mesh from the point cloud.

There are Rhino users that regularly model from point clouds - an example:

For less organic shapes, you’d probably want to create sections from the mesh and planes and use these sections to build new surfaces.
-wim

Hello,

Thank you for your answer. Probably I should precise what I mean by “modelling from point cloud”. What I want to do, is to use the point cloud as reference, not an “input data”. I do not want to TURN point cloud into mesh and this mesh into Rhino element. Like architects draw buildings using floor plans and section view images put into background - I use point cloud. Take a look at this image:

I did this in Rhino+Visual Arq. None of these elements were created from converted point cloud. And all of them were modelled with point cloud as a reference. The problem is that I struggled a lot with this small building because of the problems I mentioned in my first post.

I think that problems I described are an issue even to people who do not work with point clouds. But they can turn off clipping planes and use perspective view. I can not.

Hi -

Insofar that you cannot snap to a clipping plane intersection, yes, that is correct. So you need to create sections that you can work with. And to be able to do that with a point cloud, you need to convert it to a mesh.
-wim

The answer here is quite easy and complex at the same time.
What you need is to align your clippingplane correctly and then set a construction plane to that clippingplane. Rhino does not have the ability to do that automatically (as far as I know) so you need to do three steps.

  • Set clippingplane (I have a script that sets it from two points in top view for my need, but you can use the vertical function)
  • Set View to clippingplane
  • Set Cplane to view

And then you can draw as you like.

Often it is nice to set an extra clippingplane facing the one you want to draw on so you cull the background info. This could be automated in a script too.

I’ll see if I can cook one up for you.

1 Like

Try this if you like:
It will work with top view or perspecitve view.
After you will have to reset the view.
(Or remove the set view to c-plane part if you want to use perspective view and continue to draw there.)

Remember to have PROJECT turned on so you don’t snap out of the Cplane.

And please give feedback so I or someone else can fine tune the script to your need.

### HOLO's automatic Clippingplane tool
### SetViewToClippingPlaneFromTwoPoints.py
### 2021-03-21

import rhinoscriptsyntax as rs
import scriptcontext as sc

pt1=rs.GetPoint("First Point")
if pt1:
    pt2=rs.GetPoint("Second Point", base_point=pt1)
    if pt2:
        if not pt1==pt2:
            pt1.Z=0
            pt2.Z=0
            
            ### MAKE CLIPPINGPLANE FROM TWO POINTS
            ### ---------------------------
            view = rs.CurrentView()
            pt2.Z=pt1.Z
            pt3=rs.coerce3dpoint((pt1[0],pt1[1],pt1[2]+10))
            plane = rs.CreatePlane(pt2, (pt1-pt2), (0,0,1))
            ClipPlane=rs.AddClippingPlane(plane, u_magnitude=10, v_magnitude=10, views=view )
            rs.MoveObject(ClipPlane, (0,0,-5))
            
            #rs.SelectObject(ClippingPlane)
            
            ### SET CPLANE TO CLIPPINGPLANE
            ### ---------------------------
            rs.Command ("-_CPlane _3Point W"+str(pt1)+" W"+str(pt2)+" W"+str(pt3)+" Enter" )
            
            ### SET VIEW TO CLIPPINGPLANE
            ### ---------------------------
            rs.Command("_Plan Enter")
        else:
            print "Error: The two points need to be further apart"

You can pop the script in a button if you add this to it:

_-RunPythonScript (
put script here
)

As seen here:

Thank you @wim for answering but I am afraid I do not understand. I thought that to achieve my goal of snapping to “cut” element, Rhino needs to find an intersection between the clipping plane and already created element such as a wall.

Thank you very much @Holo for your script. I will test it as soon as I can and come back with the results!

@Holo
I tried your script but I think I did something wrong. I noticed that it cuts the top view to a thin stripe but the new element is created at the original plane.

Hi -

Like I said, you cannot snap to that intersection. What you see on screen is just visual trickery. You need actual geometry to be able to snap to it and that’s why you need to create a plane that is in the same place as the clipping plane and use that to create new geometry.

That said, I strongly second your wish for being able to snap to the clipping plane intersection. I’ve added your vote to the open feature request - RH-39927.
-wim

1 Like

Thank you @wim. Now I understand what you meant.

Its easy really :slight_smile:
I model from pointclouds all day, every day.

  1. Create a clipping plane

  2. Copy and paste the clipping plane into its original position.

  3. Move the second clipping plane to your desired slice “Thickness” and flip it.
    (This should create a thin slice through your cloud etc)

  4. Group the clipping planes so they move as one.

  5. Create a “Mobile Construction Plane”

  6. Attach it to one of the Clipping planes

Now…when you move your clipping planes, the Mobile Construction Plane will follow.
Whatever you draw will be on that mobile construction plane. You can also obviously rotate the construction plane in 3D etc.

You can also Snap the clipping planes to points (in a pointcloud), or to reference objects (lines etc)
using a second viewport that isn’t clipped by the clipping planes.

If you want to be really exact, create a rectangle exactly between the two clipping planes and attach the Mobile Construction plane to that, this is your exact reference plane.

Regards,
Mike
www.mikeannear.com

Thank you @Mike_A
I followed your advice and this is a solution to problem #2.