Jump to content

Leaderboard

  1. BIGAL

    BIGAL

    Trusted Members


    • Points

      18

    • Content Count

      12,386


  2. Lee Mac

    Lee Mac

    Trusted Members


    • Points

      13

    • Content Count

      20,299


  3. RetroCAD

    RetroCAD

    Members


    • Points

      9

    • Content Count

      39


  4. Roy_043

    Roy_043

    Community Members


    • Points

      8

    • Content Count

      962



Popular Content

Showing content with the highest reputation since 12/20/2019 in all areas

  1. 1 point
    Try this solution: (defun KGA_Conv_EnameList_To_Pickset (lst / ret) (setq ret (ssadd)) (foreach enm lst (if (not (vlax-erased-p enm)) (ssadd enm ret))) (if (/= 0 (sslength ret)) ret) ) (defun KGA_Data_FileRead (fnm / lst ptr str) (if (setq ptr (open fnm "r")) (progn (while (setq str (read-line ptr)) (setq lst (cons str lst)) ) (close ptr) (reverse lst) ) ) ) (defun KGA_List_LastRemove (lst) (reverse (cdr (reverse lst))) ) ; Every record in the CSV has to have 3 or 4 numerical fields: X,Y,Z[,Radius]. (defun CsvToSweep_ReadCsv (fnm) (mapcar (lambda (str / lst) (setq lst (read (strcat "(" (vl-string-translate "," " " str) ")"))) (cond ((= 4 (length lst)) lst ) ((= 3 (length lst)) (append lst '(0.0)) ; Add default radius. ) ) ) (KGA_Data_FileRead fnm) ) ) ; Return value: List of line and arc objects. (defun CsvToSweep_CreatePath (spc datLst / linLst oldFilletrad ret) (setq oldFilletrad (getvar 'filletrad)) (setq linLst (mapcar '(lambda (subA subB) (vla-addline spc (vlax-3d-point (KGA_List_LastRemove subA)) (vlax-3d-point (KGA_List_LastRemove subB))) ) datLst (cdr datLst) ) ) (setq ret (cons (car linLst) (apply 'append (mapcar '(lambda (linA linB rad / enm) (setq enm (entlast)) (setvar 'filletrad rad) (command "_.fillet" (vlax-vla-object->ename linA) (vlax-vla-object->ename linB)) (if (not (equal enm (entlast))) (list (vlax-ename->vla-object (entlast)) linB) (list linB) ) ) linLst (cdr linLst) (mapcar 'cadddr (cdr datLst)) ) ) ) ) (setvar 'filletrad oldFilletrad) ret ) (defun CsvToSweep_CreateSolid (spc pathLst rad / lst oldDelobj prof) (setq oldDelobj (getvar 'delobj)) (setvar 'delobj 0) (setq prof (vlax-vla-object->ename (vla-addcircle spc (vlax-3d-point 0.0 0.0 0.0) rad))) (setq lst (vl-remove nil (mapcar '(lambda (path / enm) (setq enm (entlast)) (command "_.sweep" prof "" (vlax-vla-object->ename path)) (if (not (equal enm (entlast))) (entlast) ) ) pathLst ) ) ) (command "_.union" (KGA_Conv_EnameList_To_Pickset lst) "") (entdel prof) (setvar 'delobj oldDelobj) ) (defun c:CsvToSweep ( / datLst diam doc fnm pathLst spc) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-endundomark doc) (vla-startundomark doc) (setvar 'cmdecho 0) (if (and (setq fnm (getfiled "Select CSV file" "" "csv" 4)) (setq datLst (CsvToSweep_ReadCsv fnm)) (or (not (vl-position nil datLst)) (prompt "\nError: invalid data ") ) (setq diam (getdist "\nDiameter: ")) ) (progn (setq spc ((if (= 1 (getvar 'cvport)) vla-get-paperspace vla-get-modelspace) doc)) (setq pathLst (CsvToSweep_CreatePath spc datLst)) (CsvToSweep_CreateSolid spc pathLst (/ diam 2.0)) (mapcar 'vla-delete pathLst) ) ) (setvar 'cmdecho 1) (vla-endundomark doc) (princ) )
  2. 1 point
    I've been working in Tekla now for a few years. I miss Autocad, so happy to help
  3. 1 point
    Sorry to insist with code, but today I have some time to spent with joking with visual basic, and cad. Here attached code for export data directly in an Excel workbook. You have to start the VBA Code with Excel program opened, and in any case will be created an addition cartel. Attached drawing consist of 4 text aligned on y axis I used for test, if you are not able to open I'll save with oldest Cad release. if you have a special own excel form to fill, VBA module could be fixed in order to write data in correct columns and/or rows. I guess now you have a lot of work to do.... Bye Module4.bas TestDrawing1.dwg
  4. 1 point
    Hi Amir, here your code selection, reorder and move text on drawing and write on text file Sub PeterXX() Dim MyObject As AcadEntity Dim MyCoord() As Double Dim MyNewCoords() As Double Dim A As Integer Dim MyX() As Double Dim MyY() As Double Dim MyZ() As Double Dim ss As AcadSelectionSet Dim FilterType(0) As Integer Dim FilterData(0) As Variant FilterType(0) = 0 FilterData(0) = "TEXT,MTEXT" Set ss = ThisDrawing.SelectionSets.Add("MySsS") ss.SelectOnScreen FilterType, FilterData ReDim MyX(ss.Count - 1) ReDim MyY(ss.Count - 1) ReDim MyZ(ss.Count - 1) A = 0 For Each MyObject In ss MyCoord = MyObject.InsertionPoint MyX(A) = MyCoord(0) MyY(A) = MyCoord(1) MyZ(A) = MyCoord(2) A = A + 1 Next iFirstRow = LBound(MyY) iLastRow = UBound(MyY) For i = iFirstRow To iLastRow - 1 For j = i + 1 To iLastRow If MyY(i) > MyY(j) Then varTemp = MyY(j) MyY(j) = MyY(i) MyY(i) = varTemp End If Next j Next i ReDim MyNewCoords(0 To 2) A = 0 Open "C:\Users\Utente\Documents\TESTFILE.TXT" For Output As #1 For Each MyObject In ss MyNewCoords(0) = MyX(A) MyNewCoords(1) = MyY(A) MyNewCoords(2) = MyZ(A) ss.Item(A).InsertionPoint = MyNewCoords ThisDrawing.ModelSpace.AddText ss.Item(A).TextString, MyNewCoords, 5 Print #1, "VALUE " & A & " = " & ss.Item(A).TextString A = A + 1 Next ' Close #1 ss.Delete End Sub Please note: same text previously selected will be added in the same position of new order and in the same time object selected will be moved if not required "play" with below code ss.Item(A).InsertionPoint = MyNewCoords ThisDrawing.ModelSpace.AddText ss.Item(A).TextString, MyNewCoords, 5 See file attached Module3.basBye
  5. 1 point
    Remove the Alert line Remove the two getreals and replace with 1 and 0 Are you setting oom somewhere ? else just (setvar 'osmode 47) or your preferred value don't need if. If you crash it should run again choosing menu.
  6. 1 point
    Oh gosh, I just realized that you are running R12! I though we were working on R13 Good on you man, it is super fun to have a vintage CAD station. If you need some period drawing files, I have a substantial collection of Architectural/Engineering files.
  7. 1 point
    Hit me up if you want to get that R12 working!
  8. 1 point
    Happy to help. If you have a Microsoft Mouse, you can find a DOS driver for it here: https://winworldpc.com/product/microsoft-mouse/9x If you have a different one, let me know and I will be glad to help you track down a driver.
  9. 1 point
    For real, I wish I could teleport there for a few minutes and sort this out for you!
  10. 1 point
    Well, these are certainly different than your previous screenshot. For now, I would select number eight (8) "IBM Video Graphics Array".
  11. 1 point
    This is a legacy Vibrant Graphics driver for R13. Copy it to your DRV folder (which for you is probably C:\ACADR13\DRV). After doing this, a new option should appear in the video selections. The first time you choose it, the driver will complain about not having a config (CFG) file, but carry on and use the default setting which is 640x480 VGA. If the future you can go back into the config and choose a more specific setting within this driver (based on your graphics card) and run at very high resolutions. DL153100.RES
  12. 1 point
    My apologies, I had forgotten that stock AutoCAD R13 for DOS has relatively few drivers. Give me a moment here and I will send you a proper driver.
  13. 1 point
    For the error I think you should look at the IPN 250 profile in OP's 2nd image. The flanges have an incorrect 'bulge'.
  14. 1 point
    Hi AMIR, first of all, I guess you have to find the select object coordinates for example: Dim MyObject As AcadEntity Dim MyCoord() As Double Dim MyX As Double Dim MyY As Double Dim MyZ As Double Dim ss As AcadSelectionSet Dim FilterType(0) As Integer Dim FilterData(0) As Variant FilterType(0) = 0 FilterData(0) = "TEXT,MTEXT" Set ss = ThisDrawing.SelectionSets.Add("MySS") ss.SelectOnScreen FilterType, FilterData For Each MyObject In ss MyCoord = MyObject.InsertionPoint MyX = MyCoord(0) MyY = MyCoord(1) MyZ = MyCoord(2) Next ss.Delete Best Solution could be put in three different arrays and sort by single array, later you can move object inside drawing based upon sorted coordinates. Dim MyX() As Double Dim MyY() As Double Dim MyZ() As Double Dim A As integer .... 'For Each MyObject In ss ' MyCoord = MyObject.InsertionPoint ' MyX = MyCoord(0) ' MyY = MyCoord(1) ' MyZ = MyCoord(2) 'Next A = 1 ReDim MyX(ss.Count) ' Array first Dimension was uncounted Dim MyX() As Double ReDim MyY(ss.Count) ' Array first Dimension was uncounted Dim MyY() As Double ReDim MyZ(ss.Count) ' Array first Dimension was uncounted Dim MyZ() As Double For Each MyObject In ss MyCoord = MyObject.InsertionPoint MyX(A) = MyCoord(0) MyY(A) = MyCoord(1) MyZ(A) = MyCoord(2) A = A + 1 Next ss.Delete iFirstRow = LBound(MyY) iLastRow = UBound(MyY) For i = iFirstRow To iLastRow - 1 For j = i + 1 To iLastRow If MyY(i) > MyY(j) Then varTemp = MyY(j) MyY(j) = MyY(i) MyY(i) = varTemp End If Next j Next i So now you have Y coordinates ordered by lower to higher.
  15. 1 point
    Its called Pline As per our private mail the road cl will need to be a pline, so curves are supported. There are 3 separate options for a tee so I am looking at these 3, hopefully will work with any number of road intersections as a cross road will not have a "passing". Still working on it other stuff got in the way.
  16. 1 point
    Scottie Fox You are on the right track with the shortcuts you have in your post. I have a single library lisp that gets loaded at startup, I prefer this method to adding to Autocad default startup lisps that get loaded. So will keep going down this method. So make a lisp you can call it Scottie.lsp if you want, then type Appload, choose your Scottie.lsp and load it, this makes it available to only the current dwg. So next step is add it to Start up suite. Just click on it and add. Inside my autoload.lsp there are 40 short defuns and 34 autoloads. Tombu and I are talking about transparent commands these can be used in the middle of a command as example when doing pline you can type snaps like "end" "mid" or reset your osnaps by typing a apostrophe and the defun name hence Line '9 then pick a point with snap now set to end and node as per your post. At end to reset osnaps just type say 47 as a command (my defun) When writing programs and testing, osnap often gets reset so having a shortcut comes in handy to reset it back. Don't forget F3 is on / off
  17. 1 point
    On the status bar, along the bottom of the window, there's a button for setting object snap modes. (If you don't have a status bar, type the command STATUSBAR and change it from 0 to 1 [0=off, 1=on].) Button designs change from one version to the next, so I'm not sure what you'll see*. In my version (2014), it's a square with a spark in the top left corner. If you only click on the button, you turn the entire object snap system on and off. If you right click on that button, you will see a list of snaps so you can choose which one to turn on/off. That list also includes a Settings option, which opens the Object Snap dialog (you can open that same dialog with the command _OSNAP). The dialog box lists all the available snap modes in one place and lets you toggle them on and off. Once you hit OK, the settings remain in place until the next time you change them. Some snap settings only last for the duration of a command. You'll find that AutoCAD usually has several methods for doing the same thing. It's confusing at first, but you'll appreciate the flexibility it gives you. For instance, some prefer the ribbon, some the mouse, some the keyboard. Once you've learned the basics, you can decide what works best for you. Unfortunately, AutoCAD has a steep learning curve. Once you've got your feet underneath you, though, you will have a lot of power. *They claim the meanings of these icons are "self-explanatory." If that's so, why do they change every year?
  18. 1 point
    For starters get as familiar with the AutoCAD interface as you can. The icon on the right end of the status bar controls the display of everything on it. With 2D Osnap displayed you have full control of setting all you snaps and toggling them on and off. You can enter OSMODE at the command line and enter a value or while in a command use an apostrophe prefix to make it transparent as in 'OSMODE 10415. As we use different osnaps for different purposes it wouldn't make any sense to permanently set any of them.
  19. 1 point
    (distof "14") (distof "15.30") (distof "GtH") (distof "FG120") (distof ")&L")
  20. 1 point
    This is what your menu lines should look like I added one line for testing, you must copy and paste the code to notepad and save Blkins.lsp to a supported Autocad path, or else edit the (Load "c:\\yourdirectory\\your path\\etc\\Blkins") to suit, you can give it any name you like, just match. So pick "Load blocks" only need to do once. ***MENUGROUP=STRUCTURAL_STEEL ***POP12 **CTOPopSTRUCTURAL_STEEL [Structural Steel] [load blocks]^c^c(load "blkins") [->UB] [610UB125Test]^C^C(blkins "UniversalBeams_610UB125") [610UB125]^C^C-INSERT UniversalBeams_610UB125;scale;1; [610UB113]^C^C-INSERT UniversalBeams_610UB113;scale;1; [610UB101]^C^C-INSERT UniversalBeams_610UB101;scale;1; [->UC] [310UC158]^C^C-INSERT UniversalColumns_310UC158;scale;1; [310UC137]^C^C-INSERT UniversalColumns_310UC137;scale;1; [310UC118]^C^C-INSERT UniversalColumns_310UC118;scale;1; [310UC96.8]^C^C-INSERT UniversalColumns_310UC96.8;scale;1; Blkins.lsp
  21. 1 point
    Seems like your AutoCAD folder is named "ACADR13" so make sure you are reflecting that correctly in your batch file. In your case it would be: SET ACAD=C:\ACADR13\SUPPORT;C:\ACADR13\FONTS;C:\ACADR13\ADS SET ACADCFG=C:\ACADR13 SET ACADDRV=C:\ACADR13\DRV C:\ACADR13\ACAD %1 %2 Attached is my ACADR13.BAT for reference.
  22. 1 point
    Like tombu just set your osnaps to what you want then type osmode and write down the number. I have all my defun snaps set to a number rather than a hard to type string ie 47 (defun c:47 ()(setvar 'osmode 47)) I have like 4 in total. 99=1023 Something else you can do is shift+right button mouse to do temporary osnap. The other thing is you can do transparent changes within commands by using eg Line pick '47 pick, note the single apostrophe. Look into 'cal as well has some good routines. M2P also.
  23. 1 point
    Endpoint = 1 Midpoint = 2 Center = 4 Node = 8 Intersection = 32 Not needed if Apparent Intersection is set. Perpendicular = 128 Apparent Intersection = 2048 Parallel = 8192 So setting OSMODE to that total of 10415 or 10383 (without unneeded Intersection snap) is what you're looking for. Adding a macro like 'setvar;osmode;$M=$(if,$(=,10415,$(getvar,osmode)),0,10415) would toggle between the settings you're looking for and off completely. Defining 100 commands for every combination you might use seems excessive. I use a shortcut menu that includes all the ones I use without defining a single command. Many of the ones in that lisp would conflict with ones installed with verticals like Civil 3D.
  24. 1 point
    Try this (defun c:test ( / xss2 i obj ent lst) (setq xss2 (ssget '((0 . "INSERT") ))) (if xss2 (repeat (setq i (sslength xss2)) (setq obj (tblobjname "BLOCK" (cdr (assoc 2 (entget (setq ent (ssname xss2 (setq i (1- i))))))))) (while (setq obj (entnext obj)) (setq lst (entget obj)) (if (cdr (assoc 62 lst)) (entmod (subst (cons 62 1) (assoc 62 lst) lst)) (entmod (append lst '((62 . 1))))) ) (entupd ent) ) ) ) I'll leave the integration up to you You do know you are changing the block DEFINITION here?
  25. 1 point
    you just want to delete the blocks with geo in the name? As mentioned before the filter command should work or something like this maybe? (defun c:t1 ( / ss i ) (if (setq ss (ssget "x" (list (cons 0 "insert") (cons 2 "*geo*")))) (repeat (setq i (sslength ss)) (entdel (ssname ss (setq i (1- i)))))))
  26. 1 point
    When you add a pair of angle brackets <> in your text property, that inserts the measurement and allows you to use any other text around it. Your example would appear as "<> NOM" in the text field but show up as "100 NOM" in the dimension (assuming the measurement is 100).
  27. 1 point
    There are a couple of different ways to add text to a dimension. A simple Internet search on "add text to AutoCAD dimensions" will bring up plenty of links to click on. Is the text going to be above or below the dimension?
  28. 1 point
    Why not Paste as Block before deleting rather than take a chance on losing those objects? Messy way of creating blocks with unintelligible names. If you explain what you're trying to accomplish you may get some useful suggestions. I added a "Paste as Group" to the 5 Paste options installed with AutoCAD and use RCDATA_16_NEWGROUP as the image for it. This is the macro for it: ^C^C_pasteblock;\(setq LstBlk(vla-get-Name (vlax-ename->vla-object (entlast))));_explode;_last;_-group;_create;*;;_previous;;(command "-purge" "B" LstBlk "N")(setq LstBlk nil)
  29. 1 point
    I guess you're referring to the Properties palette scroll bar? Yes, it is thin but there is no way to adjust that within Autocad. If it bothers you, I think QuickPik is probably your only option. Have you tried it? I stopped using the Properties palette a few years ago. I use Quick Properties and customize it so I only see the properties that I need instead a big palette full of stuff I have to scroll through.
  30. 1 point
    The system variable that you require for this task is AUTOSNAP. This system variable is bit-coded, with the following bit codes exhibiting the associated behaviour as described below: 0 Turns off the AutoSnap marker, tooltips, and magnet. Also turns off polar tracking, object snap tracking, and tooltips for polar tracking, object snap tracking, and Ortho mode 1 Turns on the AutoSnap marker 2 Turns on the AutoSnap tooltips 4 Turns on the AutoSnap magnet 8 Turns on polar tracking 16 Turns on object snap tracking 32 Turns on tooltips for polar tracking, object snap tracking, and Ortho mode As such, to control Polar tracking, you'll need to flip bit 8. Since we're working with a bit-coded integer, it is easiest & most appropriate to manipulate this value using the various bitwise functions defined in AutoLISP: boole, logand, logior, ~. Below are a few examples demonstrating how to accomplish this: Turn on Polar Tracking: (setvar 'autosnap (logior 8 (getvar 'autosnap))) Note that the above is still applicable even when polar tracking is already turned on, since logior implements inclusive OR logic (hence the name "ior"): _$ (logior 8 39) 47 _$ (logior 8 47) 47 Check if Polar Tracking is enabled: _$ (= 8 (logand 8 (getvar 'autosnap))) T Turn off Polar Tracking: (setvar 'autosnap (logand (~ 8) (getvar 'autosnap))) Note that the above is performing a bitwise AND against the 1's-complement of 8 which is 31-bits set to 1 with bit 8 set to 0, that is, returning all bits except bit 8: _$ (int->bin (~ 8)) "11111111111111111111111111110111" 11111111111111111111111111110111 = (~ 8) = -9 00000000000000000000000000101111 = 47 ---------------------------------- LOGAND 00000000000000000000000000100111 = 39 Check if Polar Tracking is disabled: _$ (zerop (logand 8 (getvar 'autosnap))) T Toggle Polar Tracking: _$ (setvar 'autosnap (boole 6 8 (getvar 'autosnap))) 47 _$ (setvar 'autosnap (boole 6 8 (getvar 'autosnap))) 39 Here, supplying the first argument of 6 to the boole function results in bitwise XOR logic (exclusive OR): 00000000000000000000000000001000 = 8 00000000000000000000000000101111 = 47 ---------------------------------- XOR 00000000000000000000000000100111 = 39 00000000000000000000000000001000 = 8 00000000000000000000000000100111 = 39 ---------------------------------- XOR 00000000000000000000000000101111 = 47
  31. 1 point
    Go to Options > Display > Layout Elements > Display Layout and Model tabs.
  32. 1 point
    The above could alternatively be written: (defun LM:data->xdata ( x ) (cond ( (= 'str (type x)) (list (cons (if (handent x) 1005 1000) x))) ( (= 'real (type x)) (list (cons 1040 x))) ( (= 'int (type x)) (list (cons (if (< -32769 x 32768) 1070 1071) x))) ( (= 'list (type x)) (append '((1002 . "{")) (apply 'append (mapcar 'LM:data->xdata x)) '((1002 . "}")))) ( (list (cons 1000 (vl-prin1-to-string x)))) ) )
  33. 1 point
    Rlx has done the answer but a list of lists may be usefull for other than "PV". Using lee's LM:str->lst (("PV1" 2 2)("PV2" 6 6) ("PV3" 8 10))
  34. 1 point
    oh darn , too late again... awell... (defun SplitStr ( s d / p ) (if (setq p (vl-string-search d s))(cons (substr s 1 p) (SplitStr (substr s (+ p 1 (strlen d))) d)) (list s))) (defun istext (s)(if (= (type s) 'str) t nil)) (defun plc (p l c)(entmakex (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline")(cons 8 l)(cons 90 (length p))(cons 70 c))(mapcar '(lambda (pt) (cons 10 pt)) p)))) (defun t1 (sl / pl )(and (vl-consp sl)(vl-every 'istext sl)(vl-every '(lambda (x)(wcmatch x "*;*;*")) sl) (vl-consp (setq pl (mapcar '(lambda (x)(mapcar 'atoi (cdr (SplitStr x ";")))) sl))) (plc pl "0" 0))) ; test : (t1 '("PV1;2;2" "PV2;6;6" "PV3;8;10"))
  35. 1 point
    You could use a function such as my String to List function to convert the string to a list using a supplied token, for example: (defun c:desenha2 ( / des lst str txt ) (if (setq txt (getfiled "Esse é o título da cx de diálogo" (strcat (getvar 'dwgprefix) (vl-filename-base (getvar 'dwgname))) "txt" 8)) (if (setq des (open txt "r")) (progn (while (setq str (read-line des)) (setq lst (cons (LM:str->lst str ";") lst)) ) (close des) (if (setq lst (vl-remove nil (mapcar (function (lambda ( i / n x y ) (if (and (wcmatch (car i) "PV*") (setq n (atoi (substr (car i) 3))) (setq x (distof (cadr i) 2)) (setq y (distof (caddr i) 2)) ) (list n 10 x y) ) ) ) lst ) ) ) (entmake (append (list '(000 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") (cons 90 (length lst)) '(070 . 0) ) (mapcar 'cdr (vl-sort lst '(lambda ( a b ) (< (car a) (car b))))) ) ) ) ) (princ "\nUnable to open file for reading.") ) (princ "\n*Cancel*") ) (princ) ) ;; String to List - Lee Mac ;; Separates a string using a given delimiter ;; str - [str] String to process ;; del - [str] Delimiter by which to separate the string ;; Returns: [lst] List of strings (defun LM:str->lst ( str del / pos ) (if (setq pos (vl-string-search del str)) (cons (substr str 1 pos) (LM:str->lst (substr str (+ pos 1 (strlen del))) del)) (list str) ) ) (princ)
  36. 1 point
    Hi, An example of how to convert a list of strings to a list of coordinates based on your list if your list is always with the same form. (foreach str '("PV1;2;2" "PV2;6;6" "PV3;8;10") (setq lst (cons (read (strcat "(" (vl-string-translate ";" "," (substr str 5)) ")")) lst)) ) You need to reverse the list afterwards.
  37. 1 point
    Anyone have any idea when Micorstation is actually going to fix their text issue of not wrapping. Im sick and tired of this crappy software not being smart enough to realize that a word needs to wrap the whole word and not just the last letter or two. You would think a company like Bentley would actually figure out how to properly work this into their software. Its just another reason I hate this software.
  38. 1 point
    I was recently contacted by Brad Holden, AutoCAD product manager. He is looking for some assistance from regular users of AutoLISP. He'd like help beta testing some LISP functionality in AutoCAD Mac, and later on Windows. The Autodesk team have created an invitation link for members of this community: https://feedback.autodesk.com/key/AfraLISP Do help if you can.
  39. 1 point
    Everything is possible. In etransmit dialog add a check mark "disable dynamic blocks" . So the end user will get the same blocks but static.
  40. 1 point
    The reason that you don't find many plans that show dimensions is because it is generally considered proprietary information and most firms are showing a generality because any plan is highly customizable. my suggestion would be to get a tape measure, pencil, sketch pad, and an extra set of hands and measure the exterior of a small building/shed as well as the interior and try to reproduce the measured results.
  41. 1 point
    Triangulate, where ever possible measure in triangles, never expect a square to be square. If possible lay two straight edges out either side of the circle and position them so that the distance between is equal (diameter, easiest with 2 people) and do that in a few places to check it is round, even the suns shadow should give a pretty good diameter measure.
  42. 1 point
    Or perhaps: (defun c:test ( / c ) (if (setq c (acad_colordlg 1)) (modifyselection c)) (princ) )
  43. 1 point
    I should have guessed when I saw the other thread you started that you were a reluctant Penn-Foster student. Bottom line: the majority of us will not create drawings for students nor hand over drawings we have created on our own for classes that we took. It's nothing personal mind you but most of us feel it is the responsibility of the student to do the work and receive the grade. While I understand and sympathize with the position you are in personally I would not feel right giving you, even for payment, the drawing files necessary to complete the course and get your certificate. If you change your mind I'd be happy to assist you in doing the drawings as far as advice and images go but that is the best I can offer. Please give it some thought. Regards, ReMark
  44. 1 point
    You're looking for a "miracle' button and I'm afraid I am the bearer of bad news. There isn't one. But don't give up hope. There are a couple of lists floating about this site that address slow performance of AutoCAD and things one can do to speed things up. A search should turn up one or both lists. Also check out the Similar Threads listed below.
  45. 1 point
    Are you running 32-bit or 64-bit Windows 7? If 32-bit version you will be limited to the ram it can use. If you have 64-bit, then I am stumped. It should use all of your ram.
  46. 1 point
    Please read this first, yes it is long . I need to fix the formating AutoCAD 2000 3D FAQ This FAQ answers the following questions: Q1: How do I speed up 3D redraws in SHADEMODE and 3DORBIT? Q2: Why does the model change from shaded to wireframe to boxes while I manipulate the view in 3DORBIT? Q3: How do I set the center of rotation for 3DORBIT? Q4: Do I need to download a Heidi driver for my card to enable 3D hardware accleration? Q5: Which video cards are capable of hardware accelerated 3D in AutoCAD 2000? Q6: Why do my objects disappear when I enable materials? ------------------------------------------------------------- ------------------ - Q1: How do I speed up 3D redraws in SHADEMODE and 3DORBIT? 1. Enable 3D hardware acceleration. Installing a video card with robust hardware-acclerated OpenGL 1.1 support will dramatically increase 3D performance. If you do have one, enable hardware acceleration through Tools->Options->System->Current 3D Graphics Display->Properties->Acceleration->Hardware, and select "wopengl6.hdi". 2. Set the DISPSILH sysvar to 0. 3. Turn off dynamic tessellation through Tools->Options->System->Current 3D Graphics Display->Properties->Dynamic Tessellation. 4. Select only those entities you wish to view before invoking 3DORBIT. 3DORBIT will only display what you selected. If you do not select any entities, 3DORBIT will display the entire model. ----------------------------------------------------------------- -------------- - Q2: Why does the model change from shaded to wireframe to boxes while I manipulate the view in 3DORBIT? 3DORBIT will maintain a minimum frame rate by drawing the model as a wireframe or bounding boxes, if necessary, while you are manipulating the view. You can turn this off through Tools->Options->System->Current 3D Graphics Display->Properties->Adaptive Degradation. Uncheck Wireframe and Bounding Box, and set Maintain Speed to 1 FPS. Alternatively, you can use Continuous Orbit (3DCORBIT), which never uses Adaptive Degradation. ----------------------------------------------------------- -------------------- - Q3: How do I set the center of rotation for 3DORBIT? There are three ways to set the center of rotation for use with the 3DORBIT command, depending on what you want to rotate about: 1. If you want to rotate about the MODEL CENTER, invoke 3DORBIT, then select More->Zoom Extents from the right-click menu. 2. If you want to rotate about an ENTITY or ENTITY SET, select the entity or entities, invoke 3DORBIT, then select More->Zoom Extents from the right-click menu. At this point, you can orbit about your selected entity or entity set. To view the entire model while orbiting about the selected entity or entities, exit then re-enter 3DORBIT. 3. If you want to rotate about a POINT, invoke CAMERA, accept the default position, and then type or select the target point (using OSNAP can be handy here). Then invoke 3DORBIT. --------------------------------------------------------------- ---------------- - Q4: Do I need to download a Heidi driver for my card to enable 3D hardware accleration? You do not need to download any Heidi driver to enable 3D hardware acceleration in AutoCAD 2000. As long as you have a video card with robust hardware-acclerated OpenGL support, and you have 3D hardware accleration enabled, you will be ready to go. -------------------------------------------------------------------- ----------- - Q5: Which video cards are capable of hardware accelerated 3D in AutoCAD 2000? While we can't make any specific card recommendations, we can say that a robust OpenGL driver is required. Specifically, the card should include an OpenGL 1.1 ICD (Installable Client Driver). Some cards will mention OpenGL support through an MCD, MiniGL, or QuakeGL. These cards are generally not capable of providing hardware accelerated 3D in AutoCAD 2000. Video card manufacturers often update their OpenGL drivers with bug fixes and performance enhancements. If you are having trouble which seems video-related, visit your card manufacturer's website for their latest OpenGL drivers. If you are still having trouble, post to this newsgroup and we'll try to help. ------------------------------------------------------------------ ------------- - Q6: Why do my objects disappear when I enable materials? 3DORBIT and SHADEMODE support material colors, but not material textures (this includes bitmaps, bumpmaps, and the 3d textures granite, marble and wood). Many materials with textures have underlying black colors, causing the object to be drawn in black and seemingly disappear. You can fix this through the RMAT command: select the material in question, choose Modify, then set Color/Pattern, Ambient, and Reflection to a lighter color. -------------------------------------------------------------------------------- Reply From: [Autodesk], Erik Larsen Date: Jul/14/99 - 20:58 (GMT) Re: AutoCAD 2000 3D FAQ AutoCAD 2000 3D FAQ June-July 1999 This FAQ answers the following questions: Q1: How do I speed up 3D redraws in SHADEMODE and 3DORBIT? Q2: Why does the model change from shaded to wireframe to boxes while I manipulate the view in 3DORBIT? Q3: How do I set the center of rotation for 3DORBIT? Q4: Do I need to download a Heidi driver for my card to enable 3D hardware accleration? Q5: Which video cards are capable of hardware accelerated 3D in AutoCAD 2000? *Q6: Why is my 3D video card unable to accelerate 3D at 1600x1200 resolution? *Q7: How can I make hidden lines display more accurately in hardware acceleration mode? Q8: Why do my objects disappear when I enable materials? *Q9: Why does my drawing become dark when I enable materials? *New this release. --------------------------------------------------------------- ---------------- - Q1: How do I speed up 3D redraws in SHADEMODE and 3DORBIT? 1. Enable 3D hardware acceleration. Installing a video card with robust hardware-acclerated OpenGL 1.1 support will dramatically increase 3D performance. If you have a video card with this capability, you can enable hardware acceleration through Tools->Options->System->Current 3D Graphics Display->Properties->Acceleration->Hardware, and select "wopengl6.hdi". 2. Set the DISPSILH sysvar to 0. 3. Turn off dynamic tessellation through Tools->Options->System->Current 3D Graphics Display->Properties->Dynamic Tessellation. 4. Select only those entities you wish to view before invoking 3DORBIT. 3DORBIT will only display what you selected. If you do not select any entities before invoking 3DORBIT, 3DORBIT will display the entire model. 5. Try running at a lower desktop resolution. For example, if you are running at 1600x1200, try running at 1280x1024. ------------------------------------------------------------- ------------------ - Q2: Why does the model change from shaded to wireframe to boxes while I manipulate the view in 3DORBIT? 3DORBIT will maintain a minimum frame rate by drawing the model as a wireframe or bounding boxes, if necessary, while you are manipulating the view. You can turn this off through Tools->Options->System->Current 3D Graphics Display->Properties->Adaptive Degradation. Uncheck Wireframe and Bounding Box, and set Maintain Speed to 1 FPS. Alternatively, you can use Continuous Orbit (3DCORBIT), which never uses Adaptive Degradation. ----------------------------------------------------------- -------------------- - Q3: How do I set the center of rotation for 3DORBIT? There are three ways to set the center of rotation for use with the 3DORBIT command, depending on what you want to rotate about: 1. If you want to rotate about the model center, invoke 3DORBIT, then select More->Zoom Extents from the right-click menu. 2. If you want to rotate about an entity or entity set, select the entity or entities, invoke 3DORBIT, then select More->Zoom Extents from the right-click menu. At this point, you can orbit about your selected entity or entity set. To view the entire model while orbiting about the selected entity or entities, exit then re-enter 3DORBIT. 3. If you want to rotate about a point, invoke CAMERA, accept the default position, and then type or select the target point (using OSNAP can be handy here). Then invoke 3DORBIT. --------------------------------------------------------------- ---------------- - Q4: Do I need to download a Heidi driver for my card to enable 3D hardware accleration? You do not need to download any Heidi driver to enable 3D hardware acceleration in AutoCAD 2000. As long as you have a video card with robust hardware-acclerated OpenGL 1.1 support, and you have 3D hardware accleration enabled, you will be ready to go. -------------------------------------------------------------------- ----------- - Q5: Which video cards are capable of hardware accelerated 3D in AutoCAD 2000? While we can't make any specific card recommendations, we can say that a robust OpenGL driver is required. Specifically, the card must include an OpenGL 1.1 ICD (Installable Client Driver). Some cards will mention OpenGL support through an MCD, MiniGL, or QuakeGL. These cards are generally not capable of providing hardware accelerated 3D in AutoCAD 2000. For a good starting point in selecting a 3D video card to use with AutoCAD 2000, try this link: http://ktx.com/support/html/tested_graphics_cards.html Video card manufacturers often update their OpenGL drivers with bug fixes and performance enhancements. If you are having trouble which seems video-related, visit your card manufacturer's website for their latest OpenGL drivers. If you are still having trouble, post to this newsgroup and we'll try to help. ------------------------------------------------------------------ ------------- - *Q7: Why is my 3D video card unable to accelerate 3D at 1600x1200 resolution? While a 3D video card may be capable of displaying at 1600x1200 desktop resolution, it may not be capable of accelerating 3D at that resolution. This is due to the much greater memory requirements of 3D. The following table shows how much memory your 3D video card must have to accelerate AutoCAD 3D at a given desktop resolution: If you need to run With 32 bits of With 24 bits of With 16 bits of AutoCAD at a desktop color and z-buffer color and z-buffer color and z-buffer resolution of... accuracy: accuracy: accuracy: ------------------- ------------------ ------------------ ------------------ 640x480 3.5 MB 2.6 MB 1.8 MB 800x600 5.5 MB 4.1 MB 2.7 MB 1024x768 9.0 MB 6.8 MB 4.5 MB 1152x864 11.4 MB 8.5 MB 5.7 MB 1280x1024 15.0 MB 11.3 MB 7.5 MB 1600x1200 22.0 MB 16.5 MB 11.0 MB As you can see from the table above, in order to accelerate 3D in AutoCAD at 1600x1200, you need at least 11 MB on your video card. What exactly does "32 bits/24 bits/16 bits of color and z-buffer accuracy" mean? In order for your 3d video card to accelerate 3d operatons, it needs a certain amount of memory to display colors and obscure hidden surfaces at each pixel. The accuracy with which a card can color each pixel varies, but the most common amounts are 24 bits (displaying 16 million colors) and 16 bits (displaying 65 thousand colors). Similarly, the accuracy with which a card can determine hidden surfaces (called depth- or z-buffering) also commonly requires 24 or 16 bits per pixel. Additonally, for smooth animation, the card must work on the next frame while simultaneously displaying the current frame to the user (called double-buffering). All of these requirements result in much greater memory requirements for 3D versus 2D. -------------------------------------------------------------------- ----------- - *Q7: How can I make hidden lines display more accurately in hardware acceleration mode? In hidden line shademode (SHADEMODE H), if you are seeing lines that should be hidden, try the following workaround. Invoke the 3D clipping planes window (3DCLIP), enable the front clipping plane, then move the front clipping plane away from your objects (drag downward in the clipping window). You may want to zoom extents (ZOOM E) prior to invoking 3DCLIP, to ensure that you can move the front clipping plane away from all of your objects. --------------------------------------------------------------- ---------------- - Q8: Why do my objects disappear when I enable materials? 3DORBIT and SHADEMODE support material colors, but not material textures (this includes bitmaps, bumpmaps, and the 3d textures granite, marble and wood). Many materials with textures have underlying black colors, causing the object to be drawn in black and seemingly disappear. You can fix this through the RMAT command: select the material in question, choose Modify, then set Color/Pattern, Ambient, and Reflection to a lighter color. ----------------------------------------------------------------- -------------- - *Q9: Why does my drawing become dark when I enable materials? The global material used by RENDER is dark by default. When you enable materials and use SHADEMODE or 3DORBIT, this global material is used. To fix this, invoke the RMAT command, select *GLOBAL* from the list of materials, select Modify, and change Value to 1.0 for each of Color/Pattern, Ambient, and Reflection.
  47. 1 point
  48. 1 point
    Please try this: ;; Restore Attribute Position ~ By Lee Mac ~ 12.12.2009 (defun c:ResAtt (/ *error* BLK DOC ENT NPT OBJ UFLAG VEC) (vl-load-com) (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (defun *error* (msg) (and uflag (vla-EndUndoMark doc)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ)) (while (progn (setq ent (car (nentsel "\nSelect Attribute to Reset: "))) (cond ( (eq 'ENAME (type ent)) (if (eq "AcDbAttribute" (vla-get-ObjectName (setq obj (vlax-ename->vla-object ent)))) (if (eq :vlax-true (vla-get-LockPosition obj)) (princ "\n** Invalid Attribute Type **") (progn (setq uflag (not (vla-StartUndoMark doc))) (vlax-for sub (vla-item (vla-get-Blocks doc) (vla-get-Name (setq blk (vla-ObjectIdtoObject doc (vla-get-OwnerID obj))))) (if (and (eq "AcDbAttributeDefinition" (vla-get-ObjectName sub)) (apply (function eq) (mapcar (function strcase) (mapcar (function vla-get-TagString) (list obj sub))))) (setq vec (vlax-safearray->list (vlax-variant-value (vlax-get-property sub (if (eq acAlignmentLeft (vla-get-Alignment obj)) 'InsertionPoint 'TextAlignmentPoint))))))) (if vec (progn (setq nPt (mapcar (function +) (vlax-safearray->list (vlax-variant-value (vla-get-InsertionPoint blk))) vec)) (vlax-put-property obj (if (eq acAlignmentLeft (vla-get-Alignment obj)) 'InsertionPoint 'TextAlignmentPoint) (vlax-3D-point nPt)))) (setq uflag (vla-EndUndoMark doc)))) (princ "\n** Object Must be an Attribute **")))))) (princ))
  49. 1 point
    "But then, I still roll my pencil when I draw a line...the old guys will know what I mean." I know exactly what you mean. And who are you calling OLD? There's a thread around here somewhere that's an entire trip down memory lane when it comes to board drafting. It's a hoot to read. Brings back such fond memories (maybe "fond" isn't quite the right word). Anyone who has ever done drafting on the board will appreciate it. Those who haven't will just scratch their heads and wonder what we're talking about. I'm still a firm believer that prior to immediately jumping into CAD, junior-high and high school students leaning in the direction of CAD be required to take one semester of manual drafting. They'll have a much better appreciation for CAD once they do. triangles - straightedges - pounce - sharpeners - erasing shields... The good old days?
  50. -1 points
    All enumerations will evaluate to either an integer or some other constant data type - hence the name; the protected symbol is merely used to give some meaning to an otherwise 'magic number' e.g. (eval acbylayer) = 256. I strongly disagree with your suggested 'timesaver' as it will render code unreadable and completely defeats the self-documenting purpose of the enumeration symbol.
  • Newsletter

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