Jump to content
  • 0
JeremyLondonRMLA

Point size control for Point Clouds

Question

Does anyone know if there's a way in Vectorworks to adjust the point display size on imported point clouds, such as LAS files.

 

At present I find that point clouds display well at a distance, see attached image 1, but when I zoom in to inspect closely and snap a 3D locus/stake object to a point to confirm its coordinates, the point cloud becomes very difficult to interpret due to the sparsity of points against the surrounding background, see attached image 2.

 

I've tried adjusting the pen thickness of the point cloud object in the attributes pallette / class settings, and searched in Vectorworks Preferences for any relevant settings, but had no luck so far.

 

I've discovered a very useful open source program called CloudCompare for the inspection of point clouds. This program allows the user to adjust point display size which really helps with interpretation at close range, see attached images 3-5. Note the 'default point size' adjustment buttons in the top left. 

 

If similar control over point size display could be added to Vectorworks I believe it would greatly improve the point cloud workflow.

 

Lidar_Vectorworks.jpg

Lidar_Vectorworks_Zoom.jpg

Lidar_Cloud Compare.jpg

Lidar_Cloud Compare_Zoom.jpg

Lidar_Cloud Compare_Zoom_Increase Point Size.jpg

Edited by JeremyLondonRMLA
  • Like 1

Share this post


Link to post

21 answers to this question

Recommended Posts

  • 0

Hi Jeremy, did you resolve this? We are suffering from the same problem and are really stuck. We have one point cloud that come in very well, nice thick cloud that provides an easy profile to trace over, but the last three we have tried are next to useless, showing the same sparsity of points as your screen captures.

Andrew.

Share this post


Link to post
  • 0

Hi Andrew. No unfortunately not, I'm running Vectorworks 2019 SP3 and there still seems to be no control over the point display size. As a workaround, the CloudCompare software I mentioned in the above post allows you to select points and add their coordinates to a custom spreadsheet, which can then be exported as a .txt file and imported into Vectorworks using the Landmark > Survey Input > Import Survey File command. I hope this is helpful.

  • Like 2

Share this post


Link to post
  • 0

Thanks Jeremy. exporting would be good - but the clouds we are using have many millions of points, I don't think the spreadsheet would cope (and even if it did it would take for ever to create and import).

We have lodged the problem with Vectorworks support to see if they can come up with something. If they do I will post back here 🙂

Andrew.

Share this post


Link to post
  • 0

Hi Andrew. Nice work. Hopefully we see the point size adjustment functionality added to Vectorworks sometime in the near future. 

 

Regarding the workflow I described above, the point clouds I've used in the past also had millions of points. I use CloudCompare to identify only the subset of points that are important/relevant to my work, give them descriptive names, and export them to .txt file for import into Vectorworks as stake objects. (They can be displayed concurrently with the original point cloud for reference if required). If I find that I need the coordinates of additional points, I go back to CloudCompare and add to my existing list, or create a new one, and export again.

Share this post


Link to post
  • 0

This is better but slower than working with the point cloud.  Just need a way to make the points larger scale when zoomed in.  They are so small when close they are almost invisible.   The 3d loci are distracting because they have 3 lines for each loci. 

Share this post


Link to post
  • 0

3D Loci like the 2D ones are reference points and can not be resized and do not print. Not sure what you mean about 3 lines but that sounds like you need to update your GPU driver of try changing your Vectorworks Preferences>Display>Navigation Graphics>change to Good Performance and Compatibility. Either way the process is a step in order to create a Vectorworks intelligent Digital Terrain Model (Site Model) from a Point Cloud.

 

Cheers,

Peter

Share this post


Link to post
  • 0

Our workflow is now to make sure we import the point clouds in PTS format and use in Orthogonal projection, Layers set at "Show Others" to get all the colours in the point cloud. We're using VW 2020 SP2 at the moment. Most of our point cloud work is for measured building surveys for plans, sections and elevations, or parts of ships for 3D modelling, so our models are fairly small in dimensional size, rather than landscapes that are relatively larger, although we still max out on the number of points imported every time.

Share this post


Link to post
  • 0

I think the '3 lines' The Hamma is referring to are the 3 axes of the 3D locus itself (see image attached), rather than a display error.

 

There are workarounds for sure, but it would be an excellent feature if the displayed point size could be adjusted. At present it appears to be fixed at 1 pixel per point regardless of the zoom. If a free program like CouldCompare can implement point size adjustment, then I'd assume it's well within the capability of Vectorworks programmers to introduce something similar. If we get enough support for it on this thread perhaps it will make the shortlist for VW 2021! 

20200128_Vectorworks_3D Locus_3 Lines.jpg

Edited by JeremyLondonRMLA
  • Like 1

Share this post


Link to post
  • 0
11 hours ago, JeremyLondonRMLA said:

I think the '3 lines' The Hamma is referring to are the 3 axes of the 3D locus itself (see image attached), rather than a display error.

 

There are workarounds for sure, but it would be an excellent feature if the displayed point size could be adjusted. At present it appears to be fixed at 1 pixel per point regardless of the zoom. If a free program like CouldCompare can implement point size adjustment, then I'd assume it's well within the capability of Vectorworks programmers to introduce something similar. If we get enough support for it on this thread perhaps it will make the shortlist for VW 2021! 

20200128_Vectorworks_3D Locus_3 Lines.jpg

You are correct and well said!

Share this post


Link to post
  • 0

I'm sure someone could write a script to replace all 3D loci with Stake Objects. (@Pat Stanford ?) That way at least you'd have a hybrid object as the 3D can be an extrude. Or maybe a script so they could be replaced by a hybrid symbol?

 

Cheers,

Peter

Share this post


Link to post
  • 0

Nothing (yet) to make Stake Objects, but here is something similar things from the ancient past.

 

And one I don't think I ever posted before.

 

Procedure PrintableLoci;
{Inserts a symbol named PrintLocus at the locaiton of each loci on the active layer}

{© 2008, Coviana, Inc - Pat Stanford pat@coviana.com}
{Licensed unde the GNU Lesser General Public License}

Var	H1:Handle;
		X1,Y1:Real;
		N1,N2:Integer;

Begin
	H1:=FActLayer;
	While H1 <> nil do
		Begin
			If GetType(H1) = 17 then
				Begin
					GetLocPt(H1,X1,Y1);
					Symbol('PrintLocus',X1,Y1,0);
					H1:=NextObj(H1);
				End
			else
				Begin
					H1:=NextObj(H1);
				End;
		End;
End;

Run(PrintableLoci);

 

  • Like 1

Share this post


Link to post
  • 0

Thanks very much Pat but it only works with 2D loci not 3D...Do I change the 'Get Type'? 

I think being able to replace the 3D loci with a symbol as this script promises is the best option.

 

Cheers,

Peter

Share this post


Link to post
  • 0

@Peter Neufeld Almost that simple.  

 

Procedure StakesFrom3DLoci;
{Inserts a Stake Object at the X/Y/Z location of each 3D loci on the active layer}

{© 2020,2008, Coviana, Inc - Pat Stanford pat@coviana.com}
{Licensed unde the GNU Lesser General Public License}

Var		H1,H2:Handle;
		X1,Y1,Z1:Real;
		N1,N2:Integer;


Begin
	H1:=FActLayer;
	While H1 <> nil do
		Begin
			If GetType(H1) = 9 then
				Begin
					GetLocus3D(H1,X1,Y1,Z1);
					H2:=CreateCustomObject('Stake Object',X1,Y1,0);
					Move3DObj(H2,0,0,Z1);
					H1:=NextObj(H1);
				End
			else
				Begin
					H1:=NextObj(H1);
				End;
		End;
End;

Run(StakesFrom3DLoci);

 

Share this post


Link to post
  • 0

Dear Pat,

Thanks! That works a charm - inserting a Stake object for each 3D locus (contrary to the description line: {Inserts a symbol named PrintLocus at the locaiton of each loci on the active layer})

 

I hope this helps the others who started this thread.

 

Cheers,

Peter

Share this post


Link to post
  • 0

Thanks, I tried it but I get stake objects placed not a "PrintLocus" symbol.  Am I doing something wrong, do I need to the symbol prior to running the script?

Share this post


Link to post
  • 0

For the first version of the script, you need to have a symbol named Print Locus with the insertion point at the center of object. The one I used was just a couple of crossed lines, but it could be anything.  That one works on 2D locus points.

 

For the second version of the script it replaces 3D loci with a Stake Object at the x/y/z position of the 3D locus. I just forgot to edit the comments before posting. Edited now.

  • Like 1

Share this post


Link to post
  • 0

Dear Pat,

The first version doesn't work with 3D loci only 2D so that's no good as the Model>Point Clouds>Extract 3D loci from Point Cloud is the command that is getting us here. Any chance you could tweak as a user defined symbol would be the most useful fix.

Thanks,

Peter

Share this post


Link to post
  • 0

This one should work with 3D Loci and replace with a symbol.

 

Procedure StakesFrom3DLoci;
{Inserts a symbol at the X/Y/Z location of each 3D loci on the active layer}

{© 2020,2008, Coviana, Inc - Pat Stanford pat@coviana.com}
{Licensed unde the GNU Lesser General Public License}

Var		H1,H2:Handle;
		X1,Y1,Z1:Real;
		N1,N2:Integer;


Begin
	H1:=FActLayer;
	While H1 <> nil do
		Begin
			If GetType(H1) = 9 then
				Begin
					GetLocus3D(H1,X1,Y1,Z1);
					Symbol('Your Symbol Name Here',X1,Y1,0);
					H2:=LNewObj;
					Move3DObj(H2,0,0,Z1);
					H1:=NextObj(H1);
				End
			else
				Begin
					H1:=NextObj(H1);
				End;
		End;
End;

Run(StakesFrom3DLoci);

 

  • Like 1

Share this post


Link to post
  • 0

Dear Pat,

Thank you for doing this, it works really well.

In my example I have about 130,000 3D loci, extracted from a Point Cloud of a building, and it didn't take long for them to be replaced by my named symbol.

 

Cheers,

Peter

Screenshot 2020-02-02 at 7.05.43 pm.png

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


 

7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114

 

© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

×
×
  • Create New...