Author Topic: Dimension command - multiplier m  (Read 6884 times)

charly-bochum

  • Newbie
  • *
  • Posts: 34
Dimension command - multiplier m
« on: December 23, 2011, 10:17:40 AM »
In Designcad 17 Macro Language Reference concerning to macro command dimension is written, that
<Multiplier m [-1 (and any value <= 0) = off, any positive value turns it on].

This worked correctly in DC-Version 17, but not longer in Version 20 and 21 which I and many colleagues use now.
This is annoying, because one has to set it by hand when starting DC. Afterwards it remains till end of session.

Same concerns to PrefixText and SuffixText. They too must be set oder chosen manually at the beginning.
Earlier it was not necessary to do that. They precisely follwed the once preset values.

It would be very nice, if that could be corrected - or if anybody can show how to solve this problem on other way.

Regardless of that is to point out that in DC 17 the measured dimesion was drawn - although without leaders - when
point 3 (location of demension) was identical to point 2 (endpoint of messure). Now measuring fails completely.
But that does not apply SDK, but DC.



paulerens

  • Hero Member
  • *****
  • Posts: 915
Re: Dimension command - multiplier m
« Reply #1 on: December 25, 2011, 03:40:42 PM »
Charly,
I think you mixed DimUnits and Multiplier. ???
<DimUnits -1'        '-1 (and any value <= 0) = off, any positive value turns it on. 0 = Unitless; 1 = Inches; 2 = Feet; 3 = Mile; 4 = Millimeters; 5 = Centimeters; 6 = Meters; 7 = Kilometers]
 
<Multiplier 1.0      ' or 1.5 or 0.3 or 4 Multiplies the measurement.

Paul.
« Last Edit: December 30, 2011, 07:20:17 AM by paulerens »

paulerens

  • Hero Member
  • *****
  • Posts: 915
Re: Dimension command - multiplier m
« Reply #2 on: December 25, 2011, 04:57:42 PM »
 Charly,
I think??
TextMovement 0=text is centered between the arrows.
TextMovement 1=is leader.
TextMovement 2=is text between the arrows where desired.
 Yes, I know, no logic, just try!

charly-bochum

  • Newbie
  • *
  • Posts: 34
Re: Dimension command - multiplier m
« Reply #3 on: December 27, 2011, 03:13:53 PM »
Hallo Paul,
Thank You, but I see nothing for mixing in >Dimension:

*New parameters added in Version 15
<Multiplier m [-1 (and any value <= 0) = off, any positive value turns it on]
<PrefixText p$
<SuffixText s$
<Points: 1, 2 = distance to measure, 3 = dimension location

This is the original text of DC 17 BasicCAD Reference Language, and that does not work so.
But I can find nothing about DimUnits in the command.

Charly

paulerens

  • Hero Member
  • *****
  • Posts: 915
Re: Dimension command - multiplier m
« Reply #4 on: December 28, 2011, 04:21:52 AM »
Hi Charly,
DimUnits exists after version 17
I think some things have changed after.
In any case, it is illogical that a multiplier of a dimension, is put less than zero.

Paul.

JJG

  • Hero Member
  • *****
  • Posts: 720
Re: Dimension command - multiplier m
« Reply #5 on: December 28, 2011, 08:15:18 AM »
Found in the " DesignCAD 3D Max 18.0 BasicCAD Release Notes.pdf " file :

New Dimension Command Parameters:
The following Dimension commands have new command parameters:
>DimAngle
>DimArc
>DimBase
>DimChamfer
>DimCoordinate
>DimDiameter
>Dimension
>DimensionDistanceOnly
>DimExtend
>DimProgress
>DimRadius
>DimRadProgress

The new parameters are:
< Associated a
[0 = not associated, 1 = associated (by segment for linear dimensions), 2 = associated (by entity, for linear dimensions only)]

< EnableSecondArrow esa
[0 = second arrow type is disabled (first arrow type for both heads; 1 = different arrowheads]

<Arrowhead2 a
Second arrowhead style; accepts the same values as the <Arrowhead argument. Only affects the dimension if <EnableSecondArrow = 1

<DimUnits du
[-1 = no Units(multiplier is used); 0 = Unitless; 1 = Inches; 2 = Feet; 3 = Mile; 4 = Millimeters; 5 = Centimeters; 6 = Meters; 7 = Kilometers]
This parameter uses preset multiplier to convert the dimension distance from the drawing's base units to the selected units.

<DimEnableTextInsidePos tip
Optionally forces text to be drawn inside the dimension lines: [0 = free, 1 = inside only]

<DimHorizontalTextPos htp
[0=centered, 1=left, 2=right, 3=above left extension, 4=above right extension]

<DimVerticalTextPos vtp
[0=centered, 1=above arrows, 2=below arrows]

<Style dst
[0=normal, 1=bold, 2=italic, 3=bold and italic]

<Multiplier mult
If DimUnits = -1, the distance between the measurement points is multiplied by this value to generate the displayed distance.


Changed Dimension Command Parameters:
The following dimension parameters have new behavior:
<Orientation ori
text orientation [0 = normal, 1 = flipped]

<Location dloc
[0 = centered, 1 = above, 2 = below, 3 = right, 4 = upper right, 5 = lower right, 6 = left, 7 = upper left, 8 = lower left.]
Note: I'm sorry, but I can't yet say what interaction there may be if you specify both Location and DimVerticalTextPos/DimHorizontalTextPos in the same dimension command.


Hope it can help you.

charly-bochum

  • Newbie
  • *
  • Posts: 34
Re: Dimension command - multiplier m
« Reply #6 on: January 10, 2012, 02:52:58 PM »
Thank You JJG,
Your fully reproduction of the DesignCAD 3D Max 18.0 New Dimension Command Parameters
was very usefull for me, because I now expletely could see the difference to version 17 shown below.
And that difference is not good for people like me frequently working with distance-time-diagrams.

With version 17 one could very easily switch between m in the x direction and s in the y-direction
by setting <'suffix "m" and' <suffix "s". In the y-direction in addition the needed multiplier easily could be used.

In version 18, however, a programmed specification of the suffix is not longer possible in that way. It only can be
set by hand in the DC and then switched with <suffix 1 or suffix <suffix 2 - even though this is no longer be provided.
The multiplier can only be set on with <DimUnits -1, but not in combination with other DimUnits 0-7
that according to my test do not even work properly.
I think it would be nice to return to the old version 17, which was more universal applicable and
worked perfectly.
Hope my bad English slightly could be understood.
_________________________________________________________
Here now the old good dimension command of version 17:

>Dimension

{

<Orientation o

text orientation [0 = aligned with arrows, 1 = perpendicular, 2 = horizontal, 3 = vertical]

<Precision p

number of digits past the decimal in the dimension text

<Format f

text format [0 = 4.125, 1 = 4-1/8, 2 = 4'1.5", 3 = 4'1-1/2"]

<Location l

text location relative to arrows [0 = inside, 1 = outside]

<ToleranceType tt

[0 = none, 1 = single value, 2 = high/low values]

<ToleranceSize ts

relative size of tolerance text

<ToleranceLow tl

low tolerance value for tolerance type 2

<ToleranceHigh th

high tolerance value for tolerance type 2

<Tolerance tv

tolerance value for tolerance type 1

<Suffix i$

dimension suffix ["0" = none, "1" = custom1, "2" = custom2, etc.]

<Prefix j$

dimension prefix ["0" = none, "1" = custom1, "2" = custom2, etc.]

<Font "fontname"

the full name of the Windows font, e.g.: "Times New Roman"

<VectorFont vfont$

the name of the desired vector font, ex. "Simplex_Win"

<FontType ft

the font type [0=TrueType, 1 = Vector]

<Size s

dimension text size

<Type t

[0 = dimension, 1 = exploded dimension]

<Gap g

distance between measured points and leader bottoms

<Length l

length of fixed-length leader lines

<Fix fx

[0 = variable-length leader lines; 1 = for fixed-length]

<OverShoot os

distance between arrow tips and leader tops

<Arrowhead a

arrowhead style; see Arrow command for details

<Arrowsize as

arrowhead size. In Version 15 and earlier, theis is relative to the dimension text size; in V16 and later, it is the actual arrowhead length in units.

<LinePosition lp

[0 = arrows inside leaders, 1 = arrows outside leaders]

<Axis y

[0 = Auto, 1 = Free, 2 = X, 3 = Y, 4 = Z]

<Text fixed$

If present, sets the fixed dimension text

*New parameters added in Version 15
<Multiplier m [-1 (and any value <= 0) = off, any positive value turns it on]
<PrefixText p$
<SuffixText s$

<Points: 1, 2 = distance to measure, 3 = dimension location

}

Notes:

- <Prefix and <PrefixText are mutually exclusive. If both parameters are used in the same command, the one used last will overrule the previous one.

- Once the <PrefixText is used in the command section, it will overrule the drop-down list selection by the user. (However, it will NOT update the text in the list selection)

- <Suffix and <SuffixText are mutually exclusive. If both parameters are used in the same command, the one used last will overrule the previous one.

- Once the <SuffixText is used in the command section, it will overrule the drop-down list selection by the user. (However, it will NOT update the text in the list selection)

Compatibility: All versions. Multiplier, PrefixText, and SuffixText parameters only exist in Version 15 and higher.

Dempsey

  • Hero Member
  • *****
  • Posts: 1901
  • Intel i7-960, 12GB, NVidiaGTX570, Win7x64, DC26.2
    • World of van Vliet
Re: Dimension command - multiplier m
« Reply #7 on: January 10, 2012, 06:18:23 PM »
charly-bochum,

I have the impression that there is some confusion between units and multipliers.

A drawing is done in certain "drawing" units, e.g. unitless, feet, meters, millimeters, etc.

Dimensions use the same units as the drawing. However, you can choose another Dimension unit and the program will convert the dimension from drawing unit to dimension unit.

The dimension multiplier is used for something else. Lets say that you made a drawing and that you have a small piece (say 250 mm) of the drawing that you like to show 4x larger as a detail. Now, in the actual drawing a dimension would show 250 mm, but on the enlarged detail it would show as 1000 mm (4x larger). Of course that is wrong, so for that detail dimension you would use a multiplier of 0.25 and then the enlarged detail also shows the dimension as 250 mm.

Does this help?
« Last Edit: January 10, 2012, 06:20:14 PM by Dempsey »
Dempsey

paulerens

  • Hero Member
  • *****
  • Posts: 915
Re: Dimension command - multiplier m
« Reply #8 on: January 10, 2012, 07:38:42 PM »
Juist Dempsey,
Dat zal hem zeker helpen!

charly-bochum

  • Newbie
  • *
  • Posts: 34
Re: Dimension command - multiplier m
« Reply #9 on: January 16, 2012, 10:24:35 AM »
I have the feeling, that Paulerens and Dempsey, who kindly wanted to help me,
don't have a true vision of what I and more than 100 colleagues, who bought
my macros, are working with in reconstruction of traffic accidents.

Therefore I append a sample of a typical distance-time-diagramm. The grid and
the curves are not drawn by hand, but constructed with BasicCAD Macros.
The parameters can accept any values in different applications and
so also the ratio of time to way, that determins the required multiplier and
is 2 in the example. In DC17 it easily could be preset inclusive "m" or "s" as suffix,
but that no longer since DC18 and the introduction of the <DimUnits-command.

Because the sample of the diagramm and the marcros for time are different
depending on version 17 or 21, they are added in both versions, which can be seen
by the name. Use only the ones belonging together.

I hope that the developers of BasicCAD too now can see what I am fighting for.

Charly-bochum

DrollTroll

  • Kindly Curmudgeon
  • Administrator
  • *****
  • Posts: 4189
Re: Dimension command - multiplier m
« Reply #10 on: January 16, 2012, 04:12:34 PM »
I do agree that the current inability to specify the custom prefix text via a macro is a pain. I'll see what we can do about that.

As for the multiplier, here's how that now works. There's never really been such a thing as an absolutely "unitless" drawing -- DesignCAD has internally always assumed "feet", and that's even more the case now.

If your current drawing units are "unitless", you're really working in a base unit of feet -- it's always been that way in the past, it's just a bit more enforced now. So when you specify a dimension multiplier in a "unitless" drawing, DesignCAD will assume all measurements are in feet, and your multipler is going to be a multiple of units-as-feet -- if you meant the measurement base to be something other than feet, you really should now specify a base unit for the drawing.

"Unitless" drawing:
Internally, units are Feet.
Specify DimUnits as -1 and add a multiplier, you get multiples of coordinates as measured in feet.
Specify DimUnits as some specific unit (mm, cm, inches, etc) the multiplier is ignored, and you get the measurement as if the base unit were feet, converted to the selected unit.
For example, a measurement that is 5 drawing units long is dimensioned as 1.523 if DimUnits is 7 (meters). With a multipler of 0.5 and DimUnits at -1, it measures 2.500. With DimUnits set to 2 (inches), you get 60.000. With DimUnits at -1 and a multiplier of 19.6851, you get a dimension measurement of 98.426.

Drawing with "meters" base unit:
Internally, units are Meters.
Specify DimUnits as -1 and add a multiplier, you get multiples of coordinates as measured in meters.
Specify DimUnits as some specific unit (mm, cm, inches, etc) the multiplier is ignored, and you get the measurement as if the base unit were meters, converted to the selected unit.
For example, a measurement that is 5 drawing units long is dimensioned as 1.523 if DimUnits is 7 (meters). With a multipler of 0.5 and DimUnits at -1, it measures 2.500. With DimUnits set to 2 (inches), you get 196.85. With a DimUnits at -1 and a multiplier of 19.6851, you get a dimension measurement of 98.426.

Try the attached V21 macro in blank drawings with different base units; the second and fourth dimension should remain consistent for all base units, because they're using the multiplier on the current drawing's base unit. The first and third will always measure the distance in meters and inches, as converted from the base unit (which is actually feet in Unitless drawings).

So now, basically, if you want consistent results for the dimension multiplier for drawings in units other than feet, don't set the drawing's base unit to unitless -- set it to meters, centimeters, or whatever base unit you need. And remember you'll still need to set DimUnit to -1 to use the multiplier (and manually specify your dimension suffix, until we can get that sorted out once again). If you follow these guidelines, I think the multiplier will work consistently for you.

25 years with DesignCAD

Dr PR

  • Hero Member
  • *****
  • Posts: 5488
Re: Dimension command - multiplier m
« Reply #11 on: January 16, 2012, 11:13:05 PM »
DT,

Sorry, but that was a clear as mud - to me.

Are you saying that the dimension multiplier does nothing in drawings with defined units? That the multiplier functions only in unitless drawings?

That would pretty much screw everyone who uses the dimension multiplier to scale dimensions in enlarged details included in drawing sheets. I have many hundred such details in drawings, and I know others use details also - they are a standard drawing technique.

Phil
DesignCAD user since 1987

Rob S

  • Hero Member
  • *****
  • Posts: 4423
    • Construction Estimating Program for General Contractors
Re: Dimension command - multiplier m
« Reply #12 on: January 17, 2012, 07:25:05 AM »
I think the distinction is as follows

If DCAD knows the drawing units, and you choose a specific dimension unit, it enforces the correct conversion, multiplier greyed out.

 - Drawing in meters, dimension in mm, and  a 1 unit distance is dimensioned as 1000 mm no matter what you say

If you do not choose a specific predefined dimension unit, it will allow you to use any multiplier you want, and you will have to provide your own text suffix to say what that is.

 - Drawing in any unit, define a multiplier, call it what you want, your choice.

This is how it presently works in the dimension properties, and makes perfect sense to me.

I have not followed if this all works as it should in macros
User since Pro-design

DrollTroll

  • Kindly Curmudgeon
  • Administrator
  • *****
  • Posts: 4189
Re: Dimension command - multiplier m
« Reply #13 on: January 17, 2012, 10:36:06 AM »
Phil, we must distinguish between the DRAWING's unit base (unitless, feet, inches, m, cm mm) and the DIMENSION's selected measurement unit.

The DIMENSION's measurement unit, if specified, will disable the multiplier and will measure the distance in the DRAWING's base units, converted if necessary to the selected unit. For example, your DRAWING is in centimeters (specified drawing unit, i.e. not "unitless"), and you specify a DIMENSION unit of inches, the measurement shown in the dimension will be the proper value (i.e. a distance of 25.4 cm will show as "12 in").

If you want to use dimension multiplier, however, you lose the auto-appended suffix, and the multiplier will always be applied to the measurement in base units. In the example above, you can't specify a multiplier of 5, AND choose a different measurement unit to get "60 in". You'd get "127" with no suffix.

The only caveat is, a so-called "unitless" drawing really isn't -- it's based in feet, and any attempts to specify dimension units will reflect that assumption.

In a macro, to use the multiplier successfully, you must also set the <DimUnits parameter to -1 (effectively checking the box for "use multiplier" and dropping the auto-suffix for units).

25 years with DesignCAD

JJG

  • Hero Member
  • *****
  • Posts: 720
Re: Dimension command - multiplier m
« Reply #14 on: January 17, 2012, 10:49:36 AM »
Thank you, these details are interesting to know !
and we do not necessarily guess so obvious.