Jump to content

Leaderboard

  1. Cad64

    Cad64

    Moderators


    • Points

      20

    • Content Count

      8,293


  2. BIGAL

    BIGAL

    Trusted Members


    • Points

      19

    • Content Count

      13,289


  3. pBe

    pBe

    Trusted Members


    • Points

      16

    • Content Count

      3,096


  4. ReMark

    ReMark

    Trusted Members


    • Points

      14

    • Content Count

      45,598



Popular Content

Showing content with the highest reputation since 06/13/2020 in all areas

  1. 3 points
    another, delta (defun c:tt (/ p1 p2 en obj ) (and (setq p1 (getpoint "Specify point ")) (setq p2 (getcorner p1 "opposite corner ")) (setq en (entmakex (list '(0 . "LINE") (cons 10 p1) (cons 11 p2)))) (setq obj (vlax-ename->vla-object en)) (princ (strcat "\nArea=" (rtos (apply '* (mapcar '(lambda (a b) (+ a (abs b))) '(0 0) (vlax-get obj 'delta) ) ) 2 3 ) " M\U+00B2" ) ) (entdel en) ) (princ) ) WCS
  2. 3 points
    Thanks @Tharwat and @dlanorh and @ hanhphuc Sorry for my late reply The lisps were shown working great and I think beautiful thanks ALL
  3. 2 points
    I used to do a lot of this sort of thing using 3D Studio Max. It has some really nice functionality that allows you to insert the photo of the room and then set up your rendering camera to match the camera used to take the photo. Then you simply maneuver your model around until you have it placed where you want it, in relation to the photo, and hit render. Of course, you have to set up your materials, and make sure the lighting matches the light sources in the photo and you have to place shadow catchers around the model to capture shadows, etc., but after you get everything set up, you hit render and you will get a complete image of the room and the furniture model without having to do any post work in Photoshop. Or you can render the model without the background image and composite in Photoshop. It's up to you. The downside to 3D Studio Max is that it's very expensive and it has a steep learning curve. So it may not be the best option for your situation. These days, I think most 3D programs have the same sort of functionality though, so like Steven-g said, it would be best to talk to your boss about what he expects. Some bosses want very simple, quick and dirty, conceptual style renders while others might want complete realism. It all depends on how fast it needs to be done and how much money is in the budget. In my experience, the boss always wants it done fast, cheap and great which is a complete impossibility, as the graphic below illustrates.
  4. 2 points
  5. 2 points
    OPTIONS > SYSTEM tab. Select the item in the green box shown in the attached image. My advice is not to do it though. REGEN is a hog and will take more time to change layouts. How much more time depends on what kind of hot rod video processor system you have. I personally am more than happy with REGEN on demand.
  6. 2 points
    Making a Pattern file A pattern file is a text file, which has a few simple rules. If it is to be a standalone file, then the first line of the file must be *(File-name)(,pattern description if needed). The file name cannot have any spaces, but for clarity it can have underscores. The second and subsequent lines are the description of the lines that form the hatch pattern, and follow the data format shown in the diagram. The angle, coords and dimensions can be taken from the working drawing. The length of a data line is limited to 80 characters. There must be a blank line, without any data, at the end of the file. A stand alone file has to be stored in a folder which is pathed for AutoCAD, so it is available in the Custom patterns. It can also be put in the main pattern file ACAD.PAT or ACADISO.PAT but that is trickier when you are trying to write the pattern. My procedure was to start a text editor with the pattern file loaded, and also start AutoCAD, then one can hatch, write a line into the pattern file and save it, and then (having erased the first hatch) hatch again. AutoCAD always takes the most recent pattern file so one sees whether the last line is doing what it should. I thought a few pictures would explain everything, but if I should have taken shortcuts, please seek further clarification. I have also added my whole hatch pattern file. *Quilt,satin quilt pattern 0,-2.25,0,0,15.36396103,4.5,-3.18198052 0,1.59099026,1.59099026,0,15.36396103,4.5,-3.18198052 0,1.59099026,-1.59099026,0,15.36396103,4.5,-3.18198052 0,5.43198052,3.18198052,0,15.36396103,4.5,-10.86396104 0,5.43198052,-3.18198052,0,15.36396103,4.5,-10.86396104 0,1.59099026,3.84099026,0,15.36396103,2.25,-7.68198052,2.25,-3.18198052 0,1.59099026,-3.84099026,0,15.36396103,2.25,-7.68198052,2.25,-3.18198052 0,3.18198052,5.43198052,0,15.36396103,2.25,-4.5,2.25,-6.36396103 0,3.18198052,-5.43198052,0,15.36396103,2.25,-4.5,2.25,-6.36396103 0,0,-7.68198052,0,15.36396103 45,-1.59099,-1.59099,-10.86396,10.86396,4.5,-3.18198,2.25,-6.36396,2.25,-3.18198 45,0,2.25,-10.86396,10.86396,4.5,-9.54594,4.5,-3.18198 45,2.25,0,-10.86396,10.86396,4.5,-9.54594,4.5,-3.18198 45,6.09099,1.59099,-10.86396,10.86396,10.86396,-10.86396 45,1.59099,6.09099,-10.86396,10.86396,10.86396,-10.86396 45,3.84099,-1.59099,-10.86396,10.86396,2.25,-14.04594,2.25,-3.18198 45,-1.59099,3.84099,-10.86396,10.86396,2.25,-14.04594,2.25,-3.18198 45,-1.59099,-9.27298,-10.86396,10.86396,4.5,-6.36396,4.5,-6.36396 90,0,-2.25,0,15.36396103,4.5,-3.18198052 90,-1.59099026,1.59099026,0,15.36396103,4.5,-3.18198052 90,1.59099026,1.59099026,0,15.36396103,4.5,-3.18198052 90,-3.18198052,5.43198052,0,15.36396103,4.5,-10.86396104 90,3.18198052,5.43098052,0,15.36396103,4.5,-10.86396104 90,-3.82099026,1.59099026,0,15.36396103,2.25,-7.68198052,2.25,-3.18198052 90,3.84099026,1.59099026,0,15.36396103,2.25,-7.68198052,2.25,-3.18198052 90,-5.43098052,3.18198052,0,15.36396103,2.25,-4.5,2.25,-6.36396103 90,5.43198052,3.18198052,0,15.36396103,2.25,-4.5,2.25,-6.36396103 90,7.68098052,0,0,15.36396103 135,1.59099,-1.59099,-10.86396,10.86396,4.5,-3.18198,2.25,-6.36396,2.25,-3.18198 135,-2.25,0,-10.86396,10.86396,4.5,-9.54594,4.5,-3.18198 135,0,2.25,-10.86396,10.86396,4.5,-9.54594,4.5,-3.18198 135,-1.59099,6.09099,-10.86396,10.86396,10.86396,-10.86396 135,-6.09099,1.59099,-10.86396,10.86396,10.86396,-10.86396 135,1.59099,3.84099,-10.86396,10.86396,2.25,-14.04594,2.25,-3.18198 135,-3.84099,-1.59099,-10.86396,10.86396,2.25,-14.04594,2.25,-3.18198 135,9.27298,-1.59099,-10.86396,10.86396,4.5,-6.36396,4.5,-6.36396
  7. 2 points
    The other dimension is 8000.00000029. In fact when the precision is set to 8 places of decimals, some of the dimensions do not seem to be exact. The overall length is 63999.99999925. Probably near enough not to matter, but when exactness is available, why not use it?
  8. 2 points
    The rectangle is not snapped exactly to the corner point of the column on the left side. If you zoom in really close, you will see that's it's not snapped correctly. And if you measure the distance you will see that it's off by 0.00539. If you delete that rectangle and draw a new one, it should be correct, as long as you carefully select the endpoints of the columns.
  9. 2 points
    assoc & subst are the key functions here - similar to how you might manipulate the DXF data returned by entget. You are working with an association list wherein the first element of each sublist represents a key, and the tail of the list represents the data associated with that key. You can use assoc to test whether a sublist with a given key exists, and then use subst to substitute the sublist with a modified version within the main list. For example - say you start with the following list: _$ (setq lst '(("2" "b") ("1" "a"))) (("2" "b") ("1" "a")) And you have the following new values: _$ (setq key "2" val "c") You can test whether the key exists using assoc: _$ (setq old (assoc key lst)) ("2" "b") Since it does, you can modify it using the value returned by assoc: _$ (setq new (append old (list val))) ("2" "b" "c") And finally, you can substitute it into the main list using subst: _$ (setq lst (subst new old lst)) (("2" "b" "c") ("1" "a")) If the key does not exist, you can use cons to push it onto the list: _$ (setq key "3" val "c") _$ (assoc key lst) nil _$ (setq lst (cons (list key val) lst)) (("3" "c") ("2" "b" "c") ("1" "a")) Putting this all together with an if statement to branch accordingly, we can write a function such as the following: (defun addtolist ( key val lst / old ) (if (setq old (assoc key lst)) (subst (append old (list val)) old lst) (cons (list key val) lst) ) ) _$ (setq lst '(("2" "b") ("1" "a"))) (("2" "b") ("1" "a")) _$ (setq lst (addtolist "2" "c" lst)) (("2" "b" "c") ("1" "a")) _$ (setq lst (addtolist "3" "d" lst)) (("3" "d") ("2" "b" "c") ("1" "a"))
  10. 2 points
    To make things complicated (defun c:DemonstrationOfChangingTextToAttribute (/ selectionset increment TheSelectedTextObject dataFromSelectedTextObject ) (if (and (tblsearch "BLOCK" "Line code") (setq selectionset (ssget "_:L" '((0 . "TEXT")))) ) (repeat (setq increment (sslength selectionset)) (setq TheSelectedTextObject (ssname selectionset (setq increment (1- increment)) ) ) (setq dataFromSelectedTextObject (entget TheSelectedTextObject)) (setq dataIneedFromSelectedTextObject (mapcar (function (lambda (dxfcodes) (assoc dxfcodes dataFromSelectedTextObject ) ) ) '(1 40 7 10 50 41 8) ) ) (entmake (append (list '(0 . "INSERT") '(66 . 1) '(2 . "Line code") ) (cdddr dataIneedFromSelectedTextObject) ) ) (entmake (append (list '(0 . "ATTRIB") '(2 . "LINE_CODE") '(70 . 0) ) dataIneedFromSelectedTextObject ) ) (entmake '((0 . "SEQEND"))) (entdel TheSelectedTextObject) ) ) (princ) )
  11. 2 points
    Get the best Ryzen with the most ram you can afford at $500 budget.
  12. 2 points
    An xref is just another drawing that is referenced into your current drawing. Xref's are useful when you have a base file, like a floorplan, that you need referenced into multiple other drawings. By having the floorplan as an xref, you can make changes to that drawing and those changes will show up in all the other drawings that have the floorplan xref inserted, once you reload it. Here's a video explaining how xrefs work.
  13. 2 points
    Thanks @Steven P @Tbag Assuming that you are referring to an image inserted in the active drawing, the resolution can be obtained from DXF group 13.
  14. 2 points
    The Ryzen 5 3500U is hyper-threaded so they'll have 8 threads for rendering
  15. 2 points
    Either one should work fine, but which Ryzen 5 are you looking at? The cheapest one I found is the Ryzen 5 1400. If I were you, I would go with the Ryzen 5 1600x. It's about $100 more than the 1400, but it's going to be faster and more powerful. Also, RAM is cheap, so if you can afford it, go with 12GB.
  16. 2 points
    Hi, From the help document and note the last sentence. ENTMOD FUNCTION
  17. 2 points
    4GB RAM is not even worth looking at. These days you need 8GB RAM minimum, especially if you're going to be working on any sort of large files in Photoshop or doing any 3D work. 4GB just isn't going to cut it.
  18. 2 points
    There are only four "Boundary lines". These would be the rear property lines for the lots. The Right-of-Way lines define the extents of the streets themselves.
  19. 1 point
    Why not use the code by Omega-thunder ? I had a bit of play with it added multi picks. It needs check picked a valid object pline or circle. And Material type say add Aluminimum. The code by Jeffery sanders has nearly any type of material which is good but adds overheads. (Defun C:calculate (/ Poly Thick sc Pt Vol) (setq Thick (getreal "\nGive Thickness in MM: ")) (setq sc (getreal "\nGive scale value 1 0.1 0.001 : ")) (while (setq ent (entsel "\nSelect Polygon:")) (setq Poly (vla-get-area (vlax-ename->vla-object (car ent)))) (setq Pt (getpoint "\nPick point of text placement: ")) (setq Vol (rtos (* Poly 7.85 Thick sc) 2 3)) (command "_text" Pt 20 0.0 Vol) ) (princ) ) (C:calculate)
  20. 1 point
  21. 1 point
    BASEplates. That refers to a plate located at the base (i.e. - bottom) of a column. There are beams at the top of the columns as well as metal decking. Then a poured concrete roof.
  22. 1 point
  23. 1 point
    What are your computer specs? What program did you use to convert the pdf? What is the dwg file size after you converted the pdf? I agree with BIGAL. The problem is probably the sheer number of individual line segments created by the pdf conversion. A better approach would be to attach the pdf and then trace over it.
  24. 1 point
    Table is best done with vla-AddTable. Not saying it's impossible, but it's a lot easier that way.
  25. 1 point
    Most engineers will provide a CAD tech with rough sketches of what it is they want drawn up. If a CAD tech is exceptionally good at his/her job a verbal description would be enough to get them started. I've never had an engineer hand me a PDF with written instructions. If you become a CAD designer then it is up to you to create the drawing from conception through finalization with little to no input from an engineer. For that to happen one must be very knowledgeable in the field in which they work.
  26. 1 point
    Hey thanks... Lemmie try it in my existing code. Really appreciate your help.
  27. 1 point
    Area on the fly. (defun c:aof (/ 1p 2p) ;; aof = Area on the fly. ;; (and (setq 1p (getpoint "\nSpecify base point : ")) (setq 2p (getcorner "\nOpposite point : " 1p)) (princ (* (distance 1p (list (car 2p) (cadr 1p))) (distance 2p (list (car 2p) (cadr 1p)))) ) ) (princ) )
  28. 1 point
    One last comment. Regarding the north arrow, the "N" should be above the arrowhead not on the side of it.
  29. 1 point
    Enclosed_polylines is about finding EACH closed area in a selection. If it's not what you are looking for, then you should explain better. I'd really like to see each of the 2 samples you already posted, but with both "before" and "after" situation. And, most important, how do you see them the same? For me, looks like 2 different tasks.
  30. 1 point
    You should perform a clean uninstall of Autocad and then reinstall the program using your new license. https://knowledge.autodesk.com/customer-service/download-install/remove-products/clean-uninstall
  31. 1 point
    I've never run across a legal to use professional application that will allow more than one person to edit a file at any one time. To do otherwise is inviting disaster. If more than one person absolutely has to work on the same drawing simultaneously, save a copy under another name, then clipboard in the changes to the original later in a controlled agreed method.
  32. 1 point
    Another (defun _relist (lst n) ((lambda (i / l m) (while (and (< i n) (setq v (Car lst))) (setq l (cons v l) i (1+ i) lst (cdr lst)) ) (append (reverse l) (reverse lst)) ) 0 ) ) @ hanhphuc You just have to go the other way than the rest of us don't you.. < n before l st > (defun revnth (n lst)... (defun foo (i l / n k)...
  33. 1 point
    sorry i assume variant was 3d point.. so try to debug yourself , according to developer documentation it requires 2d doubles, ie: x,y not x,y,z read the article vlax-2d-point is built-in function BCAD (defun vlax-2d-point (pt) (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 1)) (list (car pt) (cadr pt)) ) ) ) eg. call (vlax-2d-point p1) ;#<variant 8197 ...> (mapcar 'vlax-2d-point (list p1 p2)) ;( #<variant 8197 ...> #<variant 8197 ...> ) hint trans & acWindow
  34. 1 point
    As there have been quite a few views on this topic, I decided to improve (?) the pattern file, and also scale it for a one unit spacing. *Query1,question mark at unit spacing 90,0.5,0.435,1,1,0.0075,-0.021,0.0265,-0.945 90,0.54,0.53,1,1,0.01,-0.99 33.6900576,0.5,0.49,1.386750443,0.277350338,0.036055516,-3.56949759 63.4349489,0.53,0.51,0.894427191,0.447213596,0.022360680,-2.213707298 123.6900675,0.54,0.54,1.386750491,0.277350098,0.036055512,-3.569495763 180,0.52,0.57,1,1,0.03,-0.97 225,0.49,0.57,0.707106781,0.707106781,0.03,-1.384213562
  35. 1 point
    Welcome to CADTutor. Something like this? (defun c:Test (/ str e ss n) (if (and (setq str (getstring t "\nSpecify your text to overwrite selected texts : " ) ) (/= str "") (setq ss (ssget "_:L" '((0 . "*TEXT")))) ) (repeat (setq n (sslength ss)) (entmod (subst (cons 1 str) (assoc 1 (setq e (entget (ssname ss (setq n (1- n)))))) e ) ) ) ) (princ) )
  36. 1 point
    H is not valid hex...
  37. 1 point
    (defun is-hex-p (str) (wcmatch str "~*[~0-9a-fA-F]*") )
  38. 1 point
    Yes,. very good, that is the general idea, include a condtional function (Setq text (if p (substr val (+ 2 p)))) That will result to nil, then when the time to use the text variable (if text ... do something) or (Setq text (if p (substr val (+ 2 p)) "")) '<-- leave text variable as blank (Setq text (if p (substr val (+ 2 p)) "Not included)) '<-- or use a defualt value That way, when you include the text variable in a statement. it will still have a value and theres no need for a test (princ (strcat "\nPart number: " number "\nDescription: " text)) and so... (defun c:demo (/ val p number text) (setq val (getstring T "\nEnter Value :")) (setq p (vl-string-position 32 val)) (setq number (substr val 1 p)) (Setq text (if p (substr val (+ 2 p)) "Not Included")) (princ (strcat "\nPart number: " number "\nDescription: " text)) (princ) ) Command: DEMO Enter Value :123 dx Part number: 123 Description: dx Command: DEMO Enter Value :123 Part number: 123 Description: Not Included Command: DEMO Enter Value :1234 df Part number: 1234 Description: df Command: DEMO Enter Value :1234 Part number: 1234 Description: Not Included HTH
  39. 1 point
    System requirements increased starting with 2019 AutoCAD versions, at least for Civil 3D we use. If you're planning on using the latest versions take a look at: https://knowledge.autodesk.com/support/system-requirements
  40. 1 point
    At that price point I'd get a ryzen over Intel as the amd graphics will be better than the Intel graphics. You can add an m.2 sad later if it doesn't already have one.
  41. 1 point
    We regularly used to convert legacy drawings from PDF, and scanned raster formats, back into vector DWGS. Legally of course, they were the clients old drawings and their intelectual property. Some could be done easily with software, (Wiseimage for Autocad, PDF Fly, etc.). Sometimes you would need to use one and then the other to get to the Dwg. (eg. Convert PDF to raster, convert raster to dwg, clean up). Other files took more work and maybe some redrawing. As said by the others you can always copy something, it just depends how much work you are prepared to put into doing it. If you dont want your design 'stolen' by a client then you could agree/contract from the start that the design will become their property once they have paid your fee. (A higher fee of course). That still won't stop the unscrupulous if they don't want to pay.
  42. 1 point
    Sheep That is exactly what i posted, Let me put it in a way you can use on command prompt (defun c:demo (/ val p number text) (setq val (getstring T "\nEnter Value :")) (setq p (vl-string-position 32 val)) (setq number (substr val 1 p)) (Setq text (substr val (+ 2 p))) (princ (strcat "\nVariable number: " number)) (princ (strcat "\nVariable text: " text)) (princ) ) Unless without VLX means something else entirely, then i'm fresh out of ideas
  43. 1 point
    It depends. If you're only working inside one drawing file, and you're creating all the content inside the drawing, then there's probably no need for xrefs. But if you're creating multiple drawings that all need to share the same base information, then xrefs are kind of important. Also, if you're receiving files from outside sources, like an architect, then you should xref the architects files into your drawing.
  44. 1 point
    Hallo see my attached example. Regards Jochen www.black-cad.de simplify 3dpoly_scj.dwg
  45. 1 point
    Like cad64 the Ram is very important if you can add it do 16gb. We took a couple of old pc 4gb made into 8GB Autocad performance increase was amazing.
  46. 1 point
    This lisp has been "found" before. See Here
  47. 1 point
    type in insert without the '-' and check if explode option is on. If so , toggle it off , insert any block and delete it and then try your routine again
  48. 1 point
    The other alternative is to use a layout, I think there are some tutorials here search. You go to a blank layout, insert your title block, make it true size ie 36x24 units then use the mview command to make a window inside the title block, dbl click to go inside, Zoom E, the plan should appear but at random scale, I work metric so will leave it for others to explain in feet how to scale.
  49. 1 point
    This lacks the coding elegance that I'm trying to achieve lately, but I'm a little pushed for time. (defun c:duplayout ( / increment_string CustSort CustSort_Comparable CustSort_SplitStr oce louts flag ctab layout# layoutname newlayoutname ) (vl-load-com) ;;****************************************************************** ;; Local Functions ;;****************************************************************** (defun increment_string (string inc / num tmp1 len check sign) (if (/= string "");Don't process an empty string (progn (setq num "" tmp1 1 ) (while (and (> (setq len (strlen string)) 0) tmp1) (setq check (substr string len));The last character of the string (if (wcmatch check "[0-9]");Is it a number? (setq num (strcat check num);If yes put it aside string (substr string 1 (1- len));and take it off the original string ) (setq tmp1 nil);If no end the loop );if );while ;check for negative signage in front of the string (if (and (> (strlen string) 0) (= (substr string 1 1) "-")) (progn (setq sign -1) (if (> (strlen string) 1);more than just a negative sign (setq string (vl-string-left-trim " " (substr string 2 (1- (strlen string)))));remove the negative sign and any spaces (setq string "") ) );progn (setq sign 1) ) (setq tmp1 (+ (* (atoi num) sign) inc) sign (if (< tmp1 0) "-" "") tmp1 (itoa (abs tmp1)) ) ;Then pad with zeros if the original was padded (if (< (strlen tmp1) (strlen num)) (repeat (- (strlen num) (strlen tmp1)) (setq tmp1 (strcat "0" tmp1)));Buffer with zeros ) (strcat sign string tmp1) );progn "1" );if ) ;;****************************************************************** ;;Customised string sorting function Main Part (defun CustSort ( x ) (vl-sort x (function (lambda ( x1 x2 / n1 n2 comp ) (setq x1 (CustSort_SplitStr x1);creates a broken down list of alpha & numeric values from the string x2 (CustSort_SplitStr x2);creates a broken down list of alpha & numeric values from the string ) (while (and (setq comp (CustSort_Comparable (setq n1 (car x1)) (setq n2 (car x2)))) (= n1 n2) (/= n1 nil) ) (setq x1 (cdr x1) x2 (cdr x2)) );while (if comp (< n1 n2) (numberp n1)) );lambda );function );vl-sort ) ;********************************************************************* ;;Customised string sorting function Sub Part 1 - Tests whether the values are both strings or both numbers (defun CustSort_Comparable ( e1 e2 ) (or (and (numberp e1) (numberp e2)) (= 'STR (type e1) (type e2)) (not e1) (not e2) ) ) ;********************************************************************* ;;Customised string sorting function Sub Part 2 - Splits a string into a list of separated string and number parts (defun CustSort_SplitStr ( str / lst test rslt num tmp ) (setq lst (vl-string->list str) test (chr (car lst)) ) (if (< 47 (car lst) 58) (setq num T)) (while (setq lst (cdr lst)) (if num (cond ((= 46 (car lst)) (if (and (cadr lst) (setq tmp (strcat "0." (chr (cadr lst)))) (numberp (read tmp))) (setq rslt (cons (read test) rslt) test tmp lst (cdr lst)) (setq rslt (cons (read test) rslt) test "." num nil)) );1st condition ((< 47 (car lst) 58) (setq test (strcat test (chr (car lst)))) );2nd condition (T (setq rslt (cons (read test) rslt) test (chr (car lst)) num nil ) );3rd condition );cond (if (< 47 (car lst) 58) (setq rslt (cons test rslt) test (chr (car lst)) num T) (setq test (strcat test (chr (car lst)))));if );if );while (if num (setq rslt (cons (read test) rslt)) (setq rslt (cons test rslt))) (reverse rslt) ) ;;****************************************************************** ;; Main Program Code ;;****************************************************************** (setq oce (getvar "cmdecho")) (setvar "cmdecho" 0) (setq louts (layoutlist) ctab (if (= "Model" (getvar "ctab")) (car louts) (getvar "ctab")) flag nil ) (while (not flag) (setq layoutname (getstring T (strcat "\nLayout to duplicate <" ctab ">: "))) (if (= layoutname "") (setq layoutname ctab)) (if (= layoutname "Model") (alert "Cannot duplicate Modelspace") (if (member (strcase layoutname) (mapcar 'strcase louts)) (setq flag T)) );if );while (initget 6) (setq layout# (getint "\nHow many copies ? <2>: ")) (if (null layout#) (setq layout# 2)) (setq newlayoutname layoutname louts (mapcar 'strcase louts) ) (repeat layout# (while (member (strcase (setq newlayoutname (increment_string newlayoutname 1))) louts)) (vl-cmdf ".layout" "copy" layoutname newlayoutname) (setq louts (cons (strcase newlayoutname) louts)) );repeat (setq louts (CustSort louts)) (vlax-for tab (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object))) (if (not (= (strcase (vla-get-name tab)) "MODEL")) (vla-put-taborder tab (1+ (vl-position (strcase (vla-get-name tab)) louts))) ) ) (setvar "cmdecho" oce) (princ) );defun
  50. 1 point
    No the outside edge will be at the outside edge of the colunm flange. Remember that in this elevation you are looking at the Flange of the column, not the web. So this requires that the bolts be drawn on the hidden layer.
  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...