Author Topic: Mleader Direction  (Read 2162 times)

0 Members and 1 Guest are viewing this topic.

flowerrobot

  • Guest
Mleader Direction
« on: November 01, 2009, 05:06:30 PM »
Ive got a mleader problem, Can get it almost to do as required but misses just a little.

Ive being useing some code found before

Code: [Select]
(defun Sub_Mleader ;Will create a mleader
(Pt_StartPt
Pt_EndPoint
Str_Text / MS var Mleader)
(if (> 3 (length Pt_StartPt))
(setq Pt_StartPt (list (car Pt_StartPt) (cadr Pt_StartPt) 0)))
(if (> 3 (length Pt_EndPoint))
(setq Pt_EndPoint (list (car Pt_EndPoint) (cadr Pt_EndPoint) 0)))
(setq
ms
(vla-get-modelspace
(vla-get-activedocument
(vlax-get-acad-object)))
var
(vlax-make-variant
(vlax-safearray-fill
(safearray vlax-vbdouble '(0 . 5))
(apply 'append (list Pt_StartPt Pt_EndPoint))
)
)
Mleader (vla-addMleader ms var -5))
(vla-put-TextString Mleader Str_Text)
;|(vla-SetDogLegDirection Mleader 0
(vlax-3D-point
(list
(if (<= (car Pt_StartPt) (car Pt_EndPoint)) 1 -1)
0 0
)
)
;)|;
)

How ever when the doglegdirection is invoked it leaves the text alone, and will but the dog leg on the other side, What i want is, the dog leg to stay where it is, But the text & dogtail to be flipped to the other side

The top Pic shows what happens with 'vla-SetDogLegDirection', but the bottom is what i want to happen

fixo

  • Guest
Re: Mleader Direction
« Reply #1 on: November 03, 2009, 09:32:03 AM »
Try to add justification:
Code: [Select]
      (vla-setdoglegdirection
mlead
0
(vlax-3D-point
  (list
    (if (<= (car p1) (car p2))
      1
      -1)
    0
    0
    )
  )
)
      (if (>= (car p2) (car p1))
      (vla-put-TextJustify mlead acAttachmentPointMiddleLeft)
      (vla-put-TextJustify mlead acAttachmentPointMiddleRight)
)

~'J'~

flowerrobot

  • Guest
Re: Mleader Direction
« Reply #2 on: November 03, 2009, 03:42:46 PM »
Thanks for the help!!
Edit**

Haha got the sucker... Its all about the order of input.
from
Code: [Select]
(vla-put-TextString Mleader Str_Text)
(vla-SetDogLegDirection Mleader 0
(vlax-3D-point
(list
(if (<= (car Pt_StartPt) (car Pt_EndPoint)) 1 -1)
0 0
)
)
)
to
Code: [Select]

(vla-SetDogLegDirection Mleader 0
(vlax-3D-point
(list
(if (<= (car Pt_StartPt) (car Pt_EndPoint)) 1 -1)
0 0
)
)
)
(vla-put-TextString Mleader Str_Text)
« Last Edit: November 03, 2009, 06:53:00 PM by CAB »