Extruding a solid to another solid/surface - V14 or beyond?

I'm still using V13 platinum but was wondering if V14 has the ability to easily extrude solids/profiles to another solid or surface. Being in the vessel/piping industry it would come in handy to be able to do this. For example: adding pipe nozzles to a pressure vessel/tank. If V14 cannot, then perhaps those "in the know" can say if V15 or beyond will have this added to the toolset. Would be a real shot in the arm so to speak.

Comments

  • Hi Tim, 

    From a quick read through of this post, https://forum.bricsys.com/discussion/17053 I think it should be possible using the tool/program mentioned therein, the tricky part will be getting the constraining curves drawn properly...
  • The solids connecting the sphere and the cylinder in the attached image, were created using the dmextrude command option 'Limit' to extrude a square and a rectangle towards a 'limit' face.
    I think this option was already available in V13.
    Is this the shot in the arm you'ld be looking for?

    imageExtrudeLimit.PNG
  • Thanks Hans, for some reason I never noticed the limit option before. Maybe in the future releases they can add some options on solids editing where you can trim a solid by another solid without having a use a 2D entity for a cutting plane or extrude an existing solid to another surface or solid. I know there is only so much you can work on for each release but it never hurts to ask. Thanks again for chipping in!
  • Could you give an example of a situation when you would want to use a tool "to trim a solid by another solid without having to use a ...   ": it is not clear to me what is requested.
  • Mech-Q can do it all!!!
  • Attached is pic showing what might be an example. Say you imported this pipe/flange and centered it up on the vessel head as shown, if no internal projection was desired you could just simply trim it by the head surface. You have to keep in mind I'm mostly a 2D guy so I'm thinking we trim/extend by lines & etc. why not be able to do the same with solids? I don't even know if the other modelers (parametric or direct) have this ability or not. Thanks for responding.

    image3D-head nozzle.png
  • Could perhaps best be implemented by giving the SLICE command a SURFACE option. That's for sure a valid feature request, but the fact that BricsCAD currently has no surface-modeling capabilities makes it not very likely to be seen sometime soon...
  • Hi Tim,
    a little bit off topic but ... how do you create the vessel head shown in your picture ??

    Thanks P
  • Knut is right, BricsCAD does solid modeling, not surface modeling.
    So let's drop the 'sur' from surface, and use the desired face of the head of the vessel (assuming it is modeled as a thin-wall solid)

    Trimming takes only two steps:
    1. select the disc-shaped end face of the pipe (at the right in your image) and dmpushpull it somewhere to the left, so it no longer protrudes into the vessel.
    2. select the end face again and now dmextrude it, selecting the head-face of the vessel as the limit.

    Maybe a more simple 'trim' procedure can be found, but right now I don't see how to reduce it from two steps to one. Somehow you would need a second operation to get rid of the leftover length of pipe that extends beyond the vessel head, 'trim' (or subtract) would only remove the pipe partially.
  • @ Hans:

    Honestly, I have to admit I did not notice this functionality yet... I think it is pretty cool.

    Just one thing could be improved: if you select surfaces from several solids for the extrude and then use the "Limit" option, currently only the first selected surface will be processed.

  • Hi Tim,

    the TRIM concept between 3D solids in 3D space can have many different interpretations...
    I have programmed 2 Lisp  commands SOLSPLIT and SOLTRIM  as extensions to the native INTERFERE command.
    Load the Lisp code and try them to see the alternatives of "trimming" or "splitting" 3D solids...
    Have a look at the screenshots below.
    Here and in the attachements you find the lisp code :

    [code]
    ;;; b-Trim

    ;;; trims two 3D solids
    ;;; obj1 = is the trimming object... the object that trims...will not change   
    ;;; obj2 = is the object to be trimmed... will eventually be changed       

    ;;; test: (b-Trim (car(entsel)) (car(entsel)) )

    (defun c:SOLTRIM () (b-trim (car(entsel "\nSelect 1st trimming solid :")) (car(entsel "\nSelect 2nd solid to be trimmed :")) ))

    (defun b-trim ( obj1 obj2 / isol )
     
      ; if ENAME is passed convert to VLAobject
      (if (= (type obj1) 'ENAME)
        (setq obj1 (vlax-ename->vla-object obj1))
        )
      (if (= (type obj2) 'ENAME)
        (setq obj2 (vlax-ename->vla-object obj2))
        )

      (setq isol (vla-CheckInterference obj1 obj2 :vlax-true))
     
      (if isol
        (progn
          (vla-boolean obj2 acSubtraction isol)
          T
          )
        nil
        )
      )

    ;;; b-Split

    ;;; splits TWO 3D solids that interfere into THREE 3D Solids as follows:    
    ;;; obj1 - inteferenceObject, obj2 - inteferenceObject, and inteferenceObject
    ;;; obj1 = is the 1st object   
    ;;; obj2 = is the 2nd object    

    ;;; SOLTRIM : (b-split (car(entsel)) (car(entsel)) )
    (defun c:SOLSPLIT () (b-split (car(entsel "\nSelect 1st solid :")) (car(entsel "\nSelect 2nd solid :")) ))

    (defun b-split ( obj1 obj2 / isol isol1 isol2)
     
      ; if ENAME is passed convert to VLAobject
      (if (= (type obj1) 'ENAME)
        (setq obj1 (vlax-ename->vla-object obj1))
        )
      (if (= (type obj2) 'ENAME)
        (setq obj2 (vlax-ename->vla-object obj2))
        )

      (setq isol (vla-CheckInterference obj1 obj2 :vlax-true))
     
      (if isol
        (progn
          (setq isol1 (vla-copy isol)
            isol2 (vla-copy isol)
            )
          (vla-boolean obj1 acSubtraction isol1)
          (vla-boolean obj2 acSubtraction isol2)
          T
          )
        nil
        )
      )
    [/code]


    Knut,
    You find the SLICEX command in my free plugin below in order to slice any arbitrary solid by any arbitrary surface
    for V12, V13 and V14 of Bricscad.  Just use it while waiting for the native command !

    http://forum.bricsys.com/discussion/17053#22815


    imageSolSplit(2).jpg

    SolSplitTrim(2).LSP

    imageSolTrim(2).jpg

    SolSplitTrim(2).dwg

  • Paul - The head was created from a 2D profile/region revolved about a centerline. Recently I found out you can used regions for extruding & revolving, so much easier than the pedit command.

    Hans - Really what I was asking for is redundant now since you've pointed out the limit option. Didn't mean to open up a can of worms but thanks for the tip!

    Konstantin - thanks for the lisp and the tip, I'll test it out!

  • Hello Konstantin,

    this is looking great again - the stuff you write is exactly what I would like to see in BricsCAD, just don't understand why they don't hire you:)

    But unfortunately, I do not have access to this goodness, since i just have a linux license/installation (e.g. VLA-CHECKINTERFERENCE is not implemented yet).
  • Hello Knut,

    running Linux and Windows Version in paralell could be possibly a solution for you,
    or running the Win Version in a VMware box under Linux or vice versa a Linux VM box within Windows .
    I think functionality is more important than operating systems nowadays...!


  • Yes, but as far as I understand, the licensing is OS-specific. And I won't go through the hassle of setting up a windows install just for some days of trial...
  • Well this is generally an interesting question concerning the licensing system of Bricscad !
    As far as you run the Linux and the Windows license on the same machine and propably
    the one virtually within the other, could it be that you need only one   license (.lic file)  ?????
    Check it out ....
  • Thanks for the tip, sounds not impossible - at least, the license file does not mention the OS explicitly...
  • So I should hurry and implement the 2 (vla-checkInterference) and (vla-boolean) as Fast-COM for Linux also :-)
    Many greetings to all !
  • @Torsten
    This would of course be my preferred solution.
    Keep up the good work, and an eye on what Konstantin is doing!
  • To save you the time checking it out: a BricsCAD license is OS specific. Even if the hardware is the same, the .lic file does mention the OS, e.g. platforms="x86_w x64_w" specifies that the license is valid for Windows 32 and 64 bit.
  • OK, thanks for clarifying.
    I hope Bricsys will lift this restriction with V15...
This discussion has been closed.