wiengines
Mechanical
- Nov 10, 2008
- 59
At my company, we seem to be running into a problem with suppliers models and drawings. They seem to like to model features to one size, and then make the dimension appear as a different size.
For example, a shaft diamter is modeled at 50mm, but they want to show the dimension as 50/49.5. Instead of making the feature in the model to 49.75mm, they will just adjust the tolerances on the dimension. This is an issue for us for many reasons...making tooling from the models, creating layouts, etc.
Because it is time consuming to manually check each dimension on a drawing, I thought I would write a program to look at each dimension and change the color of the dimensions that have the tolerances adjusted.
My problem is that while my program looks at each dimension, it is not changing all of the dimensions. The odd thing is it will NOT change an existing dimension, but if I create a new dimension with the same tolerance values it changes it with no problem.
Here is a snippet of my code...
$ Initialize database cycling
INEXTE/ALL
$ Look for only dimensions
MASK/26
$ Loop to cycle dimensions
a010:
dim = NEXTE/IFEND,rpt:
$ OBTAIN the dimension info
OBTAIN/dim,nn
$ Return the absolute value of the lower tolerance
nn(3) = ABSF(nn(3))
$ If the tolerance values are not equal, change color to red
IFTHEN/nn(2) <> nn(3)
&COLOR(dim) = 4
ENDIF
JUMP/a010:
Any thoughts?
Chris T.
Project Design Analyst
Kohler Co. Engine Division
For example, a shaft diamter is modeled at 50mm, but they want to show the dimension as 50/49.5. Instead of making the feature in the model to 49.75mm, they will just adjust the tolerances on the dimension. This is an issue for us for many reasons...making tooling from the models, creating layouts, etc.
Because it is time consuming to manually check each dimension on a drawing, I thought I would write a program to look at each dimension and change the color of the dimensions that have the tolerances adjusted.
My problem is that while my program looks at each dimension, it is not changing all of the dimensions. The odd thing is it will NOT change an existing dimension, but if I create a new dimension with the same tolerance values it changes it with no problem.
Here is a snippet of my code...
$ Initialize database cycling
INEXTE/ALL
$ Look for only dimensions
MASK/26
$ Loop to cycle dimensions
a010:
dim = NEXTE/IFEND,rpt:
$ OBTAIN the dimension info
OBTAIN/dim,nn
$ Return the absolute value of the lower tolerance
nn(3) = ABSF(nn(3))
$ If the tolerance values are not equal, change color to red
IFTHEN/nn(2) <> nn(3)
&COLOR(dim) = 4
ENDIF
JUMP/a010:
Any thoughts?
Chris T.
Project Design Analyst
Kohler Co. Engine Division