ysand Posted December 18, 2010 Share Posted December 18, 2010 Hello everyone. I've been looking at this old thread: http://www.cadtutor.net/forum/showthread.php?5953-lines-perpendicular-to-spline I need to use that code, but i can't seem to be able to do it, because of all the "&@40;" stuff (from what i can tell at least). Can someone re-make that last code from post #8, in a form so i can copy it, because I am less than a newbie in lisp. Thank you in advance. Quote Link to comment Share on other sites More sharing options...
David Bethel Posted December 18, 2010 Share Posted December 18, 2010 ysand, The format of the post has been changed ( probably due to being archived ) to ASCII decimal. You can do global search and replace in a text editor - Replace: ( With ( ) With ) You can use the ascii dec chart as a guide to what each value is as a character. Remember to save the file as a true ascii file. -David http://www.asciitable.com/ Quote Link to comment Share on other sites More sharing options...
ysand Posted December 18, 2010 Author Share Posted December 18, 2010 Thank you David! Quote Link to comment Share on other sites More sharing options...
David Bethel Posted December 18, 2010 Share Posted December 18, 2010 You're welcome. Have fun! -David Quote Link to comment Share on other sites More sharing options...
ysand Posted December 18, 2010 Author Share Posted December 18, 2010 Ok, this now works perfectly, but: I need it to work not only on the spline points existing, but in spaces i choose on the spline. I mean, i tried converting it to a polyline to have the points i want, but it doesn't work with polyline. If anyone could help i'd appreciate it a lot. Quote Link to comment Share on other sites More sharing options...
alanjt Posted December 20, 2010 Share Posted December 20, 2010 I use this... (defun c:LPer (/ *error* ent pt) ;; Draw line perpendicular from selected curve ;; Required Subroutines: AT:GetSel ;; Alan J. Thompson, 09.29.09 / 12.20.10 (vl-load-com) (defun *error* (msg) (and ent (redraw ent 4)) (if (and msg (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*QUIT*,"))) (princ (strcat "\nError: " msg)) ) ) (if (setq ent (car (AT:GetSel entsel "\nSelect curve: " (lambda (x) (not (vl-catch-all-error-p (vl-catch-all-apply 'vlax-curve-getEndParam (list (car x)))) ) ) ) ) ) (progn (redraw ent 3) (while (setq pt (getpoint "\nSpecify point for line: ")) (entmake (list '(0 . "LINE") (cons 10 (vlax-curve-getClosestPointToProjection ent (trans pt 1 0) '(0 0 1))) (cons 11 (trans pt 1 0)) ) ) ) ) ) (*error* nil) (princ) ) (defun AT:GetSel (meth msg fnc / ent good) ;; meth - selection method (entsel, nentsel, nentselp) ;; msg - message to display (nil for default) ;; fnc - optional function to apply to selected object ;; Ex: (AT:GetSel entsel "\nSelect arc: " (lambda (x) (eq (cdr (assoc 0 (entget (car x)))) "ARC"))) ;; Alan J. Thompson, 05.25.10 (setvar 'errno 0) (while (not good) (setq ent (meth (cond (msg) ("\nSelect object: ") ) ) ) (cond ((vl-consp ent) (setq good (cond ((or (not fnc) (fnc ent)) ent) ((prompt "\nInvalid object!")) ) ) ) ((eq (type ent) 'STR) (setq good ent)) ((setq good (eq 52 (getvar 'errno))) nil) ((eq 7 (getvar 'errno)) (setq good (prompt "\nMissed, try again."))) ) ) ) Quote Link to comment Share on other sites More sharing options...
ysand Posted December 20, 2010 Author Share Posted December 20, 2010 Hmm, are u sure the code is correct? Couldn't make it work. Quote Link to comment Share on other sites More sharing options...
alanjt Posted December 20, 2010 Share Posted December 20, 2010 Hmm, are u sure the code is correct? Couldn't make it work. Quite sure, I use it all the time. Perhaps you could share what happened when you couldn't make it work. Quote Link to comment Share on other sites More sharing options...
pBe Posted December 20, 2010 Share Posted December 20, 2010 it works perfectly fine with me Great code Alan Quote Link to comment Share on other sites More sharing options...
alanjt Posted December 20, 2010 Share Posted December 20, 2010 it works perfectly fine with me Great code Alan Thanks and enjoy. Quote Link to comment Share on other sites More sharing options...
ysand Posted December 20, 2010 Author Share Posted December 20, 2010 Ok, i might be doing it wrong. I make an .lsp file with this code. I open autocad, go to autolisp and load the file. Then i type LPer as a command, and nothing. Quote Link to comment Share on other sites More sharing options...
alanjt Posted December 20, 2010 Share Posted December 20, 2010 Are you sure you are loading the file correctly? Quote Link to comment Share on other sites More sharing options...
MarcoW Posted December 20, 2010 Share Posted December 20, 2010 Are you shure you made the extension *.lsp?? --> YOu can also save the file to eg your desktop and then drag it into the autocad screen and release it. THen it loads too. It should work. Quote Link to comment Share on other sites More sharing options...
ysand Posted December 20, 2010 Author Share Posted December 20, 2010 I guess i pasted the code wrong. It seems to work now. Thanx a million alan Can you please explain how exactly it works? The numbers i'm placing are the distance each perpendicular line is drawn from the previous one? I have to lengthen or shorten them manually? Quote Link to comment Share on other sites More sharing options...
alanjt Posted December 20, 2010 Share Posted December 20, 2010 I guess i pasted the code wrong. It seems to work now. Thanx a million alan Can you please explain how exactly it works? The numbers i'm placing are the distance each perpendicular line is drawn from the previous one? I have to lengthen or shorten them manually? The length is based on the distance from the picked point. How are you determining where on the curve to select for perpendicular line placement? Quote Link to comment Share on other sites More sharing options...
ysand Posted December 20, 2010 Author Share Posted December 20, 2010 So, i pick a point (i.e. the one end of the spline) and then if i want each perpendicular line every 1 unit, i type 1,2,3,4,5 etc? They just will be longer the farther i go? Quote Link to comment Share on other sites More sharing options...
ysand Posted December 20, 2010 Author Share Posted December 20, 2010 How are you determining where on the curve to select for perpendicular line placement? I click on the edge of the spline, and then i type the number of units i want each perpendicular line to be drawn at. Quote Link to comment Share on other sites More sharing options...
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.