Jump to content
  • 1

Creating solids from enclosing surfaces


line-weight

Question

Never quite sure what the best way to approach this sort of thing is.

 

In this case, I have 8 NURBS surfaces which I've extracted from an existing solid. 2 chains of 4 connected surfaces, and essentially I want to fill in the space between them to make a solid.

 

(None of those surfaces are coplanar, nor are they rectangular)

 

So, the red lines I've indicated would be some of the new edges on that solid.

 

What's the most efficient way of doing this?

 

265082690_ScreenShot2020-11-24at23_15_43.thumb.jpg.79160733bddbb79bd271008aaf9c2250.jpg

surfaces.vwx

Link to comment

Recommended Posts

  • 0

... perhaps I should add some context to this question.

 

The solid I'm trying to create above, is one that I want to use to subtract from the larger solid shown in this post (and in teh attached file).

 

Essentially I want to cleanly slice off a portion of the parapet wall, above the level of the highlighted red line. This seems very tricky to achieve. Doing a subtraction is one approach but there may be other better ones. You may need to look at the file itself to understand the geometry here as it's not as simple as it may appear (it's not just a straight extrusion).

 

424232552_ScreenShot2020-11-24at23_54_23.thumb.jpg.d29376e4f99ec9d5d6aa215254447a40.jpg1184213692_ScreenShot2020-11-24at23_55_01.thumb.jpg.afa9d1e8c380a5569195947756a7d0e7.jpg

vsolid.vwx

Link to comment
  • 0

I just did a quick play and I think you can get the surface you are looking for.

 

Use the Extract Tool in Extract Curves mode along one side. Enter the group created, select all, and Modify:Compose. You will now have a single NURBS curve inside the group. Exit the group and Ungroup to get just the NURBS curve.

Repeat on the other side.

Draw a 2 point NURBS curve between the two extracted/composed curves. Loft the three curves using the Birail Sweep mode. If you check the Create Solids in the Loft settings, you will end up with a Generic Solid that is the same size as the bottom of the parapet. 

If you select the new Generic Solids and Wall assembly, you can Section Solid to get either the wall or the parapet.  Duplicate the objects first and Section Solid the other way and you will end up with two Solid Sections, one representing the wall, one representing the parapet.

 

Ask again if not clear enough.

 

HTH.

Link to comment
  • 0

Thanks for the response @Pat Stanford

 

So, I managed to get the solid I wanted in my first post. In fact, it seems possible to do it slightly differently than your suggestion: I can extract a surface from each side; VW will not let me use the loft command on these but if I convert them to 3d polys, then back to NURBs (why is this?), then it will, and I can use the "no rail" mode. This gives me a solid that I can subtract, which cleanly removes a section of the wall, but not the parapet.

 

So I can get this far:

 

1299158549_ScreenShot2020-11-25at09_30_55.thumb.jpg.8bb698a7ac3195e1a624c53becd90dac.jpg

 

But you have lost me a bit in the second part of your description - what do you mean I should use to do the solid section - this needs to be a surface, no?

 

What I tried was to set the working plane to the "cut end" of the wall, and draw a 2d polygon:

 

1663426446_ScreenShot2020-11-25at09_34_29.thumb.jpg.097a6233fbd29ce30bb0ee3c46a75bf3.jpg

 

Converting this to NURBs gave me something that the solid section command would not let me use, but converting it to a 3d polygon worked.

 

495460457_ScreenShot2020-11-25at09_35_48.thumb.jpg.ec97c7c41856f2475ae49b4e78b41dc7.jpg

 

One thing I am unclear about - what's the difference between a NURBs surface and a NURBs curve, and what's the proper way to convert one to the other?

Link to comment
  • 0

It strikes me that what I really want to do is use a section surface like this to cut the solid:

 

512119008_ScreenShot2020-11-25at09_46_55.thumb.jpg.b3a5deccf0e655fea8e761bf6ab383d2.jpg

 

I have drawn that in 2d polys using working planes - there are 3 polygons each on a different plane but their edges meet.

 

What I don't know is how to make them into something that I can use as a solid section. I can convert those polygons into NURBs curves or 3d polygons, but I can't then see how to compose them into one surface (the compose command doesn't do anything).

 

The VW help page on Solid Sections is not very helpful - doesn't tell me anything about what kind of surfaces I can use, whether they can be made up of multiple planes, etc.

Link to comment
  • 0

@Pat Stanford I managed to do what I was trying to do, by other means in the end, thanks.

There remain a couple of questions that would be useful to understand for the future though:

 

1) Is there a way of creating a solid from enclosing surfaces, when the loft command isn't an option?

2) Can I convert a NURBs "curve" directly to a NURBs "surface" and vice versa

3) What kinds of objects can I use for solid sections (missing information in VW help)

Link to comment
  • 0

As you have the solid you require you could simply

1.   Switch to top or top/plan view

2.   Place a line perpendicular to the curve at the point you want to trim the parapet back to

3.   Using the Split Tool (second mode “Line Split mode”) cut your solid using the line in (2) as a guide.

4.   Using the “Extract Tool” (Preferences – Tick Create Planar Object”), select the top faces of the wall (use Shift to select multiple)

5.   Ungroup and extrude above the top of parapet, then extrude the back face beyond the outside faces of the parapet

6.   Use the “Taper Face Tool” to close any gaps in the extrusions)

7.   Select the extruded blocks and “Add Solid”

8.   Select the block with the parapet and the new block created in (7) and then “Subtract Solid”… no parapet 🙂

9.   Select the two and "Add Solid" to get back to one object

Link to comment
  • 0
3 hours ago, axhake said:

As you have the solid you require you could simply

1.   Switch to top or top/plan view

2.   Place a line perpendicular to the curve at the point you want to trim the parapet back to

3.   Using the Split Tool (second mode “Line Split mode”) cut your solid using the line in (2) as a guide.

4.   Using the “Extract Tool” (Preferences – Tick Create Planar Object”), select the top faces of the wall (use Shift to select multiple)

5.   Ungroup and extrude above the top of parapet, then extrude the back face beyond the outside faces of the parapet

6.   Use the “Taper Face Tool” to close any gaps in the extrusions)

7.   Select the extruded blocks and “Add Solid”

8.   Select the block with the parapet and the new block created in (7) and then “Subtract Solid”… no parapet 🙂

9.   Select the two and "Add Solid" to get back to one object

 

Thanks for the suggestion...

 

Step 4 (even when I use the "create planar object") doesn't seem to give me an object(s) that I can extrude.

 

1510487369_ScreenShot2020-12-08at16_48_29.thumb.jpg.1fcf068bc09b336634796b0b10bf1f09.jpg

Link to comment
  • 0
5 hours ago, axhake said:

Have a look at this, I created in V21 and exported to 2018 so you should be able to open OK

See if you can trim the parapet back a bit by following what I did.

 

Alan

 

vsolid_v2021_v2018.vwx 31.64 MB · 0 downloads

 

Thanks - I've looked at that and I can see how you have done it, and you have done it cleanly.

However - when I go into the history of the solids, and go right back to the original object, it's not quite the same as what I see in my original file.

In mine, if I try to extract one of those top surfaces, I don't get something I can extrude (I get a NURBS surface as per my screenshot above).

In yours, I do: I am able to extract a polygon.

I'm not sure if this is the result of something working differently in vw2021 vs vw2018.

 

I don't want to take lots of your time on this - because it's something I have got around in a different way in the end. But still useful and interesting to understand what's going on.

Edited by line-weight
Link to comment
  • 0

Sir line-weight

Geeze, what a post to wake up to!  :-)

Before I put in my 2 cents,

1) I noticed that the object in your file is a generic solid....was there a reason you didn't just leave it as the original objects?

 

2) IF I understand the basics, you just wanted to have that parapet object(above your red line) as a separate object??

3) did you consider simply doing an extrude along path for the parapet part?

 

As is often the case, there are several ways to accomplish things in VW, but....there is usually one best way...meaning less tweaking and mouse clicks. Not sure exactly what that would be in this case until I mess with the file.

 

Pat S usually has a good handle on all things VW, so I see he offered up a solution.

Link to comment
  • 0
14 minutes ago, Kevin K said:

Sir line-weight

Geeze, what a post to wake up to!  🙂

Before I put in my 2 cents,

1) I noticed that the object in your file is a generic solid....was there a reason you didn't just leave it as the original objects?

 

2) IF I understand the basics, you just wanted to have that parapet object(above your red line) as a separate object??

3) did you consider simply doing an extrude along path for the parapet part?

 

As is often the case, there are several ways to accomplish things in VW, but....there is usually one best way...meaning less tweaking and mouse clicks. Not sure exactly what that would be in this case until I mess with the file.

 

Pat S usually has a good handle on all things VW, so I see he offered up a solution.

 

 

1) How long have you got?! The answer is to do with the messy way VW deals with very gradual curves where they end up as very faceted (thread somewhere about this) so I had to convert the spline type path to a segmented one, and then EAP doesn't work (I now forget why, there's a thread on that too) so I had to generate as a lofted object instead which gives me a generic solid as the output.

 

2) I wanted it removed, in that case.

 

3) Actually, that's kind of what I ended up doing (except as a lofted profile, for same reasons above) and then the 'parapet' was separate from the 'body' which made doing the edits I wanted rather easier.

 

Link to comment
  • 0

Ok, after a bit of analysis a few things come to mind.

1) I think if I were doing what you wanted to achieve, if I understand it correctly, I would have probably just made two extrude along path items.....Done....and simple.  

One for the basic shape and one for the parapet. Pretty simple. Keep in mind that the profile object must be planer! 

 

2) one other thought, the faceting you are seeing with the curves has to do with two things.

a) if you set your open GL settings to 'very high' you should see those facets kind of smooth out.

b) also, I noticed the file is in millimeters at a 1:1 scale . since it is decimal if you increase the precision a bit, using a few more zero's after the decimal point, sometimes that helps with smoothness of curves as well. In addition, its a good idea to set you prefs to use very high for the 3d conversion resolution if you have objects in the file that have curves.

 

3) I also noticed that the basic shape is 'non-planer' so using the 'split tool' can get tricky.  IF you put the file in an elevational view you will see that there is a slight slope to that object, so, sectioning can be a bit dodgy.

Anyway....I updated your file to show your original generic solid along with my two extrude along path objects.

They look a bit smoother by just setting the open gl to extra high.

See what you think.

 

 

vsolid KEVIN v2018.vwx

Link to comment
  • 0

First, the main difference between nurbs curve and nurbs surface.....nurbs curves have no solid mass. think of it as a polygon with a none fill.

curbs surfaces do have mass.  You can give them a solid fill as well as a few other options like extruding them by choosing the shell solids option.

 

Secondly....I am probably still way off here, but I created a small low res movie to attempt to explain one option as to what you wanted to achieve.

Again, I fully admit I could be wayyyy off.  This whole process involved 3 moves.

1) creating an extrude along path from the basic solid shape

2) creating an extrude along path

 for the parapet object

3) using the split tool to shorten up the parapet.

Pretty fast and simple, really.

 

Link to comment
  • 0

@Kevin K thanks for the responses.

 

What you have done - splitting the object into two parts, is essentially what I have ended up doing, because it makes it easier to do the kind of edits I want to do.

 

I should explain that the slight slope on the object is intentional, and it's this that makes things tricky, because it means that the top surface is not all on one flat plane. The slope itself is not even - it's a gradual curve in elevation - and again this is intentional and necessary to model.

 

I have understood most of the problems I've been having with this object, thanks to a little bit of behind-the-scenes help from @axhake. Some are due to the way I generated the original object (firstly as an EAP and then as a lofted solid) and things can be made cleaner by ensuring that the profile object is perpendicular to the path.

 

But there's another issue going on as well, which is to do with the faceting problem, and it means that to make things work, these objects (which are modelling railway viaducts) have to be generated using a segmented path rather than a smooth curve. The faceting problem, unfortunately, is not solved by changing the OpenGL settings. This issue is discussed in more detail on this thread:

 

 

Going back to my original question in this post - and for the benefit of anyone reading this with the same question - the answer is that you can create a solid from its enclosing surfaces simply by drawing those surfaces as 3d polygons, and then using the "add solids" command. This I didn't know - I might have expected nothing to happen because 3d polygons aren't "solids" to me, and/or maybe I'd have expected to get a hollow object. But it turns out this creates a properly solid object. Something useful to know for the future.

 

  • Like 2
Link to comment
  • 0
3 hours ago, Kevin K said:

First, the main difference between nurbs curve and nurbs surface.....nurbs curves have no solid mass. think of it as a polygon with a none fill.

curbs surfaces do have mass.  You can give them a solid fill as well as a few other options like extruding them by choosing the shell solids option.

 

On this, I've found this video quite helpful in understanding better what a NURBs surface is, and how to create one:

 

 

 

As far as I can make out, it's not possible to directly convert, say, a 3d polygon to a NURBS surface, only to a NURBS curve... have I got that right?

Link to comment
  • 0

Ok, now I am much clearer on the big picture of what you are doing,  now that you have explained things in a bit more detail. 
I had thought the slight slope in your object was unintentional ! Silly me!
And yes,, you are correct in that you can’t create a nurbs surface directly from 3d polys,  but.....if you have a nurbs curve, there is an option to create surface from curves option.  I use it quite often. You CAN convert a nurbs curve from a 3d poly, however, then convert surface from that nurbs curve. It does get a little finicky at times if your nurbs curve(s) are complex.

 

 

Link to comment
  • 0
9 minutes ago, Kevin K said:

Ok, now I am much clearer on the big picture of what you are doing,  now that you have explained things in a bit more detail. 
I had thought the slight slope in your object was unintentional ! Silly me!
And yes,, you are correct in that you can’t create a nurbs surface directly from 3d polys,  but.....if you have a nurbs curve, there is an option to create surface from curves option.  I use it quite often. You CAN convert a nurbs curve from a 3d poly, however, then convert surface from that nurbs curve. It does get a little finicky at times if your nurbs curve(s) are complex.

 

 

 

Ah! In the 3D power pack tools, I see. "Create surface from curves".

 

A classic bit of VW user experience design that - give you a "convert to.." menu with lots of options, but then hide one of the actual options available, in another menu.

 

 

  • Like 1
Link to comment
  • 0

@axhake That is an amazing deep-dive explanation right there (I am sure I have used the exact same workaround in the past).

No wonder people get confused when trying to model in Vectorworks! Here's hoping Vectorworks Inc. can remove these NURBS interpolation/faceting bugs so we don't have to jump through so many hoops to get a correct result.

 

When you get out of lockdown, I think @line-weight owes you a beverage of some kind! 😎

Link to comment
  • 0

Apologies to @axhake for taking so long to respond to this. I've finally found the time to sit down and look at it properly. As I'm still an upgrade refusenik, and using vw2018 I'm not able to open the attached files but that's fine, I think it would be good for me to test the method drawing somethig from scratch myself.

 

The first thing to get right is the placement of the "control profiles". @axhake you say you have placed them "vertical and square to each of the control points". It strikes me that there are two ways that you might want to place these, if you are building a wall-like object that is curved both in plan and elevation:

 

(a) The profiles are placed perpendicular to the path in plan and perpendicular to the path in elevation and and perpendicular to the horizon along the axis of the path

(b) The profiles are placed perpendicular to the path in plan and perpendicular to the horizon in elevation and and perpendicular to the horizon along the axis of the path

 

The diagram below shows what each looks like in elevation (for now ignoring any curve in plan) - think of the green line as a ground surface and the brown line the top of a wall built up from that surface. The red lines indicate the orientation of a constant-sized control profile in each case.

 

1496918619_ScreenShot2021-01-07at11_28_15.thumb.jpg.f4392356a411dec078106332f86763bc.jpg

 

I think I'd like to test this method for each scenario.

 

My first question - what's the best way to get those profiles into location for each wall type? The first hurdle I've come to is a rather basic one: I can't work out how to generate a line that is perpendicular to a 3d NURBS curve in plan. This is easy with, say, a circle - if you draw a line starting at that circle, then one of the snap constraints you are offered is "perpendicular". This doesn't work with a NURBS curve though - am I missing something?

 

I've discovered that you can get a 3d working plane that's perpendicular to the NURBS curve simply by using the Planar Face Mode and clicking on a point on the curve. The problem with this is that it has no regard for the horizon and it rotates as you go along the curve. Is there a quick and easy way to establish this working plane and then (for wall type a) tell it to rotate so its X axis is horizontal or (for wall type b) rotate so its X axis is horizontal and its Y axis is fully vertical?

Link to comment

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.

×
×
  • Create New...