MattMc Posted October 13, 2020 Share Posted October 13, 2020 (edited) Hi Im a complete novice at lisp routines and I’m having trouble finding something out there that has been written already, to do what I need it to. Problem 1: I need LISP routine to annotate a level where I chose a point on a point cloud. Failing that, one which I can click a point on the 3D Polylines, like I do currently but will annotate with text and potentially a block symbol too, instead of having to type the value. Problem 2: I need a LISP which utilises the DIST command and then annotates the Delta Z value for me when I select between two points on 3D Polylines. Could anyone help with the coding, I have tried a few things but I’m completely out of my depth. Thanks Matt Edited October 13, 2020 by MattMc Quote Link to comment Share on other sites More sharing options...
BIGAL Posted October 13, 2020 Share Posted October 13, 2020 (edited) Here is a start at a very basic level, and can be improved on. Uses text style "Standard" with style height set to 0.0. Re using blocks say RL=xxx in a box thats also your homework. txtpt just pick a point. txt2pt just pick 2 points and drag the mouse for angle or type a value. The sort of additional options are align text based on points picked and check readability. That's your homework only way to learn ! (defun c:txtpt ( / pt z oldsnap) (setq oldsnap (getvar 'osmode)) ; save the current osnap settings (setvar 'osmode 9) ; set the osnaps to node & end (while (setq pt(getpoint "\nPick point or end Enter to exit ")) ; pick end or point continue till press Enter (setq z (caddr pt)) ; get z value (command "text" "S" "Standard" pt 2.5 0.0 (rtos z 2 3) ) ; write the text using Standard and a height of 2.5 with 3 decs ) ; end while (setvar 'osmode oldsnap) ; reset osnaps (princ) ) (c:txtpt) (defun c:txt2pt ( / pt1 pt2 z1 z2 oldsnap diff) (setq oldsnap (getvar 'osmode)) (setvar 'osmode 9) (while (setq pt1 (getpoint "\nPick point or end Enter to exit ")) (setq pt2 (getpoint "\nPick next point ")) (setq z1 (caddr pt1)) (setq z2 (caddr pt2)) (setq diff (rtos (abs (- z1 z2)) 2 3)) (setq pt (mapcar (function (lambda (a b) (/ (+ a b) 2.0))) pt1 pt2)) (setq pt (list (car pt)(cadr pt))) ; remove z for text command (setvar 'osmode 0) (command "text" "S" "Standard" pt 2.5 pause diff ) (setvar 'osmode 9) ) (setvar 'osmode oldsnap) (princ) ) You said you google'd you must not have looked to hard there is plenty of other examples out there, try "leader Point Autocad" Edited October 13, 2020 by BIGAL 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.