UserID Posted September 21, 2017 Share Posted September 21, 2017 Hello everyone I am using AutoCAD 14 in my company, and currently working on a project containing a complex blocks of buildings and walls. some walls are complicated, and the customer provided only an AutoCAD drawing for the whole building in a polyface meshes. I need to convert the walls to 3d Solid entities so I can slice them and make through sections. I saw there are a lot of threads speaking of the same here , but believe me, nothing worked with my case. I put one of the walls right link to dwg here so you may see what I am facing. p.s.: when I try to convert the big wall to a mesh or to solid using CONVTOSOLID command the computer got frozen and fatal error occurred!. https://wetransfer.com/downloads/6f43c582453b03668c26e77ff31c266620170921141803/7fcef9c7b0a90ec7f82657c56b58eedd20170921141803/c20c67 Thank you in advance. Regards Quote Link to comment Share on other sites More sharing options...
ReMark Posted September 21, 2017 Share Posted September 21, 2017 I tried a couple of different ways but they both ended with the explanation "cannot be converted" or it failed to convert because it was not watertight. Maybe someone else will have better luck. Quote Link to comment Share on other sites More sharing options...
David Bethel Posted September 21, 2017 Share Posted September 21, 2017 A PFace mesh is a very odd duck. I believe converting it to a solid is an almost impossible task. I can convert standard meshes into PFaces meshes. Not the other way around. -David Quote Link to comment Share on other sites More sharing options...
ReMark Posted September 21, 2017 Share Posted September 21, 2017 I converted it to a bunch of solids by first exploding the mesh to 3D faces then using the Thicken command followed by Convert-to-Solid. Unfortunately I could not union it into a single entity. Quote Link to comment Share on other sites More sharing options...
UserID Posted September 22, 2017 Author Share Posted September 22, 2017 I see. Thank you both. Using Revit, a friend of mine succeeded to convert it to a bunch of surfaces. I think that's a limit for this poor structure. Wisam Quote Link to comment Share on other sites More sharing options...
David Bethel Posted September 22, 2017 Share Posted September 22, 2017 Amazingly I think yours can actually be done. A very complex operation Explode the PFACE MESH Convert each 3DFACE into a general 3D mesh (39,000 +- ) see code below Convert each mesh to a solid Union all soilds This is only possible because all points are coincidental and form a closed model [b][color=BLACK]([/color][/b]defun c:3df2mesh [b][color=FUCHSIA]([/color][/b]/ ss i en ed p1 p2 p3 p4[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"3DFACE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq i 0[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\t\t\r"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]prin1 en[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b] p1 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p2 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p3 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 12 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p4 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 13 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"POLYLINE"[/color][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 66 1[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]list 10 0 0 0[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 70 16[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 71 2[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 72 2[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p1[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p2[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p4[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p3[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"SEQEND"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]1+ i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] -David Quote Link to comment Share on other sites More sharing options...
Grrr Posted September 22, 2017 Share Posted September 22, 2017 Nice one David! Theres a small addition that can be done - add an option to erase the source 3DFaces: Add this inside the loop: (setq sL (cons en sL)) Add this after the loop: (and sL (= "Yes" (progn (initget "Yes No") (cond ( (getkword "\nErase source ? [Yes/No] <Yes>") ) ("Yes")))) (mapcar 'entdel sL)) Ofcourse don't forget to localise the "sL" variable. Thats a handy feature for such kind of routines (I noted this from Lee's outline program). Quote Link to comment Share on other sites More sharing options...
UserID Posted October 4, 2018 Author Share Posted October 4, 2018 On 9/22/2017 at 1:55 PM, David Bethel said: Amazingly I think yours can actually be done. A very complex operation Explode the PFACE MESH Convert each 3DFACE into a general 3D mesh (39,000 +- ) see code below Convert each mesh to a solid Union all soilds This is only possible because all points are coincidental and form a closed model [b][color=BLACK]([/color][/b]defun c:3df2mesh [b][color=FUCHSIA]([/color][/b]/ ss i en ed p1 p2 p3 p4[b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]and [b][color=NAVY]([/color][/b]setq ss [b][color=MAROON]([/color][/b]ssget '[b][color=GREEN]([/color][/b][b][color=BLUE]([/color][/b]0 . [color=#2f4f4f]"3DFACE"[/color][b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]setq i 0[b][color=NAVY])[/color][/b] [b][color=NAVY]([/color][/b]while [b][color=MAROON]([/color][/b]setq en [b][color=GREEN]([/color][/b]ssname ss i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]princ [color=#2f4f4f]"\t\t\r"[/color][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]prin1 en[b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq ed [b][color=GREEN]([/color][/b]entget en[b][color=GREEN])[/color][/b] p1 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 10 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p2 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 11 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p3 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 12 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b] p4 [b][color=GREEN]([/color][/b]cdr [b][color=BLUE]([/color][/b]assoc 13 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"POLYLINE"[/color][b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 66 1[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]list 10 0 0 0[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 70 16[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 71 2[b][color=BLUE])[/color][/b] [b][color=BLUE]([/color][/b]cons 72 2[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p1[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p2[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p4[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"VERTEX"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 10 p3[b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]cons 70 64[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]entmake [b][color=GREEN]([/color][/b]list [b][color=BLUE]([/color][/b]cons 0 [color=#2f4f4f]"SEQEND"[/color][b][color=BLUE])[/color][/b][b][color=BLUE]([/color][/b]assoc 8 ed[b][color=BLUE])[/color][/b][b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b] [b][color=MAROON]([/color][/b]setq i [b][color=GREEN]([/color][/b]1+ i[b][color=GREEN])[/color][/b][b][color=MAROON])[/color][/b][b][color=NAVY])[/color][/b][b][color=FUCHSIA])[/color][/b] [b][color=FUCHSIA]([/color][/b]prin1[b][color=FUCHSIA])[/color][/b][b][color=BLACK])[/color][/b] -David Thank you again @ David, why I have the code looking like mumbo-jumbo lines, am I missing something here? 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.