gtwatson Posted May 23, 2011 Share Posted May 23, 2011 I have exported a 3D stick figure to a DXF (these are just lines and no solid objects) and imported it into AutoCAD 2006 (2012 ordered but not installed yet). I normally draw in 2D and want to get the 3D lines flattened, but I am having trouble. When I issue the FLATTEN command and say yes to remove hidden lines, it takes a while and I do get a 2D DWG, but the lines on the back side of my 3D lie on top of each other. Is there a way to make a block of the lines that lie on a plane and paste them into a new DWG? I'll try to attach a screen shot of my 3D model (it is a lattice transmission tower). Quote Link to comment Share on other sites More sharing options...
ReMark Posted May 23, 2011 Share Posted May 23, 2011 You might try using the FLATSHOT command. Quote Link to comment Share on other sites More sharing options...
Cad64 Posted May 23, 2011 Share Posted May 23, 2011 You will have to wait until you install 2012 if you want to use Flatshot. It's not available in 2006. Only 2007 and later. Quote Link to comment Share on other sites More sharing options...
nestly Posted May 23, 2011 Share Posted May 23, 2011 I'm not sure FLATSHOT will flatten 3D lines anyway. (at least mine doesn't) "Command: flatshot There are no solids or surfaces that can be projected." If the problem is just overlapping/duplicate lines, use OVERKILL after FLATTEN if you have Express Tools installed. Quote Link to comment Share on other sites More sharing options...
gtwatson Posted May 24, 2011 Author Share Posted May 24, 2011 I do have 2012 loaded on another PC and I tried flatshot and I got the error nestly posted. The problem with flatten is that it takes the 3rd coordinate of my lines and makes them 0.0 which works OK if there are only lines that are on the 4 faces of my model. My problem is that I have several lines that go from the front face to the side face and I don't need them to be in the flattened result. My main problem is that I am self taught on AutoCAD and know how 2D works and can draw lines and circles and then put text on them, but I don't know how 3D works in ACAD. I normally just work in model space and draw structures full size and then plop down a title block and shrink the part down to fit inside the title block and put dimensions on the part. It has worked fine since the 1980's but I am stuck when I have to deal with lines in 3D. I'm a Structural Engineer and I model transmission towers in 3D all the time and am used to working in other structural software. I'm not sure how to do it in ACAD, but I need to define a bounded plane that contains the lines on a face and then make a block of only those lines (with their endpoints) so I can paste the plane into a 2D DWG that I am used to dealing with. I do plan to take some ACAD classes and learn 3D modeling but the screen shot I posted shows the top part of my 312 foot tall lattice tower that I need to send to the structure detailer and I need to define all the angle sizes, bolts and connection details on this one line schematic. Quote Link to comment Share on other sites More sharing options...
danellis Posted May 24, 2011 Share Posted May 24, 2011 Try looking into Hidden Line Projection. I can tell you where to find it in R2010 and later, which sadly wouldn't be much help to you. I hope it's *in* R2006! dJE Quote Link to comment Share on other sites More sharing options...
ReMark Posted May 24, 2011 Share Posted May 24, 2011 You could try Lee Mac's Superflat program as mentioned here: http://www.cadtutor.net/forum/showthread.php?58889-3d-to-2d-lisp&highlight=flatten Take a look at this thread too where a number of ways are discussed to flatten 3D geometry. http://www.cadtutor.net/forum/showthread.php?59342-Please-help.-How-to-convert-3D-drawing-to-2D-drawing&highlight=flatten Quote Link to comment Share on other sites More sharing options...
gtwatson Posted May 24, 2011 Author Share Posted May 24, 2011 Try looking into Hidden Line Projection. I can tell you where to find it in R2010 and later, which sadly wouldn't be much help to you. I hope it's *in* R2006! dJE I tried the HIDE command but since the drawing is just a bunch of lines in 3D space and contains no solid objects, it didn't do anything. Quote Link to comment Share on other sites More sharing options...
gtwatson Posted May 24, 2011 Author Share Posted May 24, 2011 (edited) You could try Lee Mac's Superflat program as mentioned here: http://www.cadtutor.net/forum/showthread.php?58889-3d-to-2d-lisp&highlight=flatten Take a look at this thread too where a number of ways are discussed to flatten 3D geometry. http://www.cadtutor.net/forum/showthread.php?59342-Please-help.-How-to-convert-3D-drawing-to-2D-drawing&highlight=flatten I tried the Superflat LSP and it worked pretty good. I also ran Overkill and got rid of the lines that were on top of each other. The Superflat worked on the XY plane and I got the wide face of my tower model, but I would also like to get the narrow face that is in the YZ plane. I have pasted the Supflat code below. If I want the model flattened on the YZ plane can I change the "list 0 0 n " to "list n 0 0" ? Or what would I change to flatten the X coordinates to 0.0 (defun c:Supflat (/ ss ssObj j) (vl-load-com) (vlax-map-collection (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) '(lambda (x) (vla-put-lock x :vlax-false))) (if (setq ss (ssget "X" (list (cons 410 (getvar "CTAB"))))) (progn (setq ssObj (mapcar 'vlax-ename->vla-object (mapcar 'cadr (ssnamex ss))) j 0) (foreach Obj ssObj (foreach n '(1e99 -1e99) (if (vl-catch-all-error-p (vl-catch-all-apply '(lambda (x) (vla-move x (vlax-3d-point (list 0 0 0)) (vlax-3d-point (list 0 0 n)))) (list Obj))) nil (setq j (1+ j))))) (princ (strcat "\n" (rtos (/ j 2.0)) " Objects Flattened."))) (princ "\n<!> No Objects Found <!>")) Edited October 28, 2011 by SLW210 Add Code Tags!! Quote Link to comment Share on other sites More sharing options...
nestly Posted May 24, 2011 Share Posted May 24, 2011 I'm not familiar with superflat, but FLATTEN just projects your model onto the current viewing plane, so to create another view, just make as many copies of your model as the number of views you want before using FLATTEN the first time, and then rotate your view to the side you want to project. You will have to rotate the projections back to plan view after they're created. (also works for making isometrics) Quote Link to comment Share on other sites More sharing options...
gtwatson Posted May 24, 2011 Author Share Posted May 24, 2011 (edited) I tried the Superflat LSP and it worked pretty good. I also ran Overkill and got rid of the lines that were on top of each other. The Superflat worked on the XY plane and I got the wide face of my tower model, but I would also like to get the narrow face that is in the YZ plane. I have pasted the Supflat code below. If I want the model flattened on the YZ plane can I change the "list 0 0 n " to "list n 0 0" ? Or what would I change to flatten the X coordinates to 0.0 (defun c:Supflat (/ ss ssObj j) (vl-load-com) (vlax-map-collection (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) '(lambda (x) (vla-put-lock x :vlax-false))) (if (setq ss (ssget "X" (list (cons 410 (getvar "CTAB"))))) (progn (setq ssObj (mapcar 'vlax-ename->vla-object (mapcar 'cadr (ssnamex ss))) j 0) (foreach Obj ssObj (foreach n '(1e99 -1e99) (if (vl-catch-all-error-p (vl-catch-all-apply '(lambda (x) (vla-move x (vlax-3d-point (list 0 0 0)) (vlax-3d-point (list 0 0 n)))) (list Obj))) nil (setq j (1+ j))))) (princ (strcat "\n" (rtos (/ j 2.0)) " Objects Flattened."))) (princ "\n<!> No Objects Found <!>")) I changed the "list 0 0 n" to "list n 0 0" in the piece of code for Supflat and called it SupflatX and it worked, so I got lucky. (vla-move x (vlax-3d-point (list 0 0 0)) (vlax-3d-point (list n 0 0)))) Edited October 28, 2011 by SLW210 Quote Link to comment Share on other sites More sharing options...
gtwatson Posted May 25, 2011 Author Share Posted May 25, 2011 I got the 3D flattened using the Supflat and my modified SupflatX along with Overkill, but I now need to cut sections through my 3D model. I've been reading about UCS and selecting 3 points to make a new UCS, but I wonder if it is possible to select the lines that reside on my new UCS plane (either manually or using LISP) and make a block of those lines so I could insert them into a new DWG. Is there a way to select lines that lie on the new plane? TIA Quote Link to comment Share on other sites More sharing options...
gtwatson Posted May 25, 2011 Author Share Posted May 25, 2011 After a little reading, I found that I can select a plane using 3 points, go to the properties dialog box, do a quick select, and select lines that have Delta Z equal to 0.0. This produces a selection set that only contains lines on my plane and I can copy the set to a block and paste it to a new drawing. Quote Link to comment Share on other sites More sharing options...
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.