Graniteguy Posted June 10, 2009 Posted June 10, 2009 This will be my first post ever so please forgive any faux pas on my part. I work for a granite countertop installer and we need a way to make estimates simpler. I was hoping to create some Dynamic blocks and link them to a table this way pricing can be adjusted as the drawings are changed (naturally, people want multiple options). However, when I do the data extraction, I end up with only the length but no depth (see first image). I need both to figure out the square footage and when I complete the table it gives me neither (see second image). Did I miss a step when creating the block? Or am I trying to use it in a way that can't be done? I'm using AutoCAD 2008 on a HP Laptop with Windows XP if that's useful. This site has had some great answers for me in the past so I hope someone can help me out. Quote
BIGAL Posted June 11, 2009 Posted June 11, 2009 Dont use tables a lot but look into "fields" in Help. In a table you should be able to set a variable in your table to be the dimension length using fields. May be search the lisp VBA section here. Quote
chelsea1307 Posted June 11, 2009 Posted June 11, 2009 When using data exraction you should at some point get the option of what things you want to extract, make sure you select all the ones you want to extract, the image you show is past this point of selecting Quote
JoeC Posted June 11, 2009 Posted June 11, 2009 I don't use tables much either, but I have used the EATTEXT command for various data extraction purposes. It is exportable to excel, and from there you can manipulte/calculate in a variety of ways. This may be more time consuming that you wanted, but it may be worth playing with. Also, Autocad Mecahnical is capable of creating a BOM (bill of materials) that can have formulas added to it to plug in your pricing...maybe a thought for the future if you upgrade from 2006. Quote
BIGAL Posted June 12, 2009 Posted June 12, 2009 Are you drawing just the same shape all the time ie rectangs etc If so I would write a lisp or VBA that asks for start pt, then repeats length and width and auto writes the quantity into a table this is much faster than manually drawing each one. Note I would also label each panel. I have VBA code that updates multiple lines of schedule (not a table but looks the same) It does not matter where you put the schedule it updates automatically. It excepts any name for say panel 1,2, 3A etc its all interactive create new or update existing. It could also add the answers up etc total area. If you just want to do one at a time with details under then even simpler. Can you elaborate a bit more how many in a drawing happy to provide code. Quote
Graniteguy Posted June 15, 2009 Author Posted June 15, 2009 I was out of town for awhile so my apologies for the late response. I tryed looking up the fields under HELP but I'm not sure how I would apply them to my situation. As for the selection option, I does ask me if I want to include the depth in the table but I end up with blank cells either way. I will try the excel option next. To answer your question BIGAL, yes the countertops will be mostly rectangles if not always. We have to square off all odd shapes anyway. I have no lisp experience, what so ever, so if you have time to provide a code that would be great. I'd say there's about 12-17 shapes with countertops and backsplashes. Or if you know where I could find a tutorial about lisps that would be helpful too. Thanks for the ideas everyone. Quote
BIGAL Posted June 17, 2009 Posted June 17, 2009 This is probably a good starting point for learning lisp etc what you want to do is pretty simple so rather than just me doing all the research and just providing an answer and you still dont know how its works. As for say a rectangle just ask for length and width (getreal) and a starting point, ; draw a box note angles are in radians 90=1.5708 (setq pt1 (getpoint "\nPick bottom left")) (setq len (getreal "\nEnter length")) (setq wid (getreal "\nEnter Width")) (setq pt2 (polar pt1 1.5708 wid)) (setq pt3 (polar pt2 0.0 len)) (setq pt4 (polar pt3 4.712 wid)) (command "line" pt1 pt2 pt3 pt4 "C" "") Next step insert a block with say a label and the length and width either shown or not shown up to you, add dimensions using pts as above dim hor pt1 pt4 pt5 (pt5 is offset from object)Following on search here for lisp code "creating a block" You can add your own pull down menus or I would pick from a icon menu etc which lisp code to run to match shape. As a start maybe one lisp for each shape you only need the block code once just allow for all parameters at start "L" shape has 2 lengths and widths. Even just autodrawng shapes will save you an immense amount of time show the boss how good you are. Quote
Graniteguy Posted June 20, 2009 Author Posted June 20, 2009 Thanks BIGAL, appreciate the help. Lisp has been my biggest weakness on AutoCAD so I'm glad this will give me a chance to work on it. I'll try it out and post my progress. Quote
BIGAL Posted June 22, 2009 Posted June 22, 2009 Heres another to get you started ; draw a box with curved end note angles are in radians 90=1.5708 (setq pt1 (getpoint "\nPick bottom left")) (setq len (getreal "\nEnter total length")) (setq wid (getreal "\nEnter Width")) (setq pt2 (polar pt1 1.5708 wid)) (setq pt3 (polar pt2 0.0 len)) (setq pt4 (polar pt3 4.712 wid)) (command "line" pt1 pt2 pt3 pt4 "") (setq len2 (/ len 2.0)) (setq pt6 (polar pt1 0.0 len2)) (command "arc" "c" pt6 pt1 pt4) play with this and can have all 4 options up/down left/right Quote
Lee Mac Posted June 22, 2009 Posted June 22, 2009 Give this a shot GraniteGuy, [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:granite [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* doc spc ss bPt lst tblObj i[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-load-com[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#ff00ff]"*BREAK,*CANCEL*,*EXIT"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Error: "[/color][/b] msg [b][color=#ff00ff]" >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] doc [b][color=RED]([/color][/b][b][color=BLUE]vla-get-ActiveDocument[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-get-Acad-Object[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-activespace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-mspace[/color][/b] doc[b][color=RED])[/color][/b] [b][color=Blue]:vlax-true[/color][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b] [i][color=#990099]; Vport[/color][/i] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-paperspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-modelspace[/color][/b] doc[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]prompt[/color][/b] [b][color=#ff00ff]"\nSelect Objects to List Area..."[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ss [b][color=RED]([/color][/b][b][color=BLUE]ssget[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=#009900]0[/color][/b] . [b][color=#ff00ff]"*POLYLINE,ELLIPSE,CIRCLE,REGION"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] i [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] Obj [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]vlax-ename->vla-object[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vl-remove-if[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]listp[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]cadr[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]ssnamex[/color][/b] ss[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-vla-object->ename[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=#009900]3[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getstring[/color][/b] [b][color=BLUE]t[/color][/b] [b][color=#ff00ff]"\nSpecify Name for Highlighted Object: "[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-get-Area[/color][/b] Obj[b][color=RED])[/color][/b][b][color=RED])[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]redraw[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vlax-vla-object->ename[/color][/b] Obj[b][color=RED])[/color][/b] [b][color=#009900]4[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]and[/color][/b] lst [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] bPt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nSelect Point for Table: "[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] tblObj [b][color=RED]([/color][/b][b][color=BLUE]vla-addTable[/color][/b] spc [b][color=RED]([/color][/b][b][color=BLUE]vlax-3D-point[/color][/b] bPt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=#009900]2[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]length[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=#009999]1.5[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"TEXTSIZE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]*[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]apply[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]max[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]strlen[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]car[/color][/b] lst[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#009999]1.5[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=#ff00ff]"TEXTSIZE"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setText[/color][/b] tblObj [b][color=#009900]0[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"{\\fCopperplate Gothic Light|b1|i0|c0|p34;\\C3;Object Areas}"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setText[/color][/b] tblObj [b][color=#009900]1[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;Name}"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setText[/color][/b] tblObj [b][color=#009900]1[/color][/b] [b][color=#009900]1[/color][/b] [b][color=#ff00ff]"{\\fCopperplate Gothic Light|b1|i1|c0|p34;\\C16;Area}"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] x [b][color=RED]([/color][/b][b][color=BLUE]reverse[/color][/b] lst[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setCellAlignment[/color][/b] tblObj i [b][color=#009900]0[/color][/b] [b][color=Blue]acMiddleCenter[/color][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setText[/color][/b] tblObj i [b][color=#009900]0[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] x[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setCellAlignment[/color][/b] tblObj i [b][color=#009900]1[/color][/b] [b][color=Blue]acMiddleCenter[/color][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]vla-setText[/color][/b] tblObj i [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cdr[/color][/b] x[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]1+[/color][/b] i[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<< No Point Specified >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<< Incorrect Selection >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] 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.