Search the Community
Showing results for tags 'modify'.
Found 4 results
Hi all, I came across a LISP routine that freezes the layer of any selected object. It works great but I want it to viewport freeze layers, not freeze for the entire drawing. This is where I found it: http://forums.augi.com/showthread.php?78426-Special-Layer-Freeze-LISP-Routine and this is the code I'd like to have modified: (the code wrap button doesn't seem to work) (defun c:LFR (/ CLayer$ EntList@ EntName^ Layer$) (setq CLayer$ (getvar "CLAYER")) (princ "\nSelect object on layer to freeze") (if (setq EntName^ (car (entsel))) (progn (setq EntList@ (entget EntName^)) (setq Layer$ (cdr (assoc 8 EntList@))) (if (and (= Layer$ CLayer$)(/= Layer$ "0")) (command ".LAYER" "T" "0" "U" "0" "ON" "0" "S" "0" "") );if (if (= Layer$ "0") (princ "\nCannot freeze layer 0.") (command ".LAYER" "F" Layer$ "") );if );progn );if (princ) );defun c:LFR [code] I also attached the actual .LSP file to make it easier. LFR.LSP
Hi! Sorry if this is a really dumb or basic question. New (again) to AutoCAD -haven't used since 2006 so I am very rusty. Problem here is something I am sure is pretty simple to fix but I can't figure this out. I have two dwg's from both the architect and the designer. When I open either of the files I get a Proxy Information alert about an unavailable ObjectARX application. Then it alerts me that one or more reference files could not be located or read. If I try to open the External References palette, I get unreconciled new layers. When I am finally in the dwg, I can't access the lines to modify any of them. The only accessible layer seems to be the architect's and the designer's masthead layers. All other layers seem to be locked but I have tried doing everything from auditing and purging, I made sure Layer 0 was not frozen or locked, I have unlocked and thawed every layer but nothing allows me access to either drawings layers other than their mastheads. What simple thing am I missing to access the other layers in these files? Thanks for any input!!! My boss wants some changes made to these drawings for Monday to submit back to the architect and I'm not a designer anymore and my autocad knowledge is pretty bad now
So, to give some background information, I have 0 experience with LISP programming, and am an intern at an engineering company. I really would love to score "brownie points" by automating an extremely boring and time consuming task. I have experience with other languages, and can work off of a good base. So here's what I would like the routine to accomplish: 1.) Figure out the name of the title block (the title block will be in the same location on each and every file) 2.) Use that name to modify 5 attribute values of that block (each title block has the same attribute tags: NAME, DRAWING_NUM, SN, DATE, DESIGNER) 3.) Save in a new location. So, for example, lets say the drawing I want to modify is at the location C:/USER/ME/, and is called drawing1.dwg. Lets say that it's title block is called "blanksheet", the routine then needs to modify the 5 attributes (NAME: DrawingName, DRAWING_NUM: 123456, SN: 000, DATE: 10 10 12, DESIGNER: Me) of the block "blanksheet". Then, after it modifies everything, saves it in the location C:/USER/YOU, and is called drawing2.dwg. I'm not even sure if this is doable within the bounds of AutoLISP, so any feedback is appreciated. Thanks in advance!
I was wondering what do i need to add or modify the attach file to produce a result like this " 1@length" right now it just produces "length". I'm a novice at lisp routines but i'm learning, i can change a few things to make it do what i need it to do but this ones has gotten me stumped. Any help would be greatly appreciated. Thanks, Brian ;Extrusion Length (defun c:EXTL (/ cEnt tStr tBox tHgt tWid gr sPt cPt lAng bPt tPt pt1 pt2 pt3 pt4) (vl-load-com) (if (and (setq cEnt (car (entsel "\nSelect Object: "))) (member (cdr (assoc 0 (entget cEnt))) '("LWPOLYLINE" "POLYLINE" "LINE"))) (progn (setq tStr (rtos (- (vla-get-length (vlax-ename->vla-object cEnt)) 4.)) tBox (textbox (list (cons 1 tStr) (cons 40 (getvar "TEXTSIZE")))) tHgt (- (cadadr tBox) (cadar tBox)) twid (- (caadr tBox) (caar tBox))) (princ "\nPosition Text...") (while (eq 5 (car (setq gr (grread t 5 0)))) (redraw) (if (listp (setq sPt (cadr gr))) (progn (setq cPt (vlax-curve-getClosestPointto cEnt sPt) lAng (angle cPt sPt) bpt (polar cPt lAng (/ (getvar "TEXTSIZE") 2.)) tpt (polar bpt lAng tHgt) mPt (polar bPt lAng (/ tHgt 2.)) pt1 (polar bpt (+ lAng (/ pi 2.)) (/ tWid 2.)) pt2 (polar bPt (- lAng (/ pi 2.)) (/ tWid 2.)) pt3 (polar tpt (+ lAng (/ pi 2.)) (/ tWid 2.)) pt4 (polar tPt (- lAng (/ pi 2.)) (/ tWid 2.))) (grvecs (list -3 pt1 pt2 pt3 pt4 pt1 pt3 pt2 pt4))))) (if (eq 3 (car gr)) (progn (setq lAng (- lAng (/ pi 2.))) (cond ((and (> lAng (/ pi 2)) (<= lAng pi)) (setq lAng (- lAng pi))) ((and (> lAng pi) (<= lAng (/ (* 3 pi) 2))) (setq lAng (+ lAng pi)))) (Make_Text mPt tStr lAng)))) (princ "\n<!> Incorrect Selection <!>")) (redraw) (princ)) (defun Make_Text (pt val rot) (entmake (list (cons 0 "TEXT") (cons 8 (getvar "CLAYER")) (cons 62 1) (cons 10 pt) (cons 40 (getvar "TEXTSIZE")) (cons 1 val) (cons 50 rot) (cons 7 (getvar "TEXTSTYLE")) (cons 71 0) (cons 72 1) (cons 73 2) (cons 11 pt))))