Lee Mac Posted March 13, 2009 Author Posted March 13, 2009 Many thanks once again Matt. I have tried the "subtract" method first, as I am not familiar with "shells", and it produces some good results I first created the outside by extruding two circles with the OD pipe diameter, then I used UNION on these. Then I did the same with the ID dimensions and just subtracted the unioned inner from the outer. simple as. Quote
Lee Mac Posted March 13, 2009 Author Posted March 13, 2009 Not sure whether it looks better with Arcs or not... what dyou reckon? Quote
shift1313 Posted March 13, 2009 Posted March 13, 2009 what are you trying to model? existing pipe fittings? I would take the first one and apply a fillet to the joint where the pipes meet. Quote
Lee Mac Posted March 13, 2009 Author Posted March 13, 2009 what are you trying to model? existing pipe fittings? I'm just making a catalogue of pipe fittings that a user can create on the fly. Quote
shift1313 Posted March 13, 2009 Posted March 13, 2009 well if you are trying to create say a Weld T you may need to smooth it out like this. the bottom one. If you are just trying to stay generic i would go with the first model(non swept arc) Quote
shift1313 Posted March 13, 2009 Posted March 13, 2009 Well, its really annoying because I have modelled: Pipes, 2D, 3D (Solid) Elbows, 2D, 3D (Solid) Caps, 2D, 3D (Solid) Concentric Reducers, 2D, 3D (Solid) Flanges, 2D, 3D (Solid) Eccentric Reducers, 2D, ... struggling with 3D.. Ducting, 2D, (3D seems impossible...). Tees, 2D, ... struggling with 3D. I have attempted to model the tees, but get stuck at this point (my 3D knowledge failing me). no problem lee. do you want to expand on the ducting you are trying to do? it may be easier than you think Quote
Lee Mac Posted March 13, 2009 Author Posted March 13, 2009 I only say that the ducting seems impossible because you can't, for example, extrude a circle and change the diameter of the circle during the extrusion and equally, you can't revolve around a non-linear axis. So I was a bit stumped. Quote
shift1313 Posted March 13, 2009 Posted March 13, 2009 yes that could get a bit complicated:). ill have to think about how that can be done in acad04. will the user specify the path with a pline? Quote
Lee Mac Posted March 13, 2009 Author Posted March 13, 2009 Yes, the centerline is a user-specified pline. Have a play around with it yourself if you want (defun c:duct (/ *error* oVars vLst p1 p2 vEnt i PntEve PntOdd cAngE sPtE ePtE cAngO sPtO ePtO last_pt1 last_pt2) (defun *error* (msg) (if oVars (mapcar 'setvar vLst oVars)) (princ (strcat "\nError: " (strcase msg))) (princ)) (setq vLst '("CMDECHO" "CLAYER" "FILLMODE" "OSMODE" "PLINEWID") oVars (mapcar 'getvar vLst)) (setvar "CMDECHO" 0) (setvar "FILLMODE" 0) (if (not (tblsearch "LAYER" "DUCT")) (command "-layer" "M" "DUCT" "_C" "1" "DUCT" "") (setvar "CLAYER" "DUCT")) (vl-load-com) (if (and (setq p1 (getpoint "\nSpecify First Point: ") p2 (getpoint p1 "\nIndicate Direction of Duct: "))) (progn (setvar "PLINEWID" 6) (setvar "OSMODE" 0) (command "_pline" p1 (polar p1 (angle p1 p2) 2.0) "_arc") (while (> (getvar "CMDACTIVE") 0) (command pause)) (setq vEnt (vlax-ename->vla-object (entlast)) i 2.0) (while (and (setq PntEve (vlax-curve-GetPointatDist vEnt i) PntOdd (vlax-curve-GetPointatDist vEnt (setq i (1+ i))))) (setq cAngE (+ (/ pi 2) (angle '(0 0 0) (vlax-curve-getFirstDeriv vEnt (vlax-curve-GetParamAtPoint vEnt PntEve))))) (command "_line" (setq sPtE (polar PntEve cAngE 4.0)) (setq ePtE (polar PntEve (+ pi cAngE) 4.0)) "") (if (and last_pt1 last_pt2) (progn (command "_line" last_pt1 sPtE "") (command "_line" last_pt2 ePtE ""))) (setq cAngO (+ (/ pi 2) (angle '(0 0 0) (vlax-curve-getFirstDeriv vEnt (vlax-curve-GetParamAtPoint vEnt PntOdd))))) (command "_line" (setq sPtO (polar PntOdd cAngO 3.0)) (setq ePtO (polar PntOdd (+ pi cAngO) 3.0)) "") (command "_line" sPtE sPtO "") (command "_line" ePtE ePtO "") (setq last_pt1 sPtO last_pt2 ePtO) (setq i (1+ i))) (vla-put-ConstantWidth vEnt 0.0) (vla-put-Color vEnt acblue)) (princ "\n<!> Points Specified Incorrectly <!>")) (mapcar 'setvar vLst oVars) (princ)) ^^ a sample for your amusement Quote
shinymathew Posted March 14, 2009 Posted March 14, 2009 Being a piping engineer myself, I also had the same kind of an urge to make piping components in 3d solids some time back. And I faced the similar kind of troubles at that time with eccentric reducers. One mathematics fundamental I forgot at that time was about conic sections. I tried everything, rotating, cutting, of solid concentric cones. When we cut a cone we get conic sections like ellipse, parabola or hyperbola. At that time in 1998, I was using Auto cad Rel.13 or Rel.14. I finally reduced the task to make an eccentric cone alone since the remaining parts of the eccentric reducer is only cylinders which we can add any time. Only thing needed was the eccentricity. Now think reverse direction. Out these elliptical cones one will be giving the circular cross sections we are looking for with major and minor axes equal at the end of the eccentric reducer. Now it became a challenge. Gave me sleepless nights!!!. Always I think of this only thing. It gave me end less loops of failures. Took more than a year before finally one day I succeeded in devising the method of finding out the actual elliptical cone required to make the eccentric cone I was looking for. Now with loft command it can be done in the latest Auto cad versions. See my thread which I posted a few years back. May be useful. http://www.cadtutor.net/forum/showthread.php?t=4272 Quote
fuccaro Posted March 14, 2009 Posted March 14, 2009 I am not a piping engineer so I didn't come across this problem by myself. I answered a question some time ago and I wrote a short Lisp to approximate the cone. You can see it here: http://www.cadtutor.net/forum/showthread.php?t=824 Quote
Lee Mac Posted March 15, 2009 Author Posted March 15, 2009 Many thanks Fuccaro and ShinyMathew, I have run that LISP Fuccaro - a very ingenius way to make the cone without going to the trouble of calculating the sliced cone. Quote
wandyhee Posted March 19, 2009 Posted March 19, 2009 it's easier using LOFT command. just create 2 different size circles, move one of in along z direction with your desire distance between each others. then create another copy of both circles, move it in between those 2 previous circle (also in z direction). then just type LOFT, select all 4 circles and you done Quote
MaxwellEdison Posted March 19, 2009 Posted March 19, 2009 Yes, loft would be the preferred method, but lee is not programming this in a post 2007 version of AutoCAD. Quote
Lee Mac Posted March 19, 2009 Author Posted March 19, 2009 Many thanks for your time and help wandyhee, it is much appreciated - but I'm afraid I don't have access to '07, or the loft command and so I have had to settle for using Matt's method of using the edgesurf function to accomplish my goal. You can see the finished result here. Thanks Lee Quote
shift1313 Posted March 20, 2009 Posted March 20, 2009 lee i saved and unzipped the program and im getting ready to play with it now. Quote
shift1313 Posted March 20, 2009 Posted March 20, 2009 lee i sent you a PM, I think the program is great Quote
Recommended Posts
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.