+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 13

Thread: 3D pipes

  1. #1
    Forum Newbie danieldalio's Avatar
    Using
    AutoCAD 2008
    Join Date
    Mar 2008
    Location
    Córdoba, Argentina
    Posts
    6

    Question 3D pipes

    Registered forum members do not see this ad.

    Good night,
    I am trying to draw some pipes in 3D.
    What I want to is to create a path, let's say from 0,0,0 going 10 feet up, then 15 feet to the left, then 8 feet forward, then 3 feet down and so on.
    I want smooth corners, not 90 degrees.
    It is my understanding that I can't make a 3D polyline with arcs on it.
    I'd like to make my piping by extruding a surface along a path.
    Is it any way to make my piping other than creating segments and elbows and joining everything?
    Thanks in advance.

  2. #2
    Super Moderator Lazer's Avatar
    Computer Details
    Lazer's Computer Details
    Operating System:
    Windows 7
    Computer:
    HP xw 4600 Workstation
    CPU:
    Intel Core2 Duo, 3 Gig
    RAM:
    8GB
    Graphics:
    NVIDEA Quadro FX 1700
    Primary Storage:
    2TB
    Secondary Storage:
    Portable TB drive
    Monitor:
    Samsung SyncMaster 226
    Discipline
    Mechanical
    Lazer's Discipline Details
    Occupation
    Design Engineering Manager
    Discipline
    Mechanical
    Details
    Mechanical Designer using Autocad and Inventor
    Using
    Inventor 2016
    Join Date
    Aug 2005
    Location
    Northants, England
    Posts
    1,817

    Default

    What version of Autocad are you using? I would suggest using the sweep command or extrude along a path (for older versions).

    Edit: Simple way for the sweep command is build your path using extruded boxes then you can do it in one hit.
    USING AUTOCAD 2016 AND INVENTOR 2016, ALIAS 2016 SHOWCASE 2016.

    If in doubt scale and don't ask!



  3. #3
    Forum Deity
    Using
    not specified
    Join Date
    Jul 2004
    Location
    Anchorage, Alaska
    Posts
    2,074

    Default

    I played with it, all I came up with;

    -Draw 3dpolyline as you described
    -explode to 3dlines
    -use fillet command to create 3darcs at angles
    -draw circle for pipe section at end of each element, for use in extrusion
    (create ucs with "za" "ob" options for drawing circles)
    -extrude circle along each straight section and arc
    -"union" command to join solid pieces

  4. #4
    Super Member Tankman's Avatar
    Computer Details
    Tankman's Computer Details
    Operating System:
    XP Pro SP3
    Computer:
    IBM T60 Thinkpad™
    Monitor:
    36" LCD Monitor/TV, 14" Thinkpad™ T60
    Using
    AutoCAD 2007
    Join Date
    Mar 2008
    Location
    Eastern PA, USA
    Posts
    1,796

    Default

    You might like a free pipe program, ACAD add on.

    Try http://www.charlottepipe.com/Default...ge=AllDrawings for a free CD!

    I am always workin' with pipe, fittings, chemical storage tanks, find add-ons, freebies, a great asset for my work!

  5. #5
    Senior Member
    Using
    Architecture 2011
    Join Date
    Jan 2008
    Posts
    100

    Default 3d Pipe Fittings AutoCAD

    To make your 3D Poly line have curves simply click on the Polyline then, in properties (under fit/smooth), select cubic. If you need the pipe run to have "tighter"/smaller radii then select quadratic (but bear in mind that quadratic uses a LOT more memory so in large drawings it is best to be avoided.

    If you have a choice between using sweep and extrude then I recommend going for the extrude option because the resulting pipe run will again be less memory intensive.

    The problem with the 3D polyline method is that the radii aren't exact. If you needed the run to represent an ANSI steel run then your path wouldn't match your fittings (this might be acceptable for you). You will also run into problems if you wanted to do a BOM/parts list (much simpler when using singular pipe fittings).

    If you truelly need to define pipe runs by their paths without having to manually insert the pipe fittings then you would need a program such as AutoCAD MEP.

    If you would be happy with individual pipe fittings then try one of these:

    [FONT='Arial','sans-serif']3D AutoCAD Pipework – http://www.HerculeDesign.com[/FONT][FONT='Arial','sans-serif'][/FONT]
    [FONT='Arial','sans-serif']Pipework & Structural Steel http://www.3DCADMax.com
    [/FONT]

  6. #6
    Super Member ASMI's Avatar
    Using
    AutoCAD 2008
    Join Date
    Nov 2005
    Location
    Oceanus Procellarum, Moon
    Posts
    1,427

    Default

    Some of 3D-pipes programs. xpipe - for solid pipes, xtube - for solid pipes with hole.

    Code:
    (defun c:xpipe(/ ACTDOC ACTLAY ACTSP BASELINE 
              BASESET CIRENT DICOUNT DIVDID 
              EXCIR LAYST OBJTYPE OLDDIA 
              OLDECHO STARTPT XORD YORD 
              ZORD *ERROR*) 
      (vl-load-com) 
    
      (defun *error* (msg) 
        (vla-put-Lock actLay laySt) 
        (setvar "CMDECHO" oldEcho) 
        (vla-EndUndoMark actDoc) 
        (princ) 
        ); end of *error* 
    
      (if(not pipe:exDia)(setq pipe:exDia 40.0)) 
      (setq actDoc 
        (vla-get-ActiveDocument 
          (vlax-get-Acad-object)) 
       actLay(vla-get-ActiveLayer actDoc) 
            oldDia pipe:exDia 
            oldEcho(getvar "CMDECHO") 
       ); end setq 
      (vla-StartUndoMark actDoc) 
      (setvar "CMDECHO" 0) 
      (if(= 0(vla-get-ActiveSpace actDoc)) 
        (setq actSp(vla-get-PaperSpace actDoc)) 
        (setq actSp(vla-get-ModelSpace actDoc)) 
        ); end if 
      (setq laySt(vla-get-Lock actLay)) 
      (vla-put-Lock actLay :vlax-false) 
      (setq pipe:exDia 
        (getreal 
          (strcat 
            "\nSpecify pipe diameter <"(rtos pipe:exDia)">: "))) 
      (if(null pipe:exDia)(setq pipe:exDia oldDia))
      (initget "Yes No") 
       (setq delFlag 
              (getkword "\nDelete extrude path(s)? [Yes/No] <No>: ")) 
        (if(null delFlag)(setq delFlag "No")) 
      (princ "\n<<< Select objects to extrude and press Enter >>>") 
      (if 
        (setq baseSet 
          (ssget '((-4 . "<OR")(0 . "*LINE")(0 . "CIRCLE") 
               (0 . "ARC")(0 . "ELLIPSE")(-4 . "OR>") 
               (-4 . "<NOT")(-4 . "<OR")(0 . "SPLINE") 
                    (0 . "MLINE")(-4 . "OR>")(-4 . "NOT>")))) 
        (progn 
          (setq baseSet(vl-remove-if 'listp 
                                  (mapcar 
                'cadr 
                (ssnamex baseSet)))) 
          (foreach pathEnt baseSet 
          (setq baseLine 
            (vlax-ename->vla-object pathEnt) 
           objType(vla-get-ObjectName baseLine) 
                startPt(vlax-curve-getStartPoint baseLine) 
                3dPos 
            (vlax-curve-getFirstDeriv baseLine 
              (vlax-curve-getParamAtPoint baseLine startPt)) 
               diCount(strlen 
                (itoa 
             (apply 'max 
              (mapcar 'abs 
               (mapcar 'fix startPt))))) 
           divDid "1" 
           ); end setq 
          (repeat diCount 
       (setq divDid(strcat divDid "0")) 
       ); end repeat 
          (setq divDid(atoi divDid)) 
          (if(/= 0.0(car 3dPos)) 
       (setq XOrd(/(car 3dPos)divDid)) 
       (setq XOrd (car 3dPos)) 
       ); end if 
          (if(/= 0.0(cadr 3dPos)) 
       (setq YOrd(/(cadr 3dPos)divDid)) 
       (setq YOrd (cadr 3dPos)) 
       ); end if 
          (if(/= 0.0(nth 2 3dPos)) 
       (setq ZOrd(/(nth 2 3dPos)divDid)) 
       (setq ZOrd (nth 2 3dPos)) 
       ); end if 
          (setq 3dPos(list XOrd YOrd ZOrd)) 
      (setq exCir 
        (vla-addCircle actSp 
          (vlax-3d-Point startPt) 
          (/ pipe:exDia 2))) 
      (vla-put-Normal exCir(vlax-3D-point 3dPos)) 
      (setq cirEnt(vlax-vla-object->ename exCir)) 
      (command "_.extrude" cirEnt "" "_p" pathEnt) 
      (command "_.erase" cirEnt "")
     (if(= "Yes" delFlag) 
        (vla-delete baseLine) 
           ); end if 
       ); end foreach 
          (vla-put-Lock actLay laySt) 
          (setvar "CMDECHO" oldEcho) 
          (vla-EndUndoMark actDoc) 
           ); end progn 
          ); end if 
        (princ) 
        ); end  of c:xpipe

  7. #7
    Forum Newbie danieldalio's Avatar
    Using
    AutoCAD 2008
    Join Date
    Mar 2008
    Location
    Córdoba, Argentina
    Posts
    6

    Default

    Many thanks !!!!
    Sincerely.
    Daniel

  8. #8
    Super Member ASMI's Avatar
    Using
    AutoCAD 2008
    Join Date
    Nov 2005
    Location
    Oceanus Procellarum, Moon
    Posts
    1,427

    Default

    Excuse... XTUBE - this:

    Code:
    (defun c:xtube(/ 3DPOS ACTDOC ACTLAY ACTSP BASELINE 
              BASESET DICOUNT DIVDID EXCIR EXENT 
              EXTUBE INCIR INENT INTUBE LAYST 
              OBJTYPE OLDECHO oldWidth oldHeight 
              STARTPT XORD YORD ZORD DELFLAG *ERROR*) 
      (vl-load-com) 
    
      (defun *error* (msg) 
        (vla-put-Lock actLay laySt) 
        (setvar "CMDECHO" oldEcho) 
        (vla-EndUndoMark actDoc) 
        (princ) 
        ); end of *error* 
    
      (if(not tube:Width)(setq tube:Width 40.0)) 
      (if(not tube:Height)(setq tube:Height 37.0)) 
      (setq actDoc 
        (vla-get-ActiveDocument 
          (vlax-get-Acad-object)) 
       actLay(vla-get-ActiveLayer actDoc) 
            oldWidth tube:Width 
       oldHeight tube:Height 
            oldEcho(getvar "CMDECHO") 
       ); end setq 
      (vla-StartUndoMark actDoc) 
      (setvar "CMDECHO" 0) 
      (if(= 0(vla-get-ActiveSpace actDoc)) 
        (setq actSp(vla-get-PaperSpace actDoc)) 
        (setq actSp(vla-get-ModelSpace actDoc)) 
        ); end if 
      (setq laySt(vla-get-Lock actLay)) 
      (vla-put-Lock actLay :vlax-false) 
      (setq tube:Width 
        (getreal 
          (strcat 
            "\nSpecify external diameter <"(rtos tube:Width)">: ")) 
           tube:Height 
        (getreal 
          (strcat 
            "\nSpecify internal diameter <"(rtos tube:Height)">: ")) 
       ); end setq 
      (if(null tube:Height)(setq tube:Height oldHeight)) 
      (if(null tube:Width)(setq tube:Width oldWidth)) 
      (if(< tube:Height tube:Width) 
        (progn 
            (initget "Yes No") 
       (setq delFlag 
              (getkword "\nDelete extrude path(s)? [Yes/No] <No>: ")) 
        (if(null delFlag)(setq delFlag "No")) 
      (princ "\n<<< Select objects to extrude and press Enter >>>") 
      (if 
        (setq baseSet 
          (ssget '((-4 . "<OR")(0 . "*LINE")(0 . "CIRCLE") 
               (0 . "ARC")(0 . "ELLIPSE")(-4 . "OR>") 
               (-4 . "<NOT")(-4 . "<OR")(0 . "SPLINE") 
                    (0 . "MLINE")(-4 . "OR>")(-4 . "NOT>")))) 
        (progn 
          (setq baseSet(vl-remove-if 'listp 
                                  (mapcar 
                'cadr 
                (ssnamex baseSet)))) 
          (foreach pathEnt baseSet 
          (setq baseLine 
            (vlax-ename->vla-object pathEnt) 
           objType(vla-get-ObjectName baseLine) 
                startPt(vlax-curve-getStartPoint baseLine) 
                3dPos 
            (vlax-curve-getFirstDeriv baseLine 
              (vlax-curve-getParamAtPoint baseLine startPt)) 
               diCount(strlen 
                (itoa 
             (apply 'max 
              (mapcar 'abs 
               (mapcar 'fix startPt))))) 
           divDid "1" 
           ); end setq
    	(repeat diCount 
       (setq divDid(strcat divDid "0")) 
       ); end repeat 
          (setq divDid(atoi divDid)) 
          (if(/= 0.0(car 3dPos)) 
       (setq XOrd(/(car 3dPos)divDid)) 
       (setq XOrd (car 3dPos)) 
       ); end if 
          (if(/= 0.0(cadr 3dPos)) 
       (setq YOrd(/(cadr 3dPos)divDid)) 
       (setq YOrd (cadr 3dPos)) 
       ); end if 
          (if(/= 0.0(nth 2 3dPos)) 
       (setq ZOrd(/(nth 2 3dPos)divDid)) 
       (setq ZOrd (nth 2 3dPos)) 
       ); end if 
          (setq 3dPos(list XOrd YOrd ZOrd)) 
      (setq exCir 
        (vla-addCircle actSp 
          (vlax-3d-Point startPt) 
          (/ tube:Width 2)) 
       inCir 
        (vla-addCircle actSp 
          (vlax-3d-Point startPt) 
          (/ tube:Height 2)) 
       ); end setq 
      (vla-put-Normal exCir(vlax-3D-point 3dPos)) 
      (vla-put-Normal inCir(vlax-3D-point 3dPos)) 
      (setq exEnt(vlax-vla-object->ename exCir) 
       inEnt(vlax-vla-object->ename inCir) 
       ) ; end setq 
      (command "_.extrude" exEnt "" "_p" pathEnt) 
      (setq exTube(entlast)) 
      (command "_.extrude" inEnt "" "_p" pathEnt) 
      (setq inTube(entlast)) 
      (command "_subtract" exTube "" inTube "") 
      (command "_.erase" exEnt "") 
      (command "_.erase" inEnt "") 
      (if(= "Yes" delFlag) 
        (vla-delete baseLine) 
           ); end if 
       ); end foreach 
          (vla-put-Lock actLay laySt) 
          (setvar "CMDECHO" oldEcho) 
           ); end progn 
          ); end if 
         ); end progn 
        (princ "\nInternal diameter more or equal external diameter! ") 
        ); end if 
      (vla-EndUndoMark actDoc) 
        (princ) 
        ); end  of c:xtube

  9. #9
    Senior Member khama's Avatar
    Computer Details
    khama's Computer Details
    Operating System:
    Windows 7 Ultimate
    Computer:
    INTEL CUSTOM i5
    Motherboard:
    GIGABYTE HD55-UD3A i7
    CPU:
    CORE I5 3.2GHz
    RAM:
    6GB CORSAIR DDR-3
    Graphics:
    NVIDIA Quadro FX 3800 Graphics adapter - 1 GB - GDDR3 SDRAM
    Primary Storage:
    SAMSUNG 660GB SATA
    Secondary Storage:
    SAMSUNG 1TB
    Monitor:
    2 x DELL PRECISION 30"
    Discipline
    Mechanical
    khama's Discipline Details
    Occupation
    Project Leader, Engineering, Oil and Gas and Materials Handling
    Discipline
    Mechanical
    Details
    Mechanical is my strongest Discipline. Civil and Structural are all strengths for me too.
    Using
    AutoCAD 2011
    Join Date
    Mar 2008
    Location
    Australia
    Posts
    206

    Default

    Quote Originally Posted by danieldalio View Post
    Good night,
    I am trying to draw some pipes in 3D.
    What I want to is to create a path, let's say from 0,0,0 going 10 feet up, then 15 feet to the left, then 8 feet forward, then 3 feet down and so on.
    I want smooth corners, not 90 degrees.
    It is my understanding that I can't make a 3D polyline with arcs on it.
    I'd like to make my piping by extruding a surface along a path.
    Is it any way to make my piping other than creating segments and elbows and joining everything?
    Thanks in advance.
    Sure you can...

    type: pline (enter)
    a (enter) this will take you into the arc command for polylines
    to go back to a straight line type: L

    As far as making piping using the extrude command or sweep command. Make a chosen path, fillet the corners using this formula
    1.525 x Diameter of the pipe. It is really quite simple. I am sure you will work it out. Aternatively, you can use ready made 3d blocks from programs like Inventor or Mech-Q. That is even easier again..
    Last edited by khama; 12th Mar 2008 at 01:57 pm.
    Khama
    Bachelor of Science Mechanical Engineering
    Diploma Civil & Structural Engineering
    Diploma Engineering NDT

  10. #10
    Forum Newbie
    Computer Details
    AndrewCollins94's Computer Details
    Computer:
    Dell Precision T3400
    Discipline
    Mechanical
    AndrewCollins94's Discipline Details
    Occupation
    Apprentice
    Discipline
    Mechanical
    Details
    I work for a small independent company who deals with Fire Sprinkler Systems which vary from Care Homes to Multi-million pound companies across the United Kingdom and Europe.
    Using
    AutoCAD 2013
    Join Date
    May 2012
    Location
    Saddleworth
    Posts
    1

    Default

    Registered forum members do not see this ad.

    How do I keep this in AutoCAD XPIPE and XTUBE as they are ideal for my job?

Similar Threads

  1. User guides for Civil 3D: Roads and pipes
    By rusty in forum AutoCAD Drawing Management & Output
    Replies: 4
    Last Post: 10th Jan 2007, 03:28 pm
  2. Civil Design 3.0 Using the Pipes puldown
    By tazzvon in forum AutoCAD General
    Replies: 0
    Last Post: 1st Dec 2006, 08:24 pm
  3. Using spline with line to draw pipes in 2D
    By Siberian in forum AutoCAD Beginners' Area
    Replies: 6
    Last Post: 14th Nov 2006, 06:57 pm

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts