how to extract points from point cloud?

Is there a way to extract a set of points from a point cloud?
For example a Lisp function that would return a list containing all points from a selected (cropped) part of a point cloud.

Comments

  • Michael Mayer
    edited April 2023
    https://help.bricsys.com/document/_commandreference--CMD_pointcloudcropsolid/V23/EN_US?id=165079094390

    Does this help do what you need (?)
    I thought there was a way to clip a Point Cloud and delete the extend.
    By exporting it from there or something.
    But I do not really find something related in Bricscad's help.
    (AFAIK there was a Bricscad Video or a thread answered by a Bricscad
    person - but maybe it was just in Vectorworks ....)

    I would do this on a copy of the Point Cloud Data file.
  • You can use POINTCLOUDEXPORT to export the visible parts of your point cloud.
  • mikajahkola
    edited April 2023
    I have used the Lisp function getpoint() to return the nearest point cloud point at the cursor.
    However, I would like to get several points at once, say, all points within a small circle centered at the cursor.
    I would use the result for fitting geometry to the point cloud.

    I have written a Lisp function that uses getpoint() to pick the elevation of a floor and writes an annotation next to the cursor.
    Every point cloud has noise and in order to get better results I wrote the function so that I can pick several points with the cursor and the function averages the result. However, I would rather avoid picking 10 points myself and let the program do the work.

    POINTCLOUDCROPSOLID could be used to crop the area near the cursor but I am missing a function that would return all cropped points.
    If I try to apply entget() to the cropsolid I only get data about the cropsolid itself, not the points it contains.

    Exporting the points with POINTCLOUDEXPORT does not help because it creates an external file instead of returning the points via a function call.
  • It should be doable but need what is a point cloud point, compare say CIV3D point it is a "COGO point"

    Use this and pick a cloud point. (entget (car (entsel "pick point ")))

    What is dxf code (0 . "??????")
  • James Maeding
    edited June 2023
    This ability to select pts within a window is something both acad and bcad do not offer. It also happens to be super useful for many things, such as a tool to "cut" a section direct from pt cloud, using some method to fit a line through the resulting points. So I might get all pts 1 foot to left and right of a pline, then project those to the pline horizontally and use the z's to fit that profile line. It may be thousands of pts so fit is needed. I believe such a function (Getptcloudpts-in-window windowpointlist) would be somewhat readily possible for the development crew as the pt cloud is already indexed for other things that need the pts within some clipping shape. I don't want entities from the function, just xyz's of pts within window. BTW, the window pts would be in current "view" plane. So I might 3d orbit a pt cloud and select some polygonal window. I want to get what I see inside that window as a human looking at the screen. thx
  • If you can draw a line then offset L & R then select all POINTS within that boundary, then make a TIN, then do a long section is possible. Not sure what a ssget "WP" will return how many points. A field survey of points may be in the 10,000 point range and make a TIN is not a problem. There is a free TIN and do long section out there.

    If you can do the get points can do more.
  • Can you post a sample dwg ?