Reply

How to pass drawing scale information when exporting to dxf

Quite often, we get dxf drawing from customers that use solid edge that have been scaled, most likely to fit paper sizes, instead of real world coordinates. It seems the only way a dxf export is functional is if the engineer drawing the part used 1:1 scale. Unfortunetly, the engineer was unaware, or didn't care, that downstream operations must take place. Is there any way that the translator can pass the scale into the ASCII dxf file? I read somewhere where it may be possible to place the scale in the title block, but I'm lost.

19 REPLIES

Re: How to pass drawing scale information when exporting to dxf

[ Edited ]

One way would be to place a callout without the leader line to a Drawing View and display the Sheet-scale property, then move the callout to the right place in the title block.

 

 

Re: How to pass drawing scale information when exporting to dxf

It's problematic to list a single scale if there are multiple views with differing scales.

Bruce Shand
ST9 MP3 - Insight - Win10 - K4200

Re: How to pass drawing scale information when exporting to dxf

Bruce: Technically - Yes.

 

In case of FMPeck's customer, the engineer needs to show prudence and decide a scale since this is a matter of an entire DXF being exported; it is recommended a single scale be used as a 'best practice', Without this, even Solid Edge cannot help with all its prodigious DXF translation system.

Re: How to pass drawing scale information when exporting to dxf

The reason I somewhat disagree lies in the fundemental 2012 DXF specification. For instance, the line uses a starting point of (X,Y,Z) in real world coordinates, and, 10, 20, and 30 as the codes for the "vector" X,Y & Z in real world coordinates from that point. Additional "scaled" Codes 11,21 and 31 is always considered to be a vector of origin (0,0,0) which has been scaled. (My age is showing here, but once upon a time, I also seem to remember a factor of 72 dpi 'dots per inch' that was also factored back in the days of CRTs and LPTRs.) The ratio of the two magnitudes is the scale factor for every entity. If "dots per inch", "twips", or any graphics unit is given, the entity is mathematically portible across any platform or equipment, something PDF still struggles with as the 2015 committee still has yet to produce the graphics standard. Mathematically, that is the genius of the dxf file format, and why it is probably 'the' standard. As a consequence, the person that reads the dxf looks at the data and can "translate" the author's 'real world' intent with perfect mathematical precision. 

 

It is important to understand that if the DXF translator works well, whatever scaling a customer would ever do  should not matter. When I draw in Solid Edge and translate a scaled drawing, the codes 10,20,30 and the codes 11,21,31 are the exact same numbers!! (Recall that the real world coordinates never change in the database, and, you should be able to scale the entities unit vector over and over without loosing any real world information.) What should utimate show up in the dxf file is the real world coordinates, and final result of 'factoring factors' shown in codes 11, 21, and 31. It is as if the programmer writing the dxf translator did not know what to place in codes 11, 21, and 31. Your customers need not be constrained to have to draw 1:1 whenever some downstream recipient may require CNC translation. Nevertheless, it would be drawing units per inch / dpi of image, and/or whatever else may add to scaling. THERE IS SOMETHING MISSING, AND/OR, LOST OVER TIME BY SOLID EDGE HERE, or the numbers would be different.

 

The fundemental concept requires using a Hessian Transformation algorythm, where the translation and rotation and scaling of anything, causes all entities become portable across and exchange. In other words, the start of an entity is translated to (0,0,0). The corresponding points are scaled, and rotated except for scalars, say for instance swing angles, etc., that by definition would not change. If you like, I could fix it for you.

Re: How to pass drawing scale information when exporting to dxf

@FMPeck

I'm lost. Not clear what the problem caused by Edge is.

Earlier you said: "It seems the only way a dxf export is functional is if the engineer drawing the part used 1:1 scale."

Are you saying that views should be 1:1 or (in last post) that it shouldn't matter what scale the views are?

 

Bruce Shand
ST9 MP3 - Insight - Win10 - K4200

Re: How to pass drawing scale information when exporting to dxf

I think, but I'm not altogether sure, that Solid Edge is not reporting the right numbers in the DXF translator. The fundemental concept of DXF was to convey Real World Coordinates (somehow) to its users. DXF offers a scale feature that does not get filled out by solid edge, probably because solid edge offers many views per sheet. Of course, if it were just one view, this may be practical, but it has become a bad practice, because many scales can be issued to many views. Consider that the many views really does not matter on the entity level. A convention was established to report numbers to a listing of group codes that would tell the users exactly what the draftsman meant to convey on an 'entity by entity' basis.

 

I'm still tracking down the permutations in an experimental design to get to the bottom. In one instance, a draftsman draws in real world coordinates, but since the item does not fit the paper size, he then scales the entities in order to fit the paper size. He pats himself on the back, because he saved paper, but sends the electronic dxf file out to the fabricator. In this instance, the DXF translator reports the "re-scaled" vector, as if it was drawn in 1/4 size in real world coordinates; to codes 11, 21, and 31, which are the same numbers that were placed in 10,20,and 30, such that effectively, no matter what the draftsman does in the way of scaling, the machine tool 'encoding' software only sees a scale of 1:1, because the magnitude of the two vectors are equal. (Recall that the magnitude of the "scaled" vector for codes 11, 21, and 31, which is what is seen on screen, should be 1/4th that of the original data. Hence, the encoding software would no that the actual part is four times what is shown.) What seems to happen is that solid edge scales the result first, and then it reports that to codes 11,21, and 31, along with reporting the same numbers to 10,20, and 30. It is as if the part were 'resized in real world coordinates permanently' as opposed to scaled to fit the paper or screen. The difference between what solid edge does as opposed to other software is that the machine tool software would have no idea that the entity has been scaled. 

 

So for now, that is why I say that unless the operator draws in a 1:1 scale, and then sends that to the translator to convert it in a dxf file, any drawing that is scaled by the user will be misrepresented. I have heard instructors say that as well in training videos on YouTube. In the case above, the entity would be four times smaller than it should be unless the draftsman draws and translates 1:1. Of course, that defeats the beaty of DXF! Engineers will not put up with having to make two drawings, one for the fabricator, and another for the printer for presentation purposes. The beauty of dxf was to free the operator to do whatever in the way of scaling in order to get a pretty picture, because; reporting numbers correctly to the DXF file format would let the 'encoding software' know that the enity has been scaled. 

Re: How to pass drawing scale information when exporting to dxf

Correction: The common group codes are [10,20,30] start, [11,21,31] end are used when just reporting real world coordinates to dxf, which has become the norm. In other words, why does not solid edge just report real world coordinates, regardless to a dxf translated file. Nonetheless, additional points are available in the common group codes.  [12,22,32] start, [13,23,33] could be used to respresent the scaled vector, but a convention was established to just use one point as the scaled vector, with the assumption that the other end of the vector had coordinates of (0,0,0). I appologize for not focusing more carefully.

Re: How to pass drawing scale information when exporting to dxf

If the person sets the export option "Export to paper space", the geometry will be exported 1:1 to the Model Space tab and views, dimensions, annotations will be exported to paper space scaled as they were in SE.

 

If they do not do this, then the drawing views are exported "as is" to Model Space and you will have to figure out the scale by hand.

Ken Grundey
Production: ST6 MP14
Testing: ST9 MP1

Re: How to pass drawing scale information when exporting to dxf

1. Where do you set the Export Option? I'm glad to hear it exists. (Nobody could be more glad!) For organizations that are networked, I would need some help on how to set that up. From what my customers say, the engineers will draw and/or scale in paper-space. They are unaware that dxf's and pdf's are also saved in the background. They are willing to have thier IT default to that setting.

2. Since Solid Edge's pre-condition is known, why can't Solid Edge just simply export dxf in 1:1 given that "data exchange format" is meant to be universal? Heretofore; software that exported would either export 1:1 to dxf, or in the alternative, take advantage of the "Optional" codes that reflect the scale as taken from Chapter 1, Formating Options and Convensions. If the Export option you suggest fixes that, then I deeply applogize for the long explaination of Optional Codes and math which I thought Solid Edge was missing, or should be doing, to be consistent with a data exchange format. After all, it is the "data" that people need, not the picture!