7empest Posted September 4 Author Posted September 4 (edited) 19 hours ago, BIGAL said: You are right ignore Item 1 comment that is is mid point between 2 points. If you want the text further inside the lots need to rework out the text position. Change the 1.1 or change the (* 1.1 ts) to a offset distance. eg 2.5 number only no brackets. (vla-put-TextAlignmentPoint to (vlax-3D-point (polar m (+ ta (/ pi 2.)) (* 1.1 ts)))) (vla-put-TextAlignmentPoint to (vlax-3D-point (polar m (+ ta (/ pi 2.)) 2.5))) You're a genius! It worked! Now, for some reason I am still only getting whole numbers appearing as 1 decimal place again. I feel like it almost has a mind of its own. I have attached the code in case I am missing something obvious. Edit: I've tried it on a different file and suddenly it shows it to 2 decimal places on whole numbers. I'll keep playing around with it until i can find the cause Edit 2: okay found the fix.. it only happened when I started a new drawing. So what i needed to do was to do a single dimension with 2 decimal places THEN the lsp will recognize the dim at 2 value.. Not sure why but it fixed the issue. Lol ;;-------------=={ Length Between Intersections }==-----------;; ;; ;; ;; Displays the length of segments of a curve divided at ;; ;; intersections with other objects. ;; ;;------------------------------------------------------------;; ;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;; ;;------------------------------------------------------------;; ;; Version 1.4 - 26-04-2011 ;; ;;------------------------------------------------------------;; (defun c:IntLen ( / *error* _iscurveobject e ) (defun *error* ( msg ) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (defun _IsCurveObject ( entity / param ) (and (not (vl-catch-all-error-p (setq param (vl-catch-all-apply 'vlax-curve-getendparam (list entity)) ) ) ) param ) ) (if (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar 'CLAYER)))))) (princ "\n--> Current Layer Locked.") (while (progn (setvar 'ERRNO 0) (setq e (car (entsel))) (cond ( (= 7 (getvar 'ERRNO)) (princ "\n--> Missed, Try again.") ) ( (eq 'ENAME (type e)) (if (_iscurveobject e) (LM:IntersectionLengths e) (princ "\n--> Invalid Object Selected.") ) t ) ) ) ) ) (princ) ) ;;------------------------------------------------------------;; (defun c:IntLenM ( / *error* ss i ) (defun *error* ( msg ) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (if (= 4 (logand 4 (cdr (assoc 70 (tblsearch "LAYER" (getvar 'CLAYER)))))) (princ "\n--> Current Layer Locked.") (if (setq ss (ssget '((0 . "ARC,CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE")))) (repeat (setq i (sslength ss)) (LM:IntersectionLengths (ssname ss (setq i (1- i)))) ) ) ) (princ) ) ;;------------------------------------------------------------;; (defun LM:IntersectionLengths ( e ;; Entity name / *error* _startundo _endundo _groupbynum _sortbyparam _makereadable _isannotative _uniquefuzz a acspc c d d1 d2 da e i l ll m o ss ta to ts ur x y ) (setq acdoc (cond ( acdoc ) ( (vla-get-activedocument (vlax-get-acad-object)) )) acspc (vlax-get-property acdoc (if (= 1 (getvar 'CVPORT)) 'Paperspace 'Modelspace)) ) (defun *error* ( msg ) (if acdoc (_EndUndo acdoc)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (defun _StartUndo ( doc ) (_EndUndo doc) (vla-StartUndoMark doc) ) (defun _EndUndo ( doc ) (if (= 8 (logand 8 (getvar 'UNDOCTL))) (vla-EndUndoMark doc)) ) (defun _GroupByNum ( l n / r) (if l (cons (reverse (repeat n (setq r (cons (car l) r) l (cdr l)) r)) (_GroupByNum l n) ) ) ) (defun _SortbyParam ( e l ) (vl-sort l '(lambda ( a b ) (< (vlax-curve-getParamatPoint e a) (vlax-curve-getParamatPoint e b)))) ) (defun _MakeReadable ( a ) ( (lambda ( a ) (cond ( (and (> a (/ pi 2)) (<= a pi)) (- a pi) ) ( (and (> a pi) (<= a (/ (* 3 pi) 2))) (+ a pi) ) ( a ) ) ) (rem a (* 2 pi)) ) ) (defun _isAnnotative ( style / object annotx ) (and (setq object (tblobjname "STYLE" style)) (setq annotx (cadr (assoc -3 (entget object '("AcadAnnotative"))))) (= 1 (cdr (assoc 1070 (reverse annotx)))) ) ) (defun _uniquefuzz ( lst fuzz ) (if lst (cons (car lst) (_uniquefuzz (vl-remove-if '(lambda ( x ) (equal x (car lst) fuzz)) (cdr lst)) fuzz ) ) ) ) (setq ts (/ (getvar 'textsize) (if (_isAnnotative (getvar 'textstyle)) (cond ( (getvar 'cannoscalevalue) ) ( 1.0 )) 1.0 ) ) ) (_StartUndo acdoc) (vla-getBoundingBox (setq o (vlax-ename->vla-object e)) 'll 'ur) (mapcar '(lambda ( x ) (set x (vlax-safearray->list (eval x)))) '(ll ur)) (if (setq l (_sortbyparam e (_uniquefuzz (apply 'append (repeat (setq i (sslength (ssdel e (setq ss (ssget "_C" (trans ur 0 1) (trans ll 0 1) '((0 . "ARC,CIRCLE,ELLIPSE,*LINE"))) ) ) ) ) (setq l (cons (_groupbynum (vlax-invoke o 'intersectwith (vlax-ename->vla-object (ssname ss (setq i (1- i)))) acextendnone ) 3 ) l ) ) ) ) 1e-8 ) ) ) (if (not (vlax-curve-isClosed e)) (progn (or (equal (vlax-curve-getStartParam e) (vlax-curve-getParamatPoint e (car l)) 0.001) (setq l (cons (vlax-curve-getStartPoint e) l)) ) (or (equal (vlax-curve-getEndParam e) (vlax-curve-getParamatPoint e (last l)) 0.001) (setq l (append l (list (vlax-curve-getEndPoint e)))) ) ) (setq c l) ) (if (vlax-curve-isClosed e) (setq l (list (vlax-curve-getStartPoint e)) c l) (setq l (list (vlax-curve-getStartPoint e) (vlax-curve-getEndPoint e))) ) ) (while (cadr l) (setq x (car l) y (cadr l) l (cdr l)) (setq m (vlax-curve-getPointatDist e (/ (+ (vlax-curve-getDistatPoint e y) (vlax-curve-getDistAtPoint e x)) 2.) ) ) (setq d (abs (- (vlax-curve-getDistatPoint e y) (vlax-curve-getDistAtPoint e x)) ) ) (setq a (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv e (vlax-curve-getParamatPoint e m)) ) ) (setq ta (_makereadable a)) (setq to (vla-AddText acspc (rtos d 2 2) (vlax-3D-point '(0. 0. 0.)) ts)) (vla-put-Alignment to acAlignmentMiddleCenter) (vla-put-TextAlignmentPoint to (vlax-3D-point (polar m (+ ta (/ pi 2.)) 0))) (vla-put-rotation to ta) ) (if (vlax-curve-isclosed e) (progn (if (= 1 (length c)) (setq c (append c c))) (setq d (+ (setq d1 (vlax-curve-getDistatPoint e (car c))) (setq d2 (- (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) (vlax-curve-getdistatpoint e (last c)))) ) ) (setq m (vlax-curve-getPointatDist e (if (< d1 (setq da (/ (+ d1 d2) 2.))) (setq da (- (vlax-curve-getdistatparam e (vlax-curve-getendparam e)) (- da d1))) (setq da (- da d2)) ) ) ) (setq a (angle '(0. 0. 0.) (vlax-curve-getFirstDeriv e (vlax-curve-getParamatPoint e m)) ) ) (setq ta (_makereadable a)) (setq to (vla-AddText acspc (rtos d 2 2) (vlax-3D-point '(0. 0. 0.)) ts)) (vla-put-Alignment to acAlignmentMiddleCenter) (vla-put-TextAlignmentPoint to (vlax-3D-point (polar m (+ ta (/ pi 2.)) 0))) (vla-put-rotation to ta) ) ) (_EndUndo acdoc) (princ) ) ;;------------------------------------------------------------;; (vl-load-com) (princ) (princ "\n:: IntLen.lsp | Version 1.4 | © Lee Mac 2011 www.lee-mac.com ::") (princ "\n:: Type \"IntLen\" or \"IntLenM\" to Invoke ::") (princ) ;;------------------------------------------------------------;; ;; End of File ;; ;;------------------------------------------------------------;; Edited September 4 by 7empest Quote
BIGAL Posted September 5 Posted September 5 Check your dimstyle make sure it has say the Dim Precision set to 0.00. Quote
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.