Author Topic: EXTRUDE 3D polyline?  (Read 15987 times)

0 Members and 1 Guest are viewing this topic.

Mark

  • Custom Title
  • Seagull
  • Posts: 28762
Re: EXTRUDE 3D polyline?
« Reply #15 on: December 14, 2007, 01:17:46 PM »
One quick (non programmed) solution is to set the coordinate system to WCS, and trace over the 3D Pline with a 2D pline, then extrude the 2D pline. Note that the first vertex you pick when creating the 2D Pline will define the z coordinate for all vertices that follow.
That's kinda what I did in the beginning but it leaves a gap some where on the surface.

Quote
If you provide a sample with a greater number of samples it would be easier to suggest an automation route. I'm reluctant to pursue that route on the basis of two entities.

Thanks for the offer Michael but there are only a few buildings in this model. Not a big deal. :-)
TheSwamp.org  (serving the CAD community since 2003)

deegeecees

  • Guest
Re: EXTRUDE 3D polyline?
« Reply #16 on: December 14, 2007, 02:19:15 PM »
All I could achieve is a Mesh.

3d>Mesh>(pick points)>2(m)>2(n)   For each vertex to vertex between each poly.

Not sure if it's what you're looking for though.

that's better than anything I could come up with. :-)

thanks

No problemo.

SomeCallMeDave

  • Guest
Re: EXTRUDE 3D polyline?
« Reply #17 on: December 14, 2007, 11:22:38 PM »
Here is a quick (and Heineken soaked) routine that will draw 3d faces between the vertices of a selected base pline and the vertices of a copy of that bae pline copied a give distance in the z-direction (assuming all operations done in the WCS).

I'm not sure if this is what you are after, but maybe it will help.  It seems to work on the sample drawing (but not sure it will work on any others)

Code: [Select]

(defun c:3dPlto3dFace()
    (setq ent1 (car (entsel"\nSelect Base Pline: "))
          height (getreal "\nEnter Height: ")
          pt1 '(0 0 0)
          pt2 (list 0 0 height)
          maxVert (vlax-curve-getEndParam ent1Name)
          count 0
    );setq
   
    (command "copy" ent1 "" pt1 pt2)
    (setq ent2 (entlast))
   
    (repeat  (fix  maxVert )
      (setq pt10 (vlax-curve-getPointAtParam ent1 count)
            pt11 (vlax-curve-getPointAtParam ent2 count)
            pt12 (vlax-curve-getPointAtParam ent2(+ 1 count))
            pt13 (vlax-curve-getPointAtParam ent1 (+ 1 count))
            count (+ count 1)
            3dFaceList (list
                            '(0 . "3DFACE")
                            '(100 . "AcDbFace")
                            (cons 10 pt10)
                            (cons 11 pt11)
                            (cons 12 pt12)
                            (cons 13 pt13)
                       );list
       );setq
       (entmake 3dFaceList)
     );repeat
    (prin1)

 
)


mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: EXTRUDE 3D polyline?
« Reply #18 on: December 15, 2007, 10:44:16 AM »
Mark,


I might suggest that you use the surface command, or maybe even a grading feature to create your buildins as part of the surface style.  The easiest would be to use the Wall fault tool and build the wall from your feature line, the building would pop up out of the surface. Or use feature lines and the stepped offset tool.  Apply a surface style with your desired render properties when you do the surface from them.
Or extract the faces from the surface and apply materials afterward.

Heh, one could even use a corridor in a strange way to model a building......
Be your Best


Michael Farrell
http://primeservicesglobal.com/

mjfarrell

  • Seagull
  • Posts: 14444
  • Every Student their own Lesson
Re: EXTRUDE 3D polyline?
« Reply #19 on: December 18, 2007, 07:35:49 PM »
I tested the above suggestions. The feature line method as a wall fault produced the easiest results. The corridor method has some promise but is far more complicated than worth.
Be your Best


Michael Farrell
http://primeservicesglobal.com/

Jeff_M

  • King Gator
  • Posts: 4094
  • C3D user & customizer
Re: EXTRUDE 3D polyline?
« Reply #20 on: December 18, 2007, 08:03:05 PM »
Good suggestions, Michael, but he's not using C3D. In fact, I'm not even sure if he's using the LDD2004 as shown in his sig, since he seems to wanting to try the 3dface route.

Mark, If you can use LDD for this, go to the Terrain Menu, 3dpolylines, and use the Create Curb. You must use an offest, but an offset of 0.001 works just fine. The polyline tools could then be used to create your roof as well. Then all you need do is add these to your surface as breaklines. Basically what MJF was suggesting with the LDD tools instead.