Boneheaded question about units, dimensioning
Hello to everyone. Longtime away from the forum due to a family emergency. If any of you have posted comments requiring my response, I apologize for not doing so.
I have what you all will probably think are some bone headed questions. Especially coming from someone who has used 2D CAD for 11 years, and BricsCAD since 2013. But please understand that what I know is solely what I picked up on my own, or from asking questions here. I've never had the benefit of a course. And I never got around to asking these things before.
Question #1
In the SETTINGS menu there is a field under DRAFTING:DRAWING UNITS called "Insertion units". Does this have to do with importing objects into the current drawing, or exporting to other drawings?
Question #2
I design a lot of mechanical fixtures and tooling - all in inches. Every now and then I have to use a metric component, and I will download the vendor drawing or model for it. What is the quickest way to get this metric part into my inch drawing and scaled properly? (I've been copying and pasting from the vendor drawing, and then applying a metric to inch scaling factor.)
Question #3
We use a lot of parts from McMaster Carr. Sometimes I open one of their 2D drawings and find that it's not fully dimensioned. Sometimes, an odd scale factor has been applied to both the part and it's dimensions. My response is to select everything and scale to factor that makes the part actual size (1:1). But the scaling operation only works properly on the part drawing. The dimensions do not shrink or grow with the scale factor. They become too tiny to read, or so large that they obliterate the view of the part. When this happens, I've been deleting all the dimensions, importing my dimension styles and replacing all the dimensions. Tolerances are frequently lost. And when I import my drawing styles, the program changes the decimal separator from a period to a comma. Is there a way to get around all this tedious stuff?
Thank you for your time!
Comments
-
In the initial .dwg design, several decades ago, it may have been considered an attractive 'freedom' to leave the drawing unit unspecified, 'free' for the user to decide. As a result, for many years, all template drawings had INSUNITS set to '0' = undefined ( = horror).
In reality, each and every technical drawing is made assuming a very specific, well known unit, but more often than not, users forgot to make clear which unit they had in mind for their drawing and left the INSUNITS value at 0.
Since a decade or two, template drawings have a non-zero INSUNITS value, making it clear which unit they have been tailored for, and containing text and dimension styles that have a sensible size when used for geometry drawn using that unit.
Let there be no doubt: if ever there were a 'Most Important Setting' contest, INSUNITS should win hands-down.
"Does INSUNITS have to do with importing objects into the current drawing, or exporting to other drawings?"
INSUNITS has to do with both importing and exporting. In BricsCAD, for consistency and predictability, we prefer to take INSUNITS into account ALWAYS, not just 'MOST OF THE TIME', as in AutoCAD.
E.g. when inserting an external dwg as a block, both AutoCAD and BricsCAD will compare the INSUNITS of the external dwg and the host dwg and apply appropriate scaling, automatically, if in both drawings INSUNITS is set to a well-defined unit, that is: if INSUNITS is different from zero.
If INSUNITS happens to be zero in one of the drawings, the INSUNITSDEFSOURCE and INSUNITSDEFTARGET settings will be checked to see if a default unit can be used for the source or target drawing, thus making life a bit easier for users.Unfortunately, AutoCAD does not apply these consistent rules when Copy/Paste is used to insert content in a drawing, as opposed to BricsCAD.
So, when copy/pasting, or inserting content from external drawings, using BricsCAD there is nothing to worry about as long as the external drawings have a non-zero INSUNITS setting.
If an external library is used in which INSUNITS is set to 0 in most drawings while you know that e.g. they are drawn using 'mm' as the drawing unit.
you could set INSUNITSDEFSOURCE = 4 to indicate that drawings with an unspecified INSUNITS value are assumed to have been drawn in mm.Concerning your 3rd question:
if a range of dimensions or texts have an inappropriate size due to their inappropriate style, basically there are 2 options:
either modify their style, or assign them another more appropriate style.0 -
1+2:
The INSUNITS settings in both the target and source drawing are used to calculate a scale factor. So both should be correct. If the setting in a source drawing is 0 then the INSUNITSDEFSOURCE setting is used instead.3:
You can change the 'Dim scale overall' setting and the 'Dim scale linear' setting of the dimstyle.0 -
I think INSUNITS and all the related things are more trouble than they are worth. It's only helpful if everyone plays nice and set it correctly. More often than not you have CAD trying to automatically scale things in an inappropriate way. Therefore, I would prefer that my CAD program never attempt to automatically scale anything, I prefer to do it manually. Mr De Backer's answer is perfect, and yet, also a waste of brain cells to understand.
0 -
LIkewise I prefer to define all blocks as unitless to prevent automatic scaling. The scaling is generally obvious from context and easy enough to perform manually.
0 -
Dear Viking_Mike, if I'm not mistaken, we did have this discussion before. It's a free world and if you want to keep working unitless, so be it. The Insertion Units rules are not that difficult to understand, sorry.
0 -
@Hans De Backer said:
...................So, when copy/pasting, or inserting content from external drawings, using BricsCAD there is nothing to worry about as long as the external drawings have a non-zero INSUNITS setting..........................Thank you Hans for taking the time to explain this to me. A lot for this old brain to digest, but I think as long as I keep your above in mind, I will have less problems.
0 -
@Roy Klein Gebbinck said:
1+2:
The INSUNITS settings in both the target and source drawing are used to calculate a scale factor. So both should be correct. If the setting in a source drawing is 0 then the INSUNITSDEFSOURCE setting is used instead.3:
You can change the 'Dim scale overall' setting and the 'Dim scale linear' setting of the dimstyle.Roy, thank you also for your suggestions. I've been modifying 'Dim scale linear' I never even noticed 'Dim scale overall'. I will check it out!
0 -
@Viking_Mike said:
............. I would prefer that my CAD program never attempt to automatically scale anything, I prefer to do it manually................LIkewise I prefer to define all blocks as unitless to prevent automatic scaling. The scaling is generally obvious from context and easy enough to perform manually.
Thanks for your comments Mike. I'm in agreement with you that keeping things unitless would seem to be simpler (at least to my way of thinking). But with so many vendors providing their CAD files with specific units applied, I think I have to start paying attention to INSUNITS.
I set all the blocks I create to unitless. But then, no one but me uses them.
0 -
@Louis Verdonck said:
Dear Viking_Mike, if I'm not mistaken, we did have this discussion before. It's a free world and if you want to keep working unitless, so be it. The Insertion Units rules are not that difficult to understand, sorry.Louis,
I did a quick search of the forum before I posted my questions, and didn't find much. (Maybe it is because I didn't know what search terms to use.) I think it highly likely that I have started new threads for questions that have already been discussed "ad nauseum". So I think you should give Mike a pass... I also admit that I have problems understanding some concepts. I'm 63 and in poor health. I've learned it gets harder to learn stuff as you age. Everyone is different, too. Some find certain concepts more difficult than others. That is why I depend so on this forum. You have all been VERY helpful to me. I just hope I can return the favor some day.0 -
I wanted to give Jim another option. In a real world CAD environment you have to work with people of varying skill levels and abilities. There are a thousand other things to think about besides insert unit behavior .. like what you actually to express on paper.
I was being a bit hyperbolic with "waste of brain cells". Of course if you have a tight-knit team with understanding and discipline, and working with great block libraries and templates then automatic block scaling can be helpful. I just have never encountered such a situation in the civil CAD world. Often it's a victory just to get people to draw to scale and put things on layers. Like, any layer at all.
0 -
@Viking_Mike said:
In a real world CAD environment you have to work with people of varying skill levels and abilities.In my case, I work in a bubble. No one doing mechanical design here, and no experience at other companies to draw on.
Have a good day!0 -
Jim I learnt a lot from your bone head question and really appreciated your probing.
This bone head could never work out why occasionally I'd open a dwg of another and blocks were miniscule when inserted. And other odd things.
Yes could have posted a question here but just worked around it.
Learn something every day.0 -
Jim, as did Richard Sands, I, too learned a lot from your bone head question.
Your question was yet another truth to the saying "there are no such things as stupid questions". Thanks for asking.
And thanks to Louis, Roy and Viking_Mike for their responses - all were helpful. They prove that, as in most cases, there is no single correct answer.
0 -
@Hans De Backer said:
Let there be no doubt: if ever there were a 'Most Important Setting' contest, INSUNITS should win hands-down.Ha! INSUNITS is a continual thorn for me.
Implicit scaling, when it does occur, costs me time. I must then undo the operation, set INSUNITS to unspecified and start again. If there are transformations required I choose the factors and where operations are relative to,
Ever since Bricscad has been performing implicit scaling operations I have longed for a global application preference to disable it.
I work with geometry from files produced by many different sources or software packages. They may or may not have a reasonably set INSUNITS variable. There are packages that set it to Inches based on some hard-coded file header. The files may contain geometry with units of International Feet, US Survey Feet, Metres, Millimetres ... you get the idea. Coordinates might refer to a local plane with an arbitrary origin or georeferenced mapping grid or and might be further scaled from a local origin to approximate ground distances rather than the mapping grid.
- I always have an understanding of the reference frame for the coordinates.
- I will never be able to depend on my source data having the INSUNITS variable set reasonably.
- I will never want Bricscad to implicitly apply a scale factor. I prefer to know entities I insert, copy / paste etc are exactly as I expect them.
- I would like to be able to set INSUNITS to a reasonable value.
I agree INSUNITS can be a benefit to many use types, however for me, no. it costs me time in my work whenever I forget to set it to 0. It costs my time explaining to others why some geometry is showing up way off in la-la-land.
Anyway... enough of my rant. Just want to be clear there is no universal "Most Important Setting" unless it is user control of the most important setting ;-)
0 -
"I would like to be able to set INSUNITS to a reasonable value"
Before inserting content from an external source, one indeed should verify which units actually were used to create that content. If the INSUNITS setting of the external source does not match the actually perceived unit, INSUNITS should be modified in the source so it matches. Correcting this source should only be done once, from then on, every time it is inserted it will be scaled correctly. With a non-implicit scaling approach, the correction and the scale for the correction need to be recalculated, verified and applied, every time again.
Could you please clarify what prevents you to set INSUNITS to a reasonable value? I really would appreciate to extend and improve my understanding of the various INSUNITS related problems that dwg users encounter."I will never be able to depend on my source data having the INSUNITS variable set reasonably."
Correct, so every source has to be verified, but preferably only once, and then INSUNITS should be corrected if it was wrong.
A lot indeed hinges on being able to set INSUNITS to a reasonable value..."I will never want Bricscad to implicitly apply a scale factor. I prefer to know entities I insert, copy / paste etc are exactly as I expect them."
On every new insert or copy/paste operation which involves checking and comparing units and calculating and manually applying an appropriate scaling factor, humans risk tripping over an occasional error. Software applications are just as good at making errors, but typically those errors are not occasional: when performing a certain operation it will either be always incorrect or always correct, occasional errors are very uncommon. It is one of the reasons software applications are used.
If source and target INSUNITS values are set correctly, the implicit scaling will either always be correct, or always wrong. In the latter case a bug needs to be corrected.Looking forward to your answers,
being open to be convinced about the need for a setting to disable implicit scaling.0 -
It is relatively common to see drawings produced out of other non .dwg based applications that will have units incorrectly set. For example, I know a particular laser measuring tool that declares the units in their dxf as inches, even though it is in fact mm. As previously mentioned, this just reinforces the need to check files received from other sources, and set the units correctly prior to use.
I think there is a legitimate issue for Civil/Survey users who generally all work with metres in modelspace, and in mm in paperspace (SR 39337), using the viewport scale appropriately between the two spaces. In this situation inserting blocks on paperspace layout becomes problematic, as INSUNITS is set for metres, but the user will actually want insertion to be in mm. The problem here is that INSUNITS is drawing wide, it can't be individually set for each space.
AutoCAD avoids (fudges over) this issue by ignoring INSUNITS when using COPYCLIP/PASTECLIP, whereas BricsCAD (since V13) respects the INSUNITS. I previously wrote a LISP workaround for this, which temporarily switches INSUNITS off when using COPYCLIP & COPYBASE from paperspace.
Regards,
Jason Bourhill
CAD Concepts0 -
I never understood how one could not care about Units and Dimension
of objects. Like 3D many artists doing character design which work by
proportions only and finally scale when adding their model to the whole
scene. At least I think Units awareness would not do any harm anyway.
And after many years of CAD/3D I never expected such an undefined
Unit behavior in any CAD.
Until I came in contact with Autocad parallel universe for the first time
by Bricscad and struggled over this few months ago.@Jason Bourhill said:
using the viewport scale appropriately between the two spaces. In this situation inserting blocks on paperspace layout becomes problematic, as INSUNITS is set for metres, but the user will actually want insertion to be in mm. The problem here is that INSUNITS is drawing wide, it can't be individually set for each space.
Regards,
Jason Bourhill
CAD ConceptsNow I understand the problem why at all people may fear setting INSUNITS.
In Vectorworks it is quite similar.
Drawing Space is (kind of) 1:1 Drawing Scale and Viewports in Paper Space
have the proper Plan Scale as their main purpose is to show parts of the 1:1
Model as a 2D (paper) plan.
But VW Viewports on Paper Space have an extra (1:1 Model Scaled)
Annotation Space where you enter to "annotate" or add things,
not generated by the Viewports automatically, to your plans.
So inserted Blocks will fit the Model.Opposed to Paper Space Scale which is also always 1:1 but for the Paper Area
to print, which just contains Viewports in Scale to fit on the Paper..Whenever someone models or draws something technical that represents
something real, it has some defined dimensions.
I think it as a great problem that ACAD and so Bricscad even allow to have
Units not defined by setting INSUNITS to 0.
And if a CAD artist is not willing to care or to share the Unit Definition he
meant for his model is a quite selfish behavior that does not serve very
well for any collaboration.
I also don't understand that by default I even have to manually activate that
Unit Definitions will be shown on drawing screen (dyndims and such)0 -
I understand the implicit scaling based on INSUNITS is of great value in many environments. For me it is not. I have many sources of data.
Some source data, once generated, remains relatively static. INSUNITS can be set appropriately even if it was not correctly set initially.
Many software applications that export DXF or DWG files do not attempt to set INSUNITS. The project may be in metres and the DXF file have an INSUNITS set to inches, feet or metres. Often the source files are generated multiple times as information changes. Editing each file as generated to set INSUNITS is not reasonable here.
I frequently produce or work with DXF files with coordinate values with magnitudes of (y x) (4,900,000 25,000,000) metres or (16,000,000 80,000,000) international feet.
I have to be aware of the data units as well as the horizontal and vertical reference datum. I have to work constantly to keep staff vigilant. Are the coordinates referred to a mapping grid, local plane at ground level, a map projection scaled relative to the local site to represent ground distance, are the azimuths / bearings referred to the same basis, etc.
Again today I helped someone understand why when inserting a DXF file, exported to from a GPS receiver software, it was showing up in way off in never-never-land. INSUNITS defaulted to Feet and is not user configurable. He knew the source units and datum were correct for the project. The coordinates represented metric values referred to the correct modified transverse mercator projection of NAD83 with the correct transformation parameters from WGS84 to NAD83 but still it appeared in the wrong place. Obviously we can point fingers at the exporting software but this does not help in a practical sense.
Currently our work is about evenly split between feet and metres. We would benefit by the ability to have Bricscad ignore INSUNITS.
0 -
@Greg Skelhorn:
Not sure if this helps, but it is relatively easy to create a custom insert routine that changes a block's INSUNITS 'on the fly'. See the attached example.0 -
@Roy Klein Gebbinck said:
@Greg Skelhorn:
Not sure if this helps, but it is relatively easy to create a custom insert routine that changes a block's INSUNITS 'on the fly'. See the attached example.That's an interesting work-around for inserting Roy, thanks. I will give it some thought. At first glance I'm not sure of the effect on using it within an existing drawing.
There is still the clipboard operation. I have considered simply having INSUNITS automatically set to 0 when a file is opened but haven't so far because I do like to have the variable set to a meaningful value for files we generate and distribute.
Additionally, since we do a lot of work with different units I use the value of INSUNITS within many custom routines to use the correct drafting standard. I could change them to be based on a custom dictionary but... well, other things always seem more important.
Ultimately I would prefer to create content with INSUNITS set to a meaningful value yet be able to choose to work without implicit scaling operations.
0 -
If any of the INSUNITS and related settings are wrong (which happens a lot), then it really makes my head hurt to figure out what went wrong when a block is scaled automatically and incorrectly. There are multiple units to check and multiple settings to check.
If I bring in a block that is defined in inches (I'm American) into my drawing that is in feet, and it's too big (with automatic scaling off), I just scale it by 1/12. Tedious but doesn't make my head hurt.
I knew I couldn't be the only one.
0