Display full version of the post: Elliptical Dome

mmaurigi
04.10.2013, 21:21
Can someone help me with how I can create a 3D model of an elliptical dome?
 
The ellipse dimensions are 14"wide x 18" long and the dome is 4" high. This would be the cover for an elliptical manway on a pressure vessel.
 
Like this:
 
Thank you.

SEANT
05.10.2013, 11:57


Here is the elliptical shape you described.  It was produced by an plugin app that, unfortunately, is not available for AutoCAD 2009.uploads/244286/Ellipsoid.dwg

John Connor
05.10.2013, 12:42
A dome like that can be constructed in 3D with a segment of an ellipse that is revolved.  Did you want to end up with a surface or a solid?

John Connor2013-10-05 22:20:43

John Connor
05.10.2013, 22:17
This is how I did it.  By the way, it is a revolvedsurface.  You can union the four pieces together to form a regular surface then you can use the Thicken command to turn it into a solid.



John Connor2013-10-05 22:23:23

mmaurigi
05.10.2013, 22:59

Is that app available for 2013?

John Connor
05.10.2013, 23:50
One.  I used AutoCAD 2013.Two.  There is no "app".  All commands can be found in AutoCAD.

SEANT
06.10.2013, 09:43

I don't think RevolveSurface can be used due to the squashed height of 4".  Loft can be used but creating an ellipsoid with tight tolerances (Mathematically correct surface area and volume) is difficult. I think the "app" reference pertains to the one I alluded to in my post.  Unfortunately, The compatibility of the routine is only AutoCAD 2011 - 2012.  If needed, I'll try to update to 2013 - 2014, but it wouldn't be available until later this week.  In the mean time, this link has some discussion on the matter as well as hosting my current routine and a lisp variant by Marko Ribar.  See Reply 14. http://www.theswamp.org/index.php?topic=40429.0 

Kent Cooper
07.10.2013, 14:51
Can you do it with a one-inch diameter hemispherical dome (quite simple to construct), defined as a Block and inserted with appropriate differing X, Y and Z scale factors?

philippe JOSEPH
07.10.2013, 15:37
Yes Kent you can do it and it works.
I did a bloc 1x1x1 with a half sphere and scale it to X:14 , Y:18 , Z:8.
I did an other bloc at scale X:13 , Y:17 Z:7 to figure the volume to be taken out of the first one ( would be a volume of thickness 1" ) but I was not authorized to explode these blocks "non uniform scale".
The Ellipsoid.dwg provided by Seant is OK but I don't know if we are abble to generate with our AutoCAD.
Sometime I ask a colleague to generate on Solidworks "impossible" volumes for me, maybe we have ( or not ) that possibility.
maybe someone on the planet can help us...philippe JOSEPH2013-10-07 15:53:17

SEANT
08.10.2013, 08:26



Phillippe, AutoCAD includes capabilities in its APIs that
are not exposed to the drawing editor.  One
of the capabilities allows for degree 2 NURBS surfaces.  I used that to sculpt the ellipsoid solid
attached to post #2.

 

I see you are using AutoCAD Mechanical 2012.  That is the same version I used when running
the plugin ellipsoid.dll attached to post # 14 of the theswamp.org link
above.  I do understand, though,
reluctance to run outside code. 

The source code for that routine can be inspected (and/or used to
compile) here:

http://www.acadnetwork.com/index.php?topic=104.0

The site requires registration.


philippe JOSEPH
08.10.2013, 13:16
Seant, thanks a lot for your informations.
I will go on the site that you are talking about.
Again, thanks for all.

mmaurigi
08.10.2013, 15:05
I was referring to your post Seant. If you can update it for 2013 or 2009, that would be perfect. I can wait if it takes a week.
 
Thanks
 
[QUOTE=SEANT]
 
I think the "app" reference pertains to the one I alluded to in my post.  Unfortunately, The compatibility of the routine is only AutoCAD 2011 - 2012.  If needed, I'll try to update to 2013 - 2014, but it wouldn't be available until later this week.  In the mean time, this link has some discussion on the matter as well as hosting my current routine and a lisp variant by Marko Ribar.  See Reply 14.
 
http://www.theswamp.org/index.php?topic=40429.0
 [/QUOTE]


SEANT
08.10.2013, 23:08
Here is an updated to work with 2013-2014. Place  “Ellipsoid.dll” on your hard drive.  In AutoCAD, invoke the NETLOAD command and
retrieve that file.  If you are using
AutoCAD 2014 a warning will be shown if you have not saved it in a Trusted
Files Location, but the warning box does give you the option of loading anyway.

 

For sure, the routine qualifies as rudimentary.  The command can be called via ELLIPSOIDSOLID
or ELSOL for short.  The prompt asks for
a Length, Width, and Height.  An
ellipsoid of the input dimensions is centered at the WCS origin with the axis
aligned to the X, Y, and Z. 
Vladimir Michl2013-10-18 14:05:52

mmaurigi
09.10.2013, 15:14
Thanks very much for updating the file. There is a problem though.
I load the file with NETLOAD, then at the command prompt, I type ELSOL. The prompts come up asking for the Length, Width, and Height. After entering those values, I get a Fatal Error and get kicked out of AutoCAD.
 
 
[QUOTE=SEANT]Here is an updated to work with 2013-2014. Place  “Ellipsoid.dll” on your hard drive.  In AutoCAD, invoke the NETLOAD command and retrieve that file.  If you are using AutoCAD 2014 a warning will be shown if you have not saved it in a Trusted Files Location, but the warning box does give you the option of loading anyway.

 
For sure, the routine qualifies as rudimentary.  The command can be called via ELLIPSOIDSOLID or ELSOL for short.  The prompt asks for a Length, Width, and Height.  An ellipsoid of the input dimensions is centered at the WCS origin with the axis aligned to the X, Y, and Z.
uploads/244286/Ellipsoid.zip[/QUOTE]

John Connor
09.10.2013, 16:50
I tried it using 2014 and I also received the Fatal Error: Unhandled
Access Violation message then closing the window AutoCAD crashed.  Is there something a user must do before
invoking the command?

Kent Cooper
09.10.2013, 18:00
Here's a routine that makes one as a Solid [actually a segmented approximation to whatever level of precision the User chooses].  See comments at the top.  (It's really fun to watch it do its thing!)  With high precision [I've tried it with precision as high as 200], you'll have to give it time to do the Intersect operation at the end.  It doesn't yet have all the usual bells and whistles, but I'm working on incorporating those, as well as having it build it where the User designates instead of at the WCS origin, using true Ellipsoids of rotation when any axes are equal, etc.
 
;;  EllipticalDomeSolid.lsp [command name: EDS];;  To construct a Dome shape in Elliptical form, as a 3D Solid.;;  User specifies Axis lengths, height and precision level.;;  Constructs with base centered at WCS origin.;;  To make a hollow dome, construct one to outer dimensions;;    and another to inner dimensions, and Subtract.;;  Note that mid-line of each "wedge" surface traces along "true";;    dome surface, and "corners" between "wedges" are slightly;;    outboard of true surface [less so with greater precision].;;    However, base perimeter is truly Elliptical, with transitional;;    triangular areas around base.;;  Kent Cooper, 9 October 2013
(defun C:EDS ; = Elliptical Dome as 3d Solid  (/ a1 a2 ht prec par ss ell pt ang)  (command "_.undo" "_begin")  (setq    a1 (getdist "\nLength of one elliptical axis: "); = Axis 1    a2  (getdist "\nLength of other elliptical axis: "); = Axis 2    ht  (getdist "\nHeight: "); = height    prec (getint "\nNumber of segments per quadrant [precision]: ")    par 0.0 ; initial    ss (ssadd); initially empty  ); setq  (setvar 'ucsfollow 0)  (setvar 'osmode 0)  (setvar 'blipmode 0)  (command    "_.ucs" "_world" "_plan" ""    "_.zoom" "_c" '(0 0 0) (* (max a1 a2) 1.05)    "_.ellipse" "_c" '(0 0 0) (polar '(0 0 0) 0 (/ a1 2)) (/ a2 2)    "_.shademode" "2d"  ); command  (setq ell (entlast))  (repeat (1+ prec)    (setq      pt (vlax-curve-getPointAtParam ell par)      ang (angle '(0 0 0) (vlax-curve-getFirstDeriv ell par))    ); setq    (command      "_.ucs" "_zaxis" '(0 0 0) (polar '(0 0 0) ang 1)      "_.ellipse"        "_c" '(0 0 0)         (trans pt 0 1); even though it will be up off UCS plane        ht      "_.extrude" "_last" "" (max a1 a2) ""      "_.move" "_last" "" (list 0 0 (- (/ (max a1 a2) 2))) ""      "_.ucs" "_world"    ); command    (ssadd (entlast) ss)    (command "_.mirror" "_last" "" '(0 0 0) '(0 1 0) "_no")      ; [redundant for first and last, but easier than distinguishing]    (setq ss (ssadd (entlast) ss))    (setq par (+ par (/ pi 2 prec)))  ); repeat  (command "_.extrude" ell "" ht "")  (ssadd (entlast) ss)  (command "_.intersect" ss "")  (command "_.undo" "_end")  (princ)); defun

SEANT
09.10.2013, 18:42

I shall look into it promptly.

SEANT
09.10.2013, 21:25

I can certainly confirm something amiss.  The routine as posted earlier works on my desktop, but not on the laptop.  I've isolated the problem to the Solid3D.Slice(surface As Autodesk.AutoCAD.DatabaseServices.Surface) call, but I haven't found out why it fails intermittently.  AutoCAD may be haunted. I did modify the procedure a bit, and it now works on both of my machines.  In case anyone's up for another go, I'll post the modified code.  Due to a couple of reasons, all valid no doubt, posts from a "Newbie" containing attachments require moderator involvement.  I'll attach the new code to a post directly following this one.

SEANT
09.10.2013, 21:29
Here is the modified code. (see later updates)
Vladimir Michl2013-10-18 14:06:43

mmaurigi
09.10.2013, 22:50
Thanks for the modified code. It seems to have work. However, the 3D solid was not a half dome, it was a dome on both sides of the XY axis. I had to slice it along that axis to get what I wanted. Also, I did get a message on the Command Line saying "Error Producing Solid".
 
Othe than that, it worked great.
 
 
[QUOTE=SEANT]Here is the modified code.
uploads/244286/Ellipsoid_2.zip[/QUOTE]

SEANT
09.10.2013, 23:25
[QUOTE=mmaurigi]Thanks for the modified code. It seems to have work. However, the 3D solid was not a half dome, it was a dome on both sides of the XY axis. . . . . [/QUOTE]
 Yes, that is the way the routine works.  The routine is very basic.  You would have to adjust dimensions, Height specifically, to accommodate the necessary slice. [QUOTE=mmaurigi]. . . . Also, I did get a message on the Command Line saying "Error Producing Solid".   [/QUOTE]  Wow!  You get that message, as well as the ellipsoid.  That message should only appear if the routine errors out.  Something squirrely going on with the Solid3D functions.  I advise using this routine only in  isolated sessions of AutoCAD.  Cut and paste into a archive drawing if necessary.   I'll try to get one of the Autodesk DevTechs to take a peek.  I'll post back if I hear anything.   Actually, that is a debugging remnant .  the Solid3Ds are slightly more "solid" than I implied above. 
SEANT2013-10-09 23:35:16

John Connor
10.10.2013, 00:26
Can't wait to give it a try when I get to work tomorrow.  Thank you SEANT.

mmaurigi
10.10.2013, 14:33
[QUOTE=SEANT]
Yes, that is the way the routine works.  The routine is very basic.  You would have to adjust dimensions, Height specifically, to accommodate the necessary slice.
 

[/QUOTE]
 
Ok, if that's the case, then it works perfectly. Thanks again for your help with this. Greatly appreciated!
 

John Connor
10.10.2013, 15:17
Just wanted to say "thanks" to Kent Cooper for his contribution too.  I neglected to do so yesterday.

Kent Cooper
10.10.2013, 17:26
>> Just wanted to say "thanks" to Kent Cooper for his contribution too. .... -- John Connor
 
Thank you back.  One nice thing about that routine is that it's not version-dependent as the .dll things appear to be, so people with any version of AutoCAD can build elliptical Domes with it.  [That is, unless you go way back to an early enough version that the Ellipse command made only a Polyline approximation, in which case I think it should still work but wouldn't be as accurate in shape; or maybe some very old versions don't have all the needed 3D commands.]  In fact, it was worked out in a version from before NETLOAD -- I did it partly because in the AutoCAD I have here [2004], I don't have the possibility of trying those other routines.Kent Cooper2013-10-10 17:27:09

SEANT
12.10.2013, 10:19
This version fixes some bugs/issues with the previous.uploads/244286/Ellipsoid_v2013-2014.zipAlso, if a Administrator/Moderator would be so kind, please remove the earlier versions (uploads/244286/Ellipsoid.zip and . . . ./Ellipsoid2.zip).  I, and any future members that may accidentally download those versions, would be grateful.  I would do the housekeeping myself but I haven't found any mechanism for editing my previous posts.Kent, that is an interesting methodology.  Depending on the use it may be more representative of the projects final outcome.  And, without a doubt, ACADVer/AutoLisp compatibility is king.