Message 1 of 12
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi all forum members, I'm dealing with this task .
To box a text string ATT, and offset it and so on.
I can not get the way to get such LWpolyline coordinates to make it.
Up now, I do this
As a matter of my way to do, I want to do it by VL-functions
Hope you could help me
Thank in advance
(DEFUN TO-BOX-AN-ATT (/
ACAD-OBJ
ADOC
ATT-HEIGHT
BLK
BLK-ATT
BLK-ATT-INSPT
BLK-ATT-ROT
BLK-OBJ
BLK-SS
BOUNDING-ANG
BOUNDING-HEIGHT
BOUNDING-WIDE
MAXI
MAXI-XY
MINI
MINI-XY
MODEL
OFF-BOX
POLY-OBJ
)
(VL-LOAD-COM)
(SETQ ACAD-OBJ (VLAX-GET-ACAD-OBJECT))
(SETQ ADOC (VLA-GET-ACTIVEDOCUMENT ACAD-OBJ))
(SETQ MODEL (VLA-GET-MODELSPACE ADOC))
(PRINC "\n select the block")
(SETQ BLK-SS (SSGET "_:S+." '((0 . "insert"))))
(SETQ BLK (SSNAME BLK-SS 0))
(SETQ BLK-OBJ (VLAX-ENAME->VLA-OBJECT BLK))
(SETQ BLK-ATT (CAR (VLAX-INVOKE BLK-OBJ 'GETATTRIBUTES)))
(SETQ BLK-ATT-INSPT (VLA-GET-INSERTIONPOINT BLK-ATT))
(SETQ BLK-ATT-ROT (VLA-GET-ROTATION BLK-ATT))
(SETQ ATT-HEIGHT (VLA-GET-HEIGHT BLK-ATT))
; up now I got this
(VLA-GETBOUNDINGBOX BLK-ATT 'MINI 'MAXI)
(SETQ MINI-XY (VLAX-SAFEARRAY->LIST MINI))
(SETQ MAXI-XY (VLAX-SAFEARRAY->LIST MAXI))
(SETQ BOUNDING-ANG (ANGLE MINI-XY MAXI-XY))
(SETQ BOUNDING-WIDE (ABS (- (CAR MINI-XY) (CAR MAXI-XY))))
(SETQ BOUNDING-HEIGHT (ABS (- (CADR MINI-XY) (CADR MAXI-XY))))
; how to follow????????????????
; to make the lwpolyline
; i want to do it by VL-functions
;; once its done
;; offset
(SETQ OFF-BOX (VLA-OFFSET POLY-OBJ (* 0.25 ATT-HEIGHT)))
(VLA-PUT-COLOR OFF-BOX ACRED)
(VLA-PUT-LINEWEIGHT OFF-BOX 1)
(VLA-DELETE POLY-OBJ)
)
;|«Visual LISP© Format Options»
(180 2 1 0 nil "end of " 100 20 2 2 nil nil T nil T)
;*** DO NOT add text below the comment! ***|;
Find attached the DWG sample
Solved! Go to Solution.