[Plugin] Point Merger tools v1.2 UPDATED@ 23/06/09
-
I might not have the accuracy issue fixed, but I've updated the first post, now Merge Points to Lines is available, and Merge Points has been slightly updated.
-
i still have no clue as to what this script is supposed to do. thus the following.
i know this is probably asking too much of guys who make their creative work available for free to all of us. however, i think it is in their own interest that their creations be understood and put to use to the full.
thus i respectfully suggest that all scripts should be accompanied with some kind of demonstration about what they are supposed to do: a guide, a tutorial or a short video (perhaps the easiest to do).
-
OK, a video has been added for Merge Points.
-
BTM:
Wow! Congratulations. Excellent video.
A humble thank you.
mitcorbedit: this appears to be able to close those tiny triangles-- is that correct?
-
Seems another very cool plug!
-
@mitcorb said:
this appears to be able to close those tiny triangles-- is that correct?
Yes, it can, but it depends on where you click, and the range of the tool.
-
UPDATED:
The Merge Points to Lines tool now has a feature to allow you to pick between moving the points to the closest positions on selected lines, or moving the points to the closest endpoints of selected lines. -
@unknownuser said:
OK, a video has been added for Merge Points.
thanks a lot! this is what i had in mind.
-
What a time saver this could turn out to be.
This functionality should be a standard/built in tool of SketchUp pro.
Thank you.
-
Imagine you take a couple of neighbouring snapshots from GE and simply "stitch" them together with this tool in no time!
Thanks BTM!
-
No possible to make this with automatic process? (Merge points)
Exploring all points! -
@unknownuser said:
No possible to make this with automatic process? (Merge points)
Exploring all points!Actually, I was thinking about something like this initially, before making the scripts. It would go through the entire selection, find which points were close to each-other, then move them together.
I didn't try it though, because I would imagine that it would be extremely slow, having to find the distance between every single point that's part of the selection.
To put the amount of times it would have to find the distance between 2 points into perspective, (I think) the equation for possible lines between a number of points(a) is:
(a-1)Γ·2=b
ab = c = amount of equations necessary.β¦so if you have 60 vertices in the selection, it would need to find the distance between points 1770 times.
60 - 1 = 59
59 Γ· 2 = 29.5
29.5 x 60= 1770β¦So yes, it's possible, but maybe slow, unless used with a fairly low amount of vertices in the selection.
Nonetheless, I'll try it sometime soon, but first I'm going to start getting some visualizations working with the current scripts. Maybe I'll make it highlight affected points in yellow, and the point they'll move to in blue or something.
-
This script is really coming along nicely, good work!
As for stitching together terrains...it could work, but there is a good chance it will have overlap. That overlap wil still need to be cleaned by hand. I'd be interested in seeing a demo on that Gaieus if you get around to it.
Chris
-
@chris fullmer said:
This script is really coming along nicely, good work!
As for stitching together terrains...it could work, but there is a good chance it will have overlap. That overlap wil still need to be cleaned by hand. I'd be interested in seeing a demo on that Gaieus if you get around to it.
Chris
β¦I don't know exactly what GE terrains look like, but you could probably overlap them, and select all geometry of one of the terrains; then you could use Merge Points to Lines, probably using endpoints, with a small enough max radius. As for the messy parts, the Merge Points tool could probably help fix them up some.
I'm saying 'probably' a lot, because I've never done it, and, as I mentioned, I don't know what GE terrains' geometry look like.
-
Their geometry comes in very cleanly. But when you take lots of snapshots, the different terrains don't actually match up very well. So it is those interesections that most people want to clean up. This tool looks very promising for that!
Chris
-
β¦Anyways, If the above doesn't work, which I don't know when it comes to having more than 2 snapshots, I think I know a way to make a script that would work.
@unknownuser said:
Actually, I was thinking about something like this initially, before making the scripts. It would go through the entire selection, find which points were close to each-other, then move them together.
I didn't try it though, because I would imagine that it would be extremely slow, having to find the distance between every single point that's part of the selection.
If it turns out it runs faster than I'd expect, it would do this:
β’ setting the 'affect radius'
β’ taking the selected vertices and finding the distance between each one. If the distance between 2 points is smaller then the 'affect radius', and if it's smaller than the distance between the point and any other point, find the halfway point between the 2 points and move them both there. -
@chris fullmer said:
As for stitching together terrains...it could work, but there is a good chance it will have overlap. That overlap wil still need to be cleaned by hand. I'd be interested in seeing a demo on that Gaieus if you get around to it.
Yeah, I actually have a bigger area to cover and have been encouraging myself to get to work on it for weeks now. Maybe I'll give it a try and make some "progress report" on how it is going.
@unknownuser said:
I don't know what GE terrains' geometry look like.
Actually the case with GE is that it's streaming nicely but it's achieved by some good "level of detail" engine (both for the imagery and the terrain details) so if you want to grab a bigger area from (obviously) a bigger distance/height, the details are low therefore if you want to cover that area as detailed as possible, you have to go closer but then it means that you also have to pan aside, snapshot another one etc. and you end up with a bunch of pieces that need to be stitched together if you want something else than simply geolocating.
Otherwise it's just a regular TIN
Keep these ideas coming along and we'll also bug you with ours.
-
The script does not quite work for me like what is shown in the video.Perhaps I copied the wrong files to the Plugin directory?
From the ZIP folder I copied the two .rb's shown below:
-
Hi John, I think you just need to copy those 2 .rb files into your plugins folder. They don't need to be in the subfolder - unless I'm missing something. I'll edit that out if its wrong.
@BTM - The reason that the class variables are not working correctly (meaning they are not keeping their value during the entire SU session) is because you are declaring the variable in your activate method. So everytime the activate the tool gets activated, it resets the
@@max_weld_distance
variable back to0.0.to_l
.So what you want to do is declare that variable inside the class, outside of the methods. Like this:
class MergePoints @@max_weld_distance=0.0.to_l
I know it works, and I think that is the correct way to do it. it feels weird to have code not wrapped up in a method....
-
@chris fullmer said:
Hi John, I think you just need to copy those 2 .rb files into your plugins folder. They don't need to be in the subfolder - unless I'm missing something. I'll edit that out if its wrong.
Chris, you're right, they both go into the plugins folder.
@chris fullmer said:
@BTM - The reason that the class variables are not working correctly (meaning they are not keeping their value during the entire SU session) is because you are declaring the variable in your activate method. So everytime the activate the tool gets activated, it resets the
@@max_weld_distance
variable back to0.0.to_l
.I know that the variable needs to be outside of a method, but with things like
@@max_weld_distance=1.to_l if not @@max_weld_distance
it would call it an uninitialized variable, and give an error message.@chris fullmer said:
So what you want to do is declare that variable inside the class, outside of the methods. Like this:
class MergePoints @@max_weld_distance=0.0.to_l
It does work! I've been trying if functions, (so that if @@max_wld_distance doesn't have a value, it gets set to 0.0.to_l), but I kept getting error messages, and I guess that an if function isn't necessary.
Advertisement