CompuServe Thread

#Not enough RAM

6 messages in this thread
#187689From: David RhotenAug 28, 1995 2:00 PM
>>17+ MB DXF file It sounds like you're using an ASCII DXF file. If this is coming from AutoCAD (as opposed to a non-Autodesk program), you can pick the "Binary" option and get a MUCH smaller file… dramatically smaller. And it'll be quicker to load. Also, as mentioned, you might need to break any massively large or complex item up if there's a chance it'll import with over 64,000 faces. Dave
#187949From: Jez EMINAug 29, 1995 4:37 PM
Thanks Guys for your input, I did try converting it to a Binary file (this reduced it to 9MB) but I still couldn't load the drawing (the funny thing is that I have loaded DXF files around the 15MB range successfully before). I think I *have* got "some massively complex item" (I had recently included some AME solids – about 1000 – into my drawing. These were'nt in my previous 15MB DXF file). How do I find out if over 64,000 faces are being exported and how do I break up such an item (AutoCAD v12 win) ? Thanks for your help. Jez P.S. I've just tried exporting the recently created AME solids on their own and 3DS will not load them. I guess I must have the >64,000 faces problem. Please help.
#188063From: David RhotenAug 30, 1995 9:47 AM
When you say you tried DXFing out _just_ the AME solids, but that they wouldn't load, what _exactly_ happened? Everything went fine, but there was no geometry in the 3DEditor when you were done, or 3DS locked up, or what? The more specifics you can give the better. Pardon if you know all this, but to DXFOUT an AME solid, you first need to set the SOLWDENS ACAD variable to control the mesh complexity, and then SOLMESH the solids. Also, you can not DXFOUT by _entity_, as the meshes are blocks, I believe, by default, and DXFOUT by entity does not write out blocks. So you would either need to explode the mesh-blocks first, or not use the "Entity" option in DXFOUT. As far as locating the allegedly over-large entity, try DXFing out each layer by itself. Remember, you can't use the entity option if you want blocks to export, so you'll have to either: a) Explode all blocks, and then turn all layers off but one, and do a DXFOUT/Enities/<select all visible items>/Binary. Then turn off the visible layer and turn on another to repeat the excercise, and so on. -or- b) Load the "dellayer" LISP routine that comes w/ ACAD. Save your DWG. DELLAYER all layers but one. DXFOUT/Binary. Either undo back to before you used DELLAYER, or reload the DWG. Repeat for each layer. Using either of these methods, you will then have a separate DXF for each DWG layer. As you try bringing each of these into 3DS, you will find which ones won't import. If there are some layers which have _obviously_ low entity counts, then you could write those layers out together, saving you some work. What is the drawing of, if I may ask? Dave
#188139From: Jez EMINAug 30, 1995 3:23 PM
Firstly, thanks David for your lengthy reply, a sign that you genuinely want to help !!! Please allow me to give you some background to my hardware/software, me and my problem ! I have a 486/DX4/100, 16MB ram and I have AutoCAD v12 windows and 3DSv4. I am trying to teach myself how to use these wonderful products, but will be attending night school to learn AutoCAD next week (I have been teaching myself for about 1 month in the evenings/weekends). As a way of teaching myself, I set myself the target of drawing – as accurately as possible – a replica of my mountain bike (in 3d). The plan was (and still is) to draw the bike in Autocad and then export it to 3ds for rendering and possibly animating (something simple like having a camera circle the bike). When I first started drawing the bike in Autocad, obviously my knowledge of the software was a lot less then than it is now and some of the objects I drew back then were drawn "inefficiently" (sorry I can't think of a better word). By inefficient I mean, for example, drawing the down tube of the frame of the bike with SURFTAB1 and SURFTAB2 values unneccesarily high. At that time I didn't consider that that kind of oversight would cause me problems later on (but slow redraws and regens etc have taught me otherwise !). I would have thought that these high values would have contributed to the large size of the drawing but I am not all together sure. The reason I mention my SURTAB1/2 problem is that I've also done a similar thing with setting my wire density to 12 all the time (rather than setting it to a value neccessary to do the job) for other entities. My inexperience at the time meant that I didn't know what a suitable value for SOLWDENS ought to have been. Which brings me to my problem !! At one point my bike was looking great (I'd say 75% finished) but over the weekend I decided to replace the bike's "slick" tyres which I'd drawn (at that time with my knowledge then – plines amd revsurf) with what was really on the bike, i.e. tyres with real tread blocks (my knowledge now included Pline/extrude/solwire/solmesh). Hence the "1000 new entities" in my drawing (the tyre treads). As my knowledge of AutoCAD continues to grow, I have three regrets about the drawing of my bike; 1) I wish I had not created certain entities with such high values of SURFTAB1/2 2) I wish I had not created certain entities with such high values of Wire Density. 3) That I never created one layer and called it "temp" (purely to be used for constructing). Number 2) I think I can get away with and redo but 1) would be a nightmare (though not impossible) to redo (because I erased all construction lines to create them). When I said in my earlier message that 3DS would not load the 1000 or so AME solids, what actually happened was that 3dS just gave the message "Currently loading 1 Object from file, please wait" – and wait I did (around 45 minutes before I concluded that this wasn't working). David, thanks for your help, I understand what you are saying but I still don't know how to identify if I am trying to export something that has over 64,000 faces. Please explain ! I've never tried "bringing each layer" into 3ds (by this do you mean that I could import say layers called Tyres, brakes, wheels etc and end up with a bike in 3ds – if so how do I do that in 3ds. Or are you merely saying do this so that I can identify which layer is giving me problems ?). Many thanks for your help and have a pleasant day, Jez
#188341From: David RhotenAug 31, 1995 1:56 PM
Jez: Okay. First, I _believe_ (don't quote me on this) that you can reset the SOLWDENS variable and re-mesh any AME-solid w/ the new setting. You _may_ have to delete the mesh-block first, but try it w/o deletion and see if that works. (Only try the deleting of the mesh IF you still have the AME data underneath (ie have not solpurged it out). Next, the most important thing to do when going ACAD–>3DS is organizing your drawing elements by LAYER! I couldn't tell from your message if you've done this or not, but your supposition was correct: have a tyres layer (I guess I'll need to watch it and add "u"'s to all my words like "color" <g>), and a seat layer, and a rims layer, etc. Then, obviously, when you import the DXF into 3DS objects by "LAYER", you will get a "tyres" object, and a "rims" object and a "seat" object, etc. (Note that if both tyres are on the tyres layer, then they will each be a 3DS element of the same object. You can separate them within 3DS (Create/Element/Detach) or you could have had two different ACAD layers (tyre01 and tyre02, say). The other advantage(s) of this are that all your ojects are smaller, your material and smoothing assignments work better and easier, and in this case, where you suspect that one item is too large, you can begin to isolate and determine which one it is by export/importing each layer separately. This is a little more work, and so maybe only something you'd do when you run into the >64k problem. (By the way, I wouldn't be so sure that the 45minutes you gave 3DS to import the DXF was enough to determine failure! I'd bet that if you gave it substantially more time, you'd either get an error message, or it would actually work.) Regardless of whether you've got each part (frame, tyres, etc) on its own layers in AutoCAD, do a SAVE. Now, use the WBLOCK command and, specifying a file name of "tyres" (and no block name and a base point of 0,0,0), pick all the tyre entities. Now, repeat, but using a file name of "frame" and picking all the frame parts, etc. When you've gotten through all the parts, DON'T SAVE. Now you'll have separate files, each named after the parts it contains (and, of course, the original file). Open each part-DWG in turn, and DXFOUT/binary. Start 3DS and Open one of the DXF files (let's say the frame file). If it imports okay, then use the Merge option to open the next DXF file (say "tyres"). The items will all come in in their proper relationships as long as the base-point you specify for each wblock is identical! Any items that fail to import will do so in a much shorter time. Once you have found the offending piece, you can open that part-DWG back up in ACAD, and wblock out half of it, and then create a separate DXF for each half (thus creating maybe a frame01 and a frame02, if the frame is the problem). Whew. I've got typing cramps! <g> Let me know if I've left anything out, or we're miscommunicating something, and good luck. Dave
#188345From: Jez EMINAug 31, 1995 2:28 PM
David, Thank you very much for your reply, I understood everything you said perfectly ! I have, in AutoCAD already drawn my bike using different layers (eg. Frame, Forks, Seat_post, Cogs, Tyres etc). In fact I do know that it is the 1000 "little AME_solids" (i.e. the tyre treads) causing the problem as I did try exporting only those to 3ds and they would'nt load (that was where I got the 45 minutes wait and gave up). What I definitely am going to do however is to create a seperate DWG for each of the components as you explained (i.e. One dwg for Wheels, one DWG for Frame etc). It will certainly make using AutoCAD quicker and more organised than what I have been doing so far. Incidently I forgot to mention to you that when I tried to convert the tyre treads only from DXF to 3DS, the utility DXF3DS.EXE couldn't handle it (so there is something definitely wrong with my Treads, I feel). I will do all that you have suggested and I'll certainly let you know how I've got on. Bye for now and many, many thanks for your interest and help, Jez