tzframpton Posted October 9, 2020 Posted October 9, 2020 Most steel fabrication detailers use programs like Tekla or SDS/2, which saves or exports as a DWG file of the 3D objects. These models are usually meshes and not solids. They're also usually very heavy and can buckle performance bigtime. They're great for our 3D coordination process, in which these models get exported to NWC format then loaded into Navisworks. My dilemma comes in when we decide it's best to chop up the Navisworks models by level. This is very easy to do with the Revit platform and very difficult with AutoCAD. Most of our AutoCAD users for MEP systems model one level per DWG file so it works out, where as the structural detailers send one big file and that's all you get. Does anyone know of a program that exists that can slice up a model into parts, for instance underground up to the level 1 slab, then from the level 1 slab up to the level 2 slab, etc? In my mind, it would be a simple "slice" and delete of any elements beyond the given Z-axis elevations, then that gets saved as a DWG file. Or something to that nature. If a program doesn't exists, I'm willing to pay someone to write a program for us, if a LISP routine is capable of our needs. We get too many jobs with this issue and I really want to have a solution for it. Thanks in advance. -TZ Quote
steven-g Posted October 10, 2020 Posted October 10, 2020 Can you post an example file, so we know the type of thing you are starting with. Quote
BIGAL Posted October 10, 2020 Posted October 10, 2020 Like steven-g a dwg would help but something super simple would be maybe capable, the only hard part is doing a cond covering the object types to get the z value. A couple of complications is a 3d line only use lowest value ? Solids again lowest ? Do you want to pick objects and confirm Z's ? Else would use multi getvals. It may be possible to use WBLOCK to make a new dwg or the destructive erase objects as you suggested. Just something whipped up only a starting point tested on a few objects. (defun c:wow () (setq ss (ssget)) (setq minz (getreal "enter minz") maxz (getreal "enter max z")) (repeat (setq x (sslength ss)) (setq obj (vlax-ename->vla-object (ssname ss (setq x (- x 1))))) (cond ((= (vla-get-objectname obj) "AcDbPolyline") (setq elev (vla-get-elevation obj))); this is for Lwplines ((= (vla-get-objectname obj) "AcDbLine") (setq elev (caddr (vlax-get Obj 'StartPoint)))) ) (if (and (> elev minz)(< elev maxz)) (alert (strcat (vla-get-objectname obj) " z is " (rtos elev 2 1))) ; change this line to (princ) ; (vla-delete obj) do the erase here ) ) ) (c:wow) Quote
tzframpton Posted October 11, 2020 Author Posted October 11, 2020 Thanks for the replies. I'll post some example DWG's later this week. Big Al, aren't you retired but still working as a consultant? -TZ Quote
BIGAL Posted October 11, 2020 Posted October 11, 2020 Yes to both, lake is at end of street so go fishing later. Quote
tzframpton Posted October 16, 2020 Author Posted October 16, 2020 Big Al, I'm going to PM you with a direct link to download the files. I don't mind sharing, just don't want them in a public setting. -TZ Quote
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.