Questions about Usage of QLeader and MLeader
These are questions I should have asked years ago, probably in CAD 101, I've been fighting with QLeader for that long.
When I dimension a 2D drawing, I first select one of my pre-configured dimension styles. If I place a linear dimension the current dimension style is applied. I can click on the dimension text, and move it anywhere I want. The dimension and extension lines stay attached to their snap points, but grow or shrink in length depending on where I position the text. Similarly, if I place a diameter dimension on a circle, I can then rotate the dimension around the circle, or move the text out away from the circle. But the arrow head continues to touch the circle. If I want to change the size, I select the text or any of the lines, and change the dimension style. Both the arrowhead and text change simultaneously.
Often I have a need to place a pointer and comment on a feature that is not a circle. The fastest way to do this is with QLeader. The problem is, once placed, the text and leader act like two separate objects. To change the overall size, I have to change the dimension style of the arrowhead and leader, and then the text size. Why can't I simply change the dimension style? And why can't I grab the text, and move it where I want, without getting funky leader lines? MLeader is even worse . It ignores the current dimension style, always using the "default" dimension style. (I don't even know where to change the "default" size. Again, to edit the size of the MLeader, I have to change the text and leader separately. And still the same funky problem with the leader lines.
What I WANT is something that operates like the diameter dimension, but can be placed at ANY snap, not just a circle. (I realize I can draw a circle, apply a diameter dimension, edit the dimension, position it, and then delete the circle, but I don't think this is an efficient solution.)
Any advice would be greatly appreciated.
Comments
-
I learned from the support group that the MLeader is controlled by a separate "Multileader Style", in the Drawing Explorer. I know I should have probably noticed this YEARS ago, but I have to ask, WHY would you establish a completely separate set of styles for leaders? Wouldn't you want your dimensioning, and leaders to look like they are consistently formatted? QLeader is controlled by the current (active) dimension style. Why not MLeader? And why, once the leader is placed, do you have to edit leader and text size in two separate operations? Is this just something they felt obligated to hold over from the early days of AutoCAD?
0 -
Mleaders are a relatively new feature of AutoCAD and BricsCAD. And there are many options (not all are supported in BC V16). Consistency may not have been the prime goal of AutoCAD developers.
Instead of changing individual Mleaders you should consider working with several styles.0 -
Hello Jim,
I completely share your thoughts about Q/Mleaders - two shots at the same target, none fully hitting - but there is nothing that can be done about it from Bricsys' side. As Roy already mentioned, for decades (since r13), Autodesk has chosen to rather add to the dwg-format than to introduce substantial change, and all vendors and users who enjoy the advantages of dwg also have to live with its oddities.
Before the advent of Mleaders, I used zero-length linear dimensions (with suppressed dimension lines and DIMTMOVE set to 1) as a replacement for simple leaders, but your workaround with radial dimensions looks even better - you can choose if you want an arrow, and even change the length of the landing segment (via DIMTEDIT). With some lines of lisp, you do not need to draw a circle to place such a dimension, e.g. like this:
(defun C:DLEADER ( / p1 p2 dimtxt entdat) (initget 1) (setq p1 (getpoint "\nLeader start point: ")) (initget 1) (setq p2 (getpoint p1 "\nLeader end point: ")) (initget 1) (setq dimtxt (getstring "\nLeader text: ")) (setq entdat (list '(0 . "DIMENSION") (cons 1 dimtxt) (list 10 (car p1) (cadr p1) 0.0) (list 11 (car p2) (cadr p2) 0.0) (list 15 (+ (car p1) 0.001) (+ (cadr p1) 0.001) 0.0) '(70 . 164) ) ) (entmake entdat) (princ) )
For simple leaders (two points, single line of text), this looks like a viable alternative to Mleaders to me.
The code is attached as file for convenience.
0 -
-
The script needed some more dimstyle overrides, and support for the (dreadful) scales-system. Re-attached, just in case someone stumbles over this later.
0 -
Roy and Knut,
Thank you so much for your responses, and for the LSP file Kunt! The lisp file works great with the exception that a space terminates the command. If I had any experience with the creation of LISP files I would attempt to fix it.
I apologize for being away from my post for so long. I've been suffering from serious health problems the past 16 months. I go entire periods when I don't have the energy to follow up on things. It started with severe drymouth, and progressed to facial paralysis, shaking, an unstable gait, chest and arm pain, erratic blood pressure, memory issues, and other neurological symptoms. The doctors have cycled me through a host of diagnoses.. First it was Sjogrens disorder, then an indeterminate heart disease...then a cranial (brain) tumor... then Parkinsons.. Now they are finally concluding that I have advanced Lyme disease. Not known if the damage is permanent, and sometimes it is near impossible to kill the bugger. But at least I finally have some hope. I've been trying to do my work but my monitoring of the forum has slipped.
0 -
Hello Jim,
sorry to hear that, and my best wishes for your recovery.
There was indeed a small glitch in the script, due to the fact that I write lisp so seldom now that I tend to forget even the most basic things (and my skills are limited to basic things anyway).
But while I was at it, I improved the script a bit further: the dimension will now use the block defined in DIMLDRBLK instead of the arrow-block normally used by radial dimensions, and it does not just drop the dimension at the specified point, but grip-selects it so you can immediately place the text where you like. However, the reversed input order (first text, than leader) remains - changing this looks a bit too laborious for me.0 -
Thanks again Knut. I wish I could repay the favor. Seems to me you are very good at LISP. I know nothing about the subject. Maybe I can get into it if things improve with my health.
0 -
On request:
Attached is a slightly enhanced version, that should run on V19 (at least it does on V19.04 beta on linux).
Since I use the script mainly to attach IDs to parts, it now comes with a simplistic auto-increment-option, e.g. try "ID000" as initial text and keep clicking...
The script now uses a dcl-dialog, so the files should be put in a folder that is listed in the SRCHPATH variable.0 -
On further request:
Now supporting (app)loading the script from a folder not in SRCHPATH.0 -
Thank you Knut. I don't know how to repay you.
@Knut Hohenberg said:
On further request:
Now supporting (app)loading the script from a folder not in SRCHPATH.0