Message 1 of 12
entsel not working properly
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I am writing a lisp that prompts the user to select a beam line and then it changes the layer of the line (to a layer for moment frame beams) and adds triangle blocks to each end rotated 90 degrees perpendicular to selected line.
When I run the lisp, it prompts to select beam line to convert to MF line but when I do it says *invalid selection* and then prompts you to "select objects" so it's not recognizing the line saved with entsel. When I proceed with "select objects" it disregards the lisp and has you change properties manually. Can anyone show me what I'm doing wrong?
Here is the lisp code:
(vl-load-com)
(defun c:b2mf (/ l0 l1 l2 e1 p1 p2 beamang)
(c:dunn_get_lay)
(setq l0 (getvar "clayer") ;get current layer
l1 (strcat level "_S-BEAM-MF") ;set layer for moment frame beam
l2 (strcat level "_S-COLS-MF") ;set layer for moment frame triangle
e1 (car (entsel "\nSelect Beam to Convert: ")) ;selects beam and saves to e1
p1 (cdr (assoc 10 (entget e1))) ;gets first point of beam from e1
p2 (cdr (assoc 11 (entget e1))) ;gets second point of beam from e1
beamang (cdr (assoc 50 (entget e1))) ;gets angle of beam e1
);setq
(while (/= e1 nil)
(progn
(command "CHPROP" e1 "la" l1 "") ;select line saved to e1 and change layer to l1
(setvar "clayer" l2) ;sets the layer for inserting moment frame triangles
(command "INSERT" "MFTRIANGLE.dwg" p1 1 1 (+ beamang 90.0)) ;insert moment triangle block at point p1 rotated 90 degrees relative to e1
(command "INSERT" "MFTRIANGLE.dwg" p2 1 1 (+ beamang 180.0)) ;insert moment triangle block at point p2 rotated 180 degrees relative to e1
);progn
(setq e1 (car (entsel "\nSelect Beam to Convert or <Enter> to Quit: "))
);while
(setvar "clayer" l0) ;returns current layer to l0
(princ "Converted to Moment Frame Beam")
(princ))
);defun