TheSwamp

Code Red => AutoLISP (Vanilla / Visual) => Topic started by: GDF on July 15, 2019, 06:14:05 PM

Title: Get architectural units?
Post by: GDF on July 15, 2019, 06:14:05 PM
How would I modify the code to get architectural units? Sorry I don't know the original author?

;;objText      (vlax-invoke  objBlock "addtext" (vl-princ-to-string (- sngDistance1 sngDistance0)) lstMidPoint 9.6)
objText      (vlax-invoke  objBlock "addtext" (vl-princ-to-string (- (/ sngDistance1 12) (/ sngDistance0 12))) lstMidPoint 9.6)

Code: [Select]
(defun C:TextPL (/ lstMidPoint
                   obj
                   objBlock
                   objDocument
                   objText
                   sngDistance0
                   sngDistance1
                   sngParam
                 )
 (setq obj         (vlax-ename->vla-object (car (entsel "\nSelect Polyline: ")))
       objDocument (vla-get-activedocument (vlax-get-acad-object))
       objBlock    (vla-objectidtoobject objDocument (vla-get-ownerid obj))
 )
 (repeat (fix (setq sngParam (vlax-curve-getendparam obj)))
  (setq sngParam     (1- sngParam)
        lstPoint0    (vlax-curve-getpointatparam obj sngParam)
        sngDistance0 (vlax-curve-getdistatparam  obj sngParam)
        lstMidPoint  (vlax-curve-getpointatparam obj (+ sngParam 0.5))
        lstPoint1    (vlax-curve-getpointatparam obj (1+ sngParam))
        sngDistance1 (vlax-curve-getdistatparam  obj (1+ sngParam))
        objText      (vlax-invoke  objBlock "addtext" (vl-princ-to-string (- sngDistance1 sngDistance0)) lstMidPoint 9.6)
  )
  (vla-put-alignment objText 4)
  (vlax-invoke objText "move" (list 0.0 0.0 0.0) lstMidPoint)
  (vla-put-rotation  objText (angle lstPoint0 lstPOint1))

 )
 (princ)
)
Title: Re: Get architectural units?
Post by: GDF on July 15, 2019, 06:26:40 PM
objText      (vlax-invoke  objBlock "addtext" (rtos (- (/ sngDistance1 12) (/ sngDistance0 12)) 4 6) lstMidPoint 9.6)

Now how do I get the dash inbetween the feet and inches?
Title: Re: Get architectural units?
Post by: GDF on July 16, 2019, 08:53:34 AM
duh...
(setvar "unitmode" 0)
Title: Re: Get architectural units?
Post by: Tharwat on July 16, 2019, 08:54:36 AM
Hi,
Take a ride with this http://docs.autodesk.com/ACD/2011/ENU/filesALR/WS1a9193826455f5ff1a32d8d10ebc6b7ccc-6960.htm (http://docs.autodesk.com/ACD/2011/ENU/filesALR/WS1a9193826455f5ff1a32d8d10ebc6b7ccc-6960.htm)
Title: Re: Get architectural units?
Post by: GDF on July 16, 2019, 10:45:44 AM
Thanks

I use this routine in my Design dialog box.

Updated code
Code: [Select]
(defun c:TextPt  ( / lstMidPoint
                   obj
                   objBlock
                   objDocument
                   objText
                   sngDistance0
                   sngDistance1
                   sngParam
                 )
 (ARCH:F_S-VAR)
 (setvar "LUNITS" 4)
 (setvar "unitmode" 0)
 (ARCH:LYR "AREA")
 (ARCH:SET-AREA2)
 (setq obj         (vlax-ename->vla-object (car (entsel "\n* Select Polyline: ")))
       objDocument (vla-get-activedocument (vlax-get-acad-object))
       objBlock    (vla-objectidtoobject objDocument (vla-get-ownerid obj))
 )
 (repeat (fix (setq sngParam (vlax-curve-getendparam obj)))
  (setq sngParam     (1- sngParam)
        lstPoint0    (vlax-curve-getpointatparam obj sngParam)
        sngDistance0 (vlax-curve-getdistatparam  obj sngParam)
        lstMidPoint  (vlax-curve-getpointatparam obj (+ sngParam 0.5))
        lstPoint1    (vlax-curve-getpointatparam obj (1+ sngParam))
        sngDistance1 (vlax-curve-getdistatparam  obj (1+ sngParam))
        ;;objText      (vlax-invoke  objBlock "addtext" (vl-princ-to-string (- sngDistance1 sngDistance0)) lstMidPoint 9.6)       
        objText      (vlax-invoke  objBlock "addtext" (rtos (- sngDistance1 sngDistance0) 4 (getvar "luprec")) lstMidPoint 9.6)
  )
  (vla-put-alignment objText 4)
  (vlax-invoke objText "move" (list 0.0 0.0 0.0) lstMidPoint)
  (vla-put-rotation  objText (angle lstPoint0 lstPOint1))
 )
 (ARCH:F_R-VAR)
 (princ)
)