Ollie8974 Posted December 5, 2010 Posted December 5, 2010 Setting up a custom Multistyle Leader. Following the step by step instructions in help. I have successfully accomplished the setup, except for one small problem. I want to have a space between the text and the leader rather than the default of no space. In the Multileader Style Set up window. On the Leader Structure Tab is a window to set Landing Distance I have this set to 1 inch. On the Content Tab there is a setting titled Landing Gap, Which I have set at 1". I have given a name to the custom leader. The gap still does not appear between the text and leader line on the drawing. I did discover, looking around in the properties window, under the text heading there is Line Space Style drop down box. With a selection default of "At Least". I opened the drop down box and there is another selection of "Exactly" "What the heck, I thought, what have I got to loose." So I clocked on "Exactly" and closed the properties window. There was now the gap between the text and the leader. How ever the problem is when another a new leader is opened, the gap is not there. I have to open the properties window and reset the Line space style again. Anyone know what I am missing? Thanks. P.S. Does anyone know what the Set Landing Distance is? When I set it ti 1" I did not see any change. Quote
lpseifert Posted December 5, 2010 Posted December 5, 2010 If I understand what you want... the distance between the Landing Line and the text, it should be the Landing Gap (see image). The Line Space Style should have nothing to do with the Landing Gap distance, it pertains to the vertical spacing between lines of (m)text. Also, be sure that your new/modified Multileader style is set current Quote
Ollie8974 Posted December 5, 2010 Author Posted December 5, 2010 (edited) Yes, After setting up the new Leader style. I gave it a name, high lighted the the new name, and set as current. Then clicked ok to close the window. I then have to open the properties window, under the text heading there is Line Space Style drop down box. With a selection default of "At Least". Clicking on the drop down arrow there is a selection of "Exactly". clicking on that to make it current the the space is there. How ever when I close that instant of the Multileader, then open another instant of Multiline. The Line Space Style is reset to "At Least". I have to open the properties window and reset the Line Space Style to "Exactly" P.S. thanks for the explanation of Landing Gap. Edited December 5, 2010 by Ollie8974 Quote
irneb Posted December 6, 2010 Posted December 6, 2010 Unfortunately there's no such setting in the ML style. That setting in the properties palette actually refers to the spacing between the lines of text in the MText entity of the MLeader. To see what it does create a MText with multiple lines and add some large characters and/or those with portions below the normal baseline (e.g. / ( ) g y). Copy the MText and set the new copy's Line spacing style to "Exactly". Not the one set to "At least" grows the lines when there is one of these characters protruding beyond the base-line. The Exactly ensures that all lines are equally spaced, irrespective of having such characters or not. Actually what you've found in MLeaders is not an intended feature. You'll get the same effect by simply placing one of these characters into the MLeader's text - thus the At Least is grown - and moves the baseline up. The Exactly simply moves the baseline up without the need for one of these special characters. Quote
Ollie8974 Posted December 7, 2010 Author Posted December 7, 2010 In post #3 I state "I then have to open the properties window, under the text heading there is Line Space Style drop down box. With a selection default of "At Least". Clicking on the drop down arrow there is a selection of "Exactly". clicking on that to make it current the the space is there. How ever when I close that instant of the Multileader, then open another instant of Multiline. The Line Space Style is reset to "At Least". I have to open the properties window and reset the Line Space Style to "Exactly"" My question is how can the default be set to "Exactly" ? Quote
ccowgill Posted December 7, 2010 Posted December 7, 2010 I have a lisp routine that fires based on a reactor that changes it, perhaps a simpler routine that modifies the multileader command could do it for you. Quote
irneb Posted December 7, 2010 Posted December 7, 2010 My question is how can the default be set to "Exactly" ?That's just it, you "can't" ... not without modifying the MLeader / MText after creating it. Ccowgill's code might work with some mods, as it does this "automatically" after you've created a MText. Quote
Ollie8974 Posted December 7, 2010 Author Posted December 7, 2010 Thank's guys. CCowgill could you post your lisp? I was also thinking of trying a Dynamic block? I was just looking in the help file it looks like that would work. Right now I have to go to a meeting. be back in two or three hours. Quote
ccowgill Posted December 7, 2010 Posted December 7, 2010 forgive the below codes, they are cut from some other pretty extensive programs, and I may have cut too much out, or not enough. (defun mleaderspfac (/ obj objent objentdata vlaobjent) (if (setq obj (ssget "_L" '((0 . "MULTILEADER")))) (progn (setq objent (ssname obj 0) objentdata (entget objent) vlaobjent (vlax-ename->vla-object objent) ) ;_ end of setq (if (/= (cdr (assoc 290 objentdata)) 0) (if (= (vlax-get-property vlaobjent 'TextLineSpacingStyle) 1) (progn (vlax-put-property vlaobjent 'TextLineSpacingStyle 2) (vlax-put-property vlaobjent 'TextLineSpacingFactor 1) ) ;_ end of progn ) ;_ end of if ) ;_ end of if ) ;_ end of progn ) ;_ end of if ) ;_ end of defun is the code I use to adjust the space factor, it is attached to a command ended reactor: (if (not Command_Ending_Reactor) (setq Command_Ending_Reactor (vlr-command-reactor nil '((:vlr-commandended . Command_Ended_Command ) ) ) ;_ end of vlr-command-reactor ) ;_ end of setq () ;_ the reactor is already loaded ) ;_ end of if (defun Command_Ended_Command (In_ReactorName In_Command / LayObj tess) ;(alert (car In_Command )) ;; <-- Remove this line, it shows all incomming command (if (= (car In_Command) "MLEADER") (mleaderspfac) ) ;_ end if );_ end defun 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.