Compare commits
988
Commits
v0.7
...
check_pr_actions
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86064385df | ||
|
|
2a50010e6f | ||
|
|
bf14461dae | ||
|
|
ec12b1ce7c | ||
|
|
de375f8cea | ||
|
|
30534dbf0e | ||
|
|
5fddadb1e4 | ||
|
|
20c6d4c800 | ||
|
|
125820c84c | ||
|
|
6984cf6a46 | ||
|
|
322018c6db | ||
|
|
d5f60d72e0 | ||
|
|
aa5b0e3fa2 | ||
|
|
c81d05cff6 | ||
|
|
799a51f340 | ||
|
|
89b00f1596 | ||
|
|
ccb6728efa | ||
|
|
75af3df51c | ||
|
|
0f1196ef94 | ||
|
|
e4277656ef | ||
|
|
8dc5dceb59 | ||
|
|
093e59e5a7 | ||
|
|
177eef8acf | ||
|
|
211bc660da | ||
|
|
0b6853f5a7 | ||
|
|
b158a79f6c | ||
|
|
1f1965beae | ||
|
|
9f35265f75 | ||
|
|
345bcd8174 | ||
|
|
f05ce582ac | ||
|
|
5e1ad8f1c8 | ||
|
|
dcb156f1eb | ||
|
|
1bf945d60b | ||
|
|
380618fa7e | ||
|
|
55d36377c3 | ||
|
|
62be4c90c6 | ||
|
|
c2fddd8a7a | ||
|
|
8adb5e638d | ||
|
|
fceb57390c | ||
|
|
ae18190f69 | ||
|
|
8c9b3471fb | ||
|
|
22c437d45e | ||
|
|
5ea56aac02 | ||
|
|
14c5476537 | ||
|
|
f7e929fe6a | ||
|
|
736d637d63 | ||
|
|
6cf5d1e860 | ||
|
|
faadf26cdf | ||
|
|
e617808be1 | ||
|
|
97de8f9069 | ||
|
|
4f20f391c6 | ||
|
|
a1462e99b0 | ||
|
|
bbc20e3ba2 | ||
|
|
359f949ed6 | ||
|
|
d27564c5ed | ||
|
|
30683985ca | ||
|
|
fe796629a2 | ||
|
|
bfff9e6f86 | ||
|
|
b2287b3b53 | ||
|
|
beeb5614c1 | ||
|
|
ec35904342 | ||
|
|
9bba7d5157 | ||
|
|
4bf478b6e3 | ||
|
|
853aeb4e8b | ||
|
|
725ec378c7 | ||
|
|
5d8c597d8f | ||
|
|
a366339220 | ||
|
|
44fb19669b | ||
|
|
18a6528090 | ||
|
|
6368ed08f9 | ||
|
|
46717ab714 | ||
|
|
7a3d8f0ce5 | ||
|
|
670600e67b | ||
|
|
f8783577d5 | ||
|
|
713b3e67b6 | ||
|
|
93cb422595 | ||
|
|
74d9062ff1 | ||
|
|
9eb23dc2a9 | ||
|
|
2f378267dc | ||
|
|
1f4f78f905 | ||
|
|
0b69a9a5e5 | ||
|
|
30d570a3a0 | ||
|
|
18b4d8282a | ||
|
|
142edd5698 | ||
|
|
371d498c0a | ||
|
|
63fe2f69ee | ||
|
|
029eac6065 | ||
|
|
90de683f5a | ||
|
|
b9189212bd | ||
|
|
9e31f561c6 | ||
|
|
414b8705a2 | ||
|
|
3f8bde4319 | ||
|
|
548fd82ad7 | ||
|
|
2375f10331 | ||
|
|
73358caf4b | ||
|
|
9285090208 | ||
|
|
227dbb84ab | ||
|
|
f2ebe246fa | ||
|
|
69db0c0192 | ||
|
|
5e28f4417a | ||
|
|
61eec0dcc5 | ||
|
|
68d0e7bbb4 | ||
|
|
88e82d8faf | ||
|
|
d6d7aeec95 | ||
|
|
5edde001e5 | ||
|
|
d9d6406b0b | ||
|
|
2cd591be99 | ||
|
|
663414f90d | ||
|
|
b58e30c575 | ||
|
|
4a71f48bc8 | ||
|
|
db4f1a68d5 | ||
|
|
e76d92d082 | ||
|
|
f8bd03507d | ||
|
|
997618fe86 | ||
|
|
e5a55b4ab3 | ||
|
|
99e57aed21 | ||
|
|
f3b1065432 | ||
|
|
18f81e1898 | ||
|
|
a25ee56f6c | ||
|
|
4b58b2dc11 | ||
|
|
3c785b4451 | ||
|
|
7e192a40f3 | ||
|
|
3ed4ffd302 | ||
|
|
61e680ae72 | ||
|
|
9b68d893e7 | ||
|
|
a4d1e03f0d | ||
|
|
573c3ec1d5 | ||
|
|
c0b61b40cb | ||
|
|
ead7664070 | ||
|
|
a9a7e0af4a | ||
|
|
8bf6f74bb8 | ||
|
|
c9031fb76a | ||
|
|
b5c6bd327a | ||
|
|
4afeea4d39 | ||
|
|
5ab50bb68f | ||
|
|
dc38153539 | ||
|
|
254024b954 | ||
|
|
85b76db65a | ||
|
|
ac9fc03986 | ||
|
|
ce88e635f0 | ||
|
|
bab3886f54 | ||
|
|
e1162b63c4 | ||
|
|
e9c28ff7cb | ||
|
|
e934fa246c | ||
|
|
f773771f27 | ||
|
|
fd77902539 | ||
|
|
1732897cbc | ||
|
|
7e46389420 | ||
|
|
b06466ce4b | ||
|
|
284b1893de | ||
|
|
a0b0a10249 | ||
|
|
f93abd2991 | ||
|
|
64ac71cf96 | ||
|
|
e20def2ee1 | ||
|
|
367d0e867d | ||
|
|
41105500c9 | ||
|
|
132ad5ea1f | ||
|
|
11942a3c06 | ||
|
|
f076b04524 | ||
|
|
f3b6498da2 | ||
|
|
7fb53396ce | ||
|
|
575a2f93b3 | ||
|
|
85ea3ed2d4 | ||
|
|
0eb7aabbb3 | ||
|
|
226dfb4697 | ||
|
|
e5a534d5e5 | ||
|
|
6fe8648657 | ||
|
|
8a82142e1b | ||
|
|
20d72fb6d5 | ||
|
|
ab9bd3ae8d | ||
|
|
81a0362c30 | ||
|
|
84472921c1 | ||
|
|
1d01b831aa | ||
|
|
0d2e791e82 | ||
|
|
d39fbaf4d7 | ||
|
|
e422262877 | ||
|
|
71fe947ff5 | ||
|
|
beb2a595f1 | ||
|
|
0b6cd90dd9 | ||
|
|
3fd71cf457 | ||
|
|
0fbc3c0c84 | ||
|
|
a96336ab97 | ||
|
|
b24680d7e5 | ||
|
|
15afe96d67 | ||
|
|
a78ca01b54 | ||
|
|
8627627c5e | ||
|
|
9b091756b1 | ||
|
|
dfce2dcf07 | ||
|
|
5c7e63c75b | ||
|
|
0b456a833e | ||
|
|
a243b4d8c8 | ||
|
|
daec3e2640 | ||
|
|
06b13bb9af | ||
|
|
e38519a7f1 | ||
|
|
12def15dd2 | ||
|
|
a160cc9af6 | ||
|
|
1dfe76b3b4 | ||
|
|
c23ba65c41 | ||
|
|
274de2a91d | ||
|
|
1a757024c4 | ||
|
|
abae0a7c45 | ||
|
|
bfc11face5 | ||
|
|
677261d4fb | ||
|
|
4207a46f07 | ||
|
|
7316fe5070 | ||
|
|
4d32009592 | ||
|
|
0b6078b72b | ||
|
|
36e34862cc | ||
|
|
9dcb6aa640 | ||
|
|
bc5533bda8 | ||
|
|
4e88ad69eb | ||
|
|
b890c156f5 | ||
|
|
0ba7343004 | ||
|
|
f2247d222f | ||
|
|
5288026043 | ||
|
|
6e8cad223e | ||
|
|
018e7cfffc | ||
|
|
458b775f41 | ||
|
|
dc82923cf1 | ||
|
|
aa967b3316 | ||
|
|
17b41da525 | ||
|
|
135adc76c8 | ||
|
|
017faa942f | ||
|
|
46c37207da | ||
|
|
85f45f38e4 | ||
|
|
be378119f4 | ||
|
|
ecde882d5a | ||
|
|
3d90ffdf83 | ||
|
|
5dfca2ed78 | ||
|
|
fbf0272d3b | ||
|
|
c69f9ebab2 | ||
|
|
942fb89f68 | ||
|
|
893936b11f | ||
|
|
e4a8be26da | ||
|
|
c63b3cc9b8 | ||
|
|
2dace5da2e | ||
|
|
7568033499 | ||
|
|
65b6869b30 | ||
|
|
915e0de65f | ||
|
|
9c83ba32a9 | ||
|
|
13f36c11a8 | ||
|
|
6b26410d9d | ||
|
|
3e84677ac9 | ||
|
|
081cf35855 | ||
|
|
c1c3bc1077 | ||
|
|
6351ff38d9 | ||
|
|
a82f7497a6 | ||
|
|
2a3e2a9abf | ||
|
|
eaf9ffc3f3 | ||
|
|
b72f4d404a | ||
|
|
b31d8ef853 | ||
|
|
c865023114 | ||
|
|
25ca2a788d | ||
|
|
a80489dc96 | ||
|
|
35170b388e | ||
|
|
d2680940ad | ||
|
|
e24ac2acd3 | ||
|
|
903277f288 | ||
|
|
5b2782a34c | ||
|
|
97731f8611 | ||
|
|
272928d6e5 | ||
|
|
76944b3a90 | ||
|
|
8a270222c6 | ||
|
|
e8afb772f1 | ||
|
|
0eefd769e3 | ||
|
|
1c8225f79a | ||
|
|
2d8a7373fd | ||
|
|
2300021416 | ||
|
|
91a2dcacf3 | ||
|
|
618deae50e | ||
|
|
1aa78e7e48 | ||
|
|
4129d363b0 | ||
|
|
619c927ecb | ||
|
|
89684015ae | ||
|
|
8423811031 | ||
|
|
4f9ad1c75a | ||
|
|
0c34752882 | ||
|
|
0b3ab924f8 | ||
|
|
fae60fbe8c | ||
|
|
703654ae70 | ||
|
|
9fca25bed6 | ||
|
|
988d2614be | ||
|
|
1a8282d5dc | ||
|
|
235d38a80c | ||
|
|
cba6fec8d7 | ||
|
|
1d2e33e575 | ||
|
|
2829deb7cc | ||
|
|
c83f0792a1 | ||
|
|
482c7905f3 | ||
|
|
46b5e74596 | ||
|
|
ec0443a446 | ||
|
|
6708334b37 | ||
|
|
9025643a1b | ||
|
|
b996d835f5 | ||
|
|
48df74932a | ||
|
|
3b0f0b33ea | ||
|
|
167d1d7fab | ||
|
|
abb43fcb6f | ||
|
|
a2f2f41e66 | ||
|
|
e68afbad49 | ||
|
|
33ff7c57dc | ||
|
|
04a57d0f2a | ||
|
|
062b0e6ae3 | ||
|
|
5c6ffc7dca | ||
|
|
ea80885185 | ||
|
|
8964d2ed05 | ||
|
|
f25fb9d968 | ||
|
|
0336649b07 | ||
|
|
bdcd5166e1 | ||
|
|
dbbd0c63b6 | ||
|
|
cb771f628e | ||
|
|
2a17763354 | ||
|
|
7f19877b1a | ||
|
|
164355c640 | ||
|
|
2c7ed5c826 | ||
|
|
264db5d03c | ||
|
|
423d5e08f6 | ||
|
|
ba6d0a1c0c | ||
|
|
37cfaebb1f | ||
|
|
f233ae0059 | ||
|
|
7950f4db7e | ||
|
|
ec5171fe27 | ||
|
|
c962b1d391 | ||
|
|
dc32b24f3f | ||
|
|
57a3d9ca1a | ||
|
|
ef4d64a98e | ||
|
|
b3047b4b1f | ||
|
|
4bac203373 | ||
|
|
ad2e50b05d | ||
|
|
3e8c468f67 | ||
|
|
0ccca0afc2 | ||
|
|
7cbc9f84ce | ||
|
|
e266db9b3f | ||
|
|
77000dd445 | ||
|
|
1d784c8a90 | ||
|
|
5b68726a3c | ||
|
|
d7b3129834 | ||
|
|
6e3e58df00 | ||
|
|
80eabe9e80 | ||
|
|
5afcabf901 | ||
|
|
105cce4a9c | ||
|
|
cf11cad78a | ||
|
|
34c452e658 | ||
|
|
7627b46e44 | ||
|
|
10ba621ee1 | ||
|
|
5c63ccd6cf | ||
|
|
bc13835a01 | ||
|
|
44b056f9e2 | ||
|
|
061ec0dbc6 | ||
|
|
b600f05bd2 | ||
|
|
719f39f489 | ||
|
|
2c6d346584 | ||
|
|
abf41650ee | ||
|
|
b2a8343741 | ||
|
|
ee32a0f923 | ||
|
|
2a760a1e12 | ||
|
|
2014a75678 | ||
|
|
8cb5c79279 | ||
|
|
62202523b8 | ||
|
|
9ce384b600 | ||
|
|
5aacdb2206 | ||
|
|
6ec39b58aa | ||
|
|
c975ab2380 | ||
|
|
1054952e1e | ||
|
|
2216cf47d3 | ||
|
|
365b787fff | ||
|
|
4b4a4029ed | ||
|
|
c1892febc1 | ||
|
|
f0b2d97d00 | ||
|
|
1fa4927035 | ||
|
|
953021ec9d | ||
|
|
c8f14a0821 | ||
|
|
63049515d1 | ||
|
|
ca7487fa95 | ||
|
|
0f5179e74b | ||
|
|
bfbd8df61e | ||
|
|
dfe69a923d | ||
|
|
50452e8282 | ||
|
|
e74d4dc813 | ||
|
|
653625f56a | ||
|
|
5f702fb702 | ||
|
|
8273ce1866 | ||
|
|
efb82853b7 | ||
|
|
37901afbbb | ||
|
|
6bac26d3c7 | ||
|
|
ff3fd1f5e7 | ||
|
|
9313b8e6ee | ||
|
|
921de860b0 | ||
|
|
5df2f69930 | ||
|
|
31bf315543 | ||
|
|
87c66bb4dc | ||
|
|
c91109b7b4 | ||
|
|
febbb636fc | ||
|
|
7976c8bee5 | ||
|
|
0b42b2fe89 | ||
|
|
d36d12c6d3 | ||
|
|
86bbc327fa | ||
|
|
c8cfac3acc | ||
|
|
9efd75ebc1 | ||
|
|
98283dca34 | ||
|
|
65c703b811 | ||
|
|
2374029ae8 | ||
|
|
c6d841789e | ||
|
|
14689c6db6 | ||
|
|
01db3788a2 | ||
|
|
712d9657e8 | ||
|
|
168e7a93ed | ||
|
|
7ae34348be | ||
|
|
1e95f8f61e | ||
|
|
4df86e5fea | ||
|
|
78427423ab | ||
|
|
c2c0a6443b | ||
|
|
674fa941f6 | ||
|
|
9db1170803 | ||
|
|
7089bdbf5c | ||
|
|
409315841b | ||
|
|
4bde538c65 | ||
|
|
6955a03fca | ||
|
|
b31ffa3968 | ||
|
|
06bfc7d4d1 | ||
|
|
73b3c1b901 | ||
|
|
66deaafb30 | ||
|
|
9e1d078b46 | ||
|
|
31331651df | ||
|
|
6117e532f8 | ||
|
|
b9db4568fe | ||
|
|
ea24200c67 | ||
|
|
acdc338c9d | ||
|
|
9cf54cf374 | ||
|
|
ea339e2ffa | ||
|
|
14d7b32320 | ||
|
|
62ef3c6edd | ||
|
|
521a999af9 | ||
|
|
47d42ad558 | ||
|
|
f63835532b | ||
|
|
cd08570a3f | ||
|
|
4a01038cd0 | ||
|
|
3132089419 | ||
|
|
5c0bea384c | ||
|
|
d64bbc3611 | ||
|
|
236778a5fc | ||
|
|
d6bb20d81b | ||
|
|
6cb750a3eb | ||
|
|
118d8b295b | ||
|
|
64dd1d2a9a | ||
|
|
2ae605d5ae | ||
|
|
23a5a62397 | ||
|
|
aaa1ca04a6 | ||
|
|
d4f13e0179 | ||
|
|
800453e68a | ||
|
|
a74dc1d32c | ||
|
|
d9c89b9e94 | ||
|
|
fdcdd5a966 | ||
|
|
7222c91c01 | ||
|
|
51acb993da | ||
|
|
ebb7a920f2 | ||
|
|
f6078d8b5b | ||
|
|
4b3e433667 | ||
|
|
1fddd17a64 | ||
|
|
647ecbcf99 | ||
|
|
ef2c01d76c | ||
|
|
e17938afe8 | ||
|
|
d5f693a862 | ||
|
|
bd402b2567 | ||
|
|
ca560239ce | ||
|
|
b3b464632b | ||
|
|
0188910a3a | ||
|
|
35ead380af | ||
|
|
b1387b731e | ||
|
|
d1062cddfa | ||
|
|
6e636d1c20 | ||
|
|
f3cd328b24 | ||
|
|
7867505fdc | ||
|
|
57d3d2fe07 | ||
|
|
259750e31e | ||
|
|
9144443d69 | ||
|
|
6004ba458b | ||
|
|
2d060e7cc3 | ||
|
|
6419146cf1 | ||
|
|
ffd0da9ceb | ||
|
|
bf39d90382 | ||
|
|
5b14529f63 | ||
|
|
60141ce6f7 | ||
|
|
f72e01e610 | ||
|
|
7531579d39 | ||
|
|
2ff6f4b434 | ||
|
|
f357ef4c83 | ||
|
|
752f976475 | ||
|
|
03dbb8ee9f | ||
|
|
3e51af51b4 | ||
|
|
87e1f9948c | ||
|
|
b905bec990 | ||
|
|
63298df542 | ||
|
|
319a8ab59d | ||
|
|
607f732671 | ||
|
|
e649757417 | ||
|
|
4515ffca43 | ||
|
|
4e90ff65e8 | ||
|
|
e18b6d5c2a | ||
|
|
ecaa9ba13f | ||
|
|
53fac955ba | ||
|
|
aee532dd14 | ||
|
|
5840883239 | ||
|
|
df100f5764 | ||
|
|
b65af6f982 | ||
|
|
65d3937e72 | ||
|
|
d635ee5ca8 | ||
|
|
bd80de24bc | ||
|
|
44a6abb36e | ||
|
|
cabf5df7ac | ||
|
|
5fc6630b3f | ||
|
|
b7df5a0e6f | ||
|
|
9aa3b4201f | ||
|
|
6d57acff5b | ||
|
|
c3094242c8 | ||
|
|
1c048abd2e | ||
|
|
3e4af5a77e | ||
|
|
a285652f01 | ||
|
|
5abaebb04b | ||
|
|
35b76941bd | ||
|
|
7301b34c27 | ||
|
|
e4426e3a64 | ||
|
|
39d37e9b09 | ||
|
|
a7fc5d1e76 | ||
|
|
f6fde2f1e1 | ||
|
|
d43b52d61e | ||
|
|
9cded87862 | ||
|
|
8de8875cd8 | ||
|
|
7ff99c9564 | ||
|
|
3f0115631b | ||
|
|
bcd9a58abc | ||
|
|
4a0a27cc30 | ||
|
|
5c24152afe | ||
|
|
87fbca7359 | ||
|
|
2338dd11e1 | ||
|
|
f1ee9585d1 | ||
|
|
5d78a327db | ||
|
|
832a6e75b6 | ||
|
|
252f19754f | ||
|
|
1598dee630 | ||
|
|
15993bdd96 | ||
|
|
a8ffbc17d3 | ||
|
|
7f0a0f852f | ||
|
|
cd0d8b496b | ||
|
|
4d945de475 | ||
|
|
bbe607be60 | ||
|
|
38467bdca3 | ||
|
|
78d99f2f4e | ||
|
|
5c021b2b7f | ||
|
|
10fb7419b5 | ||
|
|
f4ac673b71 | ||
|
|
1696fea0c7 | ||
|
|
44e02c957a | ||
|
|
c0e74a9eef | ||
|
|
a7579f0bc9 | ||
|
|
317b40bff0 | ||
|
|
d4d42b7d1c | ||
|
|
492f455598 | ||
|
|
2ccc5ce360 | ||
|
|
05a74dedd8 | ||
|
|
5043c035a3 | ||
|
|
426e2b4ab3 | ||
|
|
2d651bfad4 | ||
|
|
c6f0c44a02 | ||
|
|
6533032fd9 | ||
|
|
26822ef959 | ||
|
|
86f884b399 | ||
|
|
4fd5dd9f74 | ||
|
|
8e08f71fe8 | ||
|
|
b320bfe3f7 | ||
|
|
34d917fb19 | ||
|
|
86bae779b0 | ||
|
|
b15ba38edf | ||
|
|
96bd4520b5 | ||
|
|
5dd996d38d | ||
|
|
5384fe0dbb | ||
|
|
2d4346dd5a | ||
|
|
ce6a37e49a | ||
|
|
0b2f9ee3fc | ||
|
|
a9120d79f7 | ||
|
|
e1fe3e0b9f | ||
|
|
d14e7670c2 | ||
|
|
37a95f5e63 | ||
|
|
207d6c26c2 | ||
|
|
7de64b6bc4 | ||
|
|
a4e96f62ff | ||
|
|
993c40f6ad | ||
|
|
a035292cf0 | ||
|
|
6ca7b04dfd | ||
|
|
427ecaf09f | ||
|
|
b7a8ac4cbb | ||
|
|
2e6ee6695a | ||
|
|
86bf2dff99 | ||
|
|
c4fde8c96f | ||
|
|
3088d3d63f | ||
|
|
99fbadcdfd | ||
|
|
685e95f618 | ||
|
|
b8d35ce517 | ||
|
|
d1f57453dd | ||
|
|
86302fb0f3 | ||
|
|
4efb670ddf | ||
|
|
5bdac5427b | ||
|
|
a01fa5708a | ||
|
|
ec4eed7367 | ||
|
|
c080fbc8dc | ||
|
|
599f51891d | ||
|
|
ce4227c6b5 | ||
|
|
0dd18d246a | ||
|
|
1cc0beec4b | ||
|
|
aa8842ea56 | ||
|
|
2cd5d494f9 | ||
|
|
6092c9b29f | ||
|
|
8f57958813 | ||
|
|
10ef152fc6 | ||
|
|
95d339e2c7 | ||
|
|
25521ee3af | ||
|
|
f7c56d3e5a | ||
|
|
b2b0039d2f | ||
|
|
91e9528afe | ||
|
|
52acad573b | ||
|
|
44ab3e3352 | ||
|
|
30b04d741f | ||
|
|
abf0541ae9 | ||
|
|
bb41fd4863 | ||
|
|
9c5e27590d | ||
|
|
0b16a413f7 | ||
|
|
0d533f55df | ||
|
|
c6cfc06f4f | ||
|
|
d4a21dd654 | ||
|
|
166db7d178 | ||
|
|
0bf73eece7 | ||
|
|
5a6b972e47 | ||
|
|
9e6b419a53 | ||
|
|
33b0629e1e | ||
|
|
05ade5ca60 | ||
|
|
0a46b861a5 | ||
|
|
2c8a05fa0a | ||
|
|
eb9193038c | ||
|
|
d691bdf4d2 | ||
|
|
c686fc163b | ||
|
|
587ce0f16b | ||
|
|
7ccf768adf | ||
|
|
14c854e0df | ||
|
|
9899ad937b | ||
|
|
171671db1f | ||
|
|
d4c7d1bf6f | ||
|
|
d10d955f74 | ||
|
|
626635b644 | ||
|
|
f64d8f75ca | ||
|
|
4c13ff422f | ||
|
|
caf887ed03 | ||
|
|
860d612086 | ||
|
|
2685dbcf31 | ||
|
|
1ec21780c6 | ||
|
|
58dd89044c | ||
|
|
995a8a7fe9 | ||
|
|
e7bbcc0909 | ||
|
|
bc298808dd | ||
|
|
0c0ff74429 | ||
|
|
f3c56ceafc | ||
|
|
ca1a34a698 | ||
|
|
ee86226f5e | ||
|
|
2fd8d1a0be | ||
|
|
98bc5049f7 | ||
|
|
5fa2ebb677 | ||
|
|
f4369ba902 | ||
|
|
e343668210 | ||
|
|
02ef60aee2 | ||
|
|
530c796284 | ||
|
|
f43a106ac3 | ||
|
|
46951e3b32 | ||
|
|
8f72192262 | ||
|
|
3ee5fc0ca8 | ||
|
|
d061b146d5 | ||
|
|
b3a284a59a | ||
|
|
4a4c39fae9 | ||
|
|
29a15c5db9 | ||
|
|
17c518cd12 | ||
|
|
49a6227103 | ||
|
|
a8a7a723c8 | ||
|
|
21e029c362 | ||
|
|
c0e6d32290 | ||
|
|
d68b60fb39 | ||
|
|
a379152c80 | ||
|
|
c56ee55128 | ||
|
|
9eba5b18dd | ||
|
|
701f90025c | ||
|
|
66d6406ed9 | ||
|
|
19e96fa6fa | ||
|
|
0754642e31 | ||
|
|
0c0714260a | ||
|
|
05333b3185 | ||
|
|
6772b3a64e | ||
|
|
31f0644b26 | ||
|
|
b9922e2e0a | ||
|
|
95597e8a71 | ||
|
|
a13481e543 | ||
|
|
48c0481bc3 | ||
|
|
a0968849bb | ||
|
|
e41edd42c2 | ||
|
|
9b96c73d8e | ||
|
|
ae55ca80a3 | ||
|
|
6b88e574f3 | ||
|
|
2546685d2f | ||
|
|
67f8ea4574 | ||
|
|
9d27eff62a | ||
|
|
65cdebbdfc | ||
|
|
e889888ab3 | ||
|
|
ebdfab5aeb | ||
|
|
9ef064b411 | ||
|
|
51f6fed3b3 | ||
|
|
6d4f0852d4 | ||
|
|
d1437c7761 | ||
|
|
a29124cf5f | ||
|
|
b51297af02 | ||
|
|
0b0f6ce219 | ||
|
|
262610c410 | ||
|
|
7985fad756 | ||
|
|
8db7249070 | ||
|
|
e68db3e27c | ||
|
|
295f4db40d | ||
|
|
e9e9671083 | ||
|
|
b807ab36dd | ||
|
|
9239e2865f | ||
|
|
8fda732363 | ||
|
|
45f58654c8 | ||
|
|
abda04abac | ||
|
|
35c756ace6 | ||
|
|
d146a62a84 | ||
|
|
067098a42b | ||
|
|
6700b1994a | ||
|
|
a3ed45a65b | ||
|
|
4f94a13386 | ||
|
|
be375e08cf | ||
|
|
217414db29 | ||
|
|
55f79cb9e6 | ||
|
|
b79bf5fe7f | ||
|
|
73790e1488 | ||
|
|
610e60d2f5 | ||
|
|
d0f4beb992 | ||
|
|
c4d6cc07fb | ||
|
|
108db137fb | ||
|
|
959c9bc8d5 | ||
|
|
48f1285e03 | ||
|
|
bcd01474cd | ||
|
|
3eb5b5374f | ||
|
|
42e88253bc | ||
|
|
c6f03aa43b | ||
|
|
7a15065225 | ||
|
|
3bcd2de347 | ||
|
|
e2c9394478 | ||
|
|
5be3204d1e | ||
|
|
aea964b568 | ||
|
|
debc95478e | ||
|
|
94058f67db | ||
|
|
544d0047e6 | ||
|
|
022192332e | ||
|
|
5901f432a9 | ||
|
|
5b36c52d77 | ||
|
|
276e6d751e | ||
|
|
0e9f0682d9 | ||
|
|
063931aaca | ||
|
|
147d39ea37 | ||
|
|
061f6d91ea | ||
|
|
7c9f8ab0c2 | ||
|
|
12ad43ea4b | ||
|
|
b5af88b268 | ||
|
|
6b7982f816 | ||
|
|
b0253d1d45 | ||
|
|
78e2053384 | ||
|
|
afbf61db66 | ||
|
|
ade977836f | ||
|
|
f1c4d0f3a8 | ||
|
|
d2f1b63a77 | ||
|
|
c7e0ce0a29 | ||
|
|
faa6693982 | ||
|
|
1ff8cafb00 | ||
|
|
4601594c2b | ||
|
|
c9d100e719 | ||
|
|
9b1c0ff5ce | ||
|
|
67705a26c7 | ||
|
|
1d0b829559 | ||
|
|
68be23e550 | ||
|
|
89c428b327 | ||
|
|
85f12e38a9 | ||
|
|
802f424670 | ||
|
|
c2bc4bce77 | ||
|
|
42ef605fb3 | ||
|
|
3042d902b2 | ||
|
|
335ccf9712 | ||
|
|
2b3b4521bd | ||
|
|
5598ea07f8 | ||
|
|
41218fd5be | ||
|
|
b7beabf789 | ||
|
|
a2661f30e3 | ||
|
|
6d98c1824c | ||
|
|
c43de6c69c | ||
|
|
58eb1e0ce1 | ||
|
|
489eb5871f | ||
|
|
bb161a1441 | ||
|
|
111172a090 | ||
|
|
1e5bc0d2a4 | ||
|
|
62e2baa5fd | ||
|
|
04b1b61a68 | ||
|
|
db33f94364 | ||
|
|
ae8d89f852 | ||
|
|
19df57ae26 | ||
|
|
067be9027b | ||
|
|
0064834b99 | ||
|
|
b162ff2bd8 | ||
|
|
6372b27050 | ||
|
|
d84a4af547 | ||
|
|
d5f538549c | ||
|
|
64b99cf01e | ||
|
|
5ff1ca577c | ||
|
|
8da49be459 | ||
|
|
3b1cc8cc37 | ||
|
|
cadc776d19 | ||
|
|
cd530f1383 | ||
|
|
4dc506d52a | ||
|
|
a3186c18c2 | ||
|
|
6312ac5fae | ||
|
|
f794d00d19 | ||
|
|
1d47136a77 | ||
|
|
48ed46fe06 | ||
|
|
1a6fd8ca46 | ||
|
|
a778c40385 | ||
|
|
cc0525750b | ||
|
|
6af2650b5b | ||
|
|
8f3cba08ee | ||
|
|
9608c0c663 | ||
|
|
60087bed38 | ||
|
|
66110400e1 | ||
|
|
6b708083b8 | ||
|
|
3b8622eab9 | ||
|
|
84fd68ae65 | ||
|
|
17b064784f | ||
|
|
bef8dd98a4 | ||
|
|
22b946b950 | ||
|
|
f94df05876 | ||
|
|
c5f3b1223c | ||
|
|
adf5bf287f | ||
|
|
e1f0a6a7ee | ||
|
|
4fe5eecf61 | ||
|
|
cac6c3fad6 | ||
|
|
16bb7f98dc | ||
|
|
864b304e7d | ||
|
|
440c78ad65 | ||
|
|
aab39af98c | ||
|
|
6f0b8ef80f | ||
|
|
383c18e9b7 | ||
|
|
31e3bb7f5e | ||
|
|
b9352e8111 | ||
|
|
78643210ab | ||
|
|
80bf698c80 | ||
|
|
139d3f174e | ||
|
|
5bf0a58ec5 | ||
|
|
a297f733dd | ||
|
|
fc91dd68c3 | ||
|
|
076b17e96e | ||
|
|
d9c00efd16 | ||
|
|
6a712cd516 | ||
|
|
b7450150e9 | ||
|
|
d0c1202eca | ||
|
|
84ff138f60 | ||
|
|
873056c385 | ||
|
|
65121672aa | ||
|
|
96e4c13930 | ||
|
|
e8dfe9ba73 | ||
|
|
a40f9ba7b1 | ||
|
|
742be715ad | ||
|
|
2812c304c0 | ||
|
|
f1651b0885 | ||
|
|
48da14010d | ||
|
|
b9a920190a | ||
|
|
c4bc306e07 | ||
|
|
0cccfdd7b1 | ||
|
|
643aea7a8a | ||
|
|
5f2f5bd46f | ||
|
|
42fd5bfcfe | ||
|
|
9a5ee30054 | ||
|
|
ec25bfa5e9 | ||
|
|
01f6e26e0a | ||
|
|
0c11cce44c | ||
|
|
209d671732 | ||
|
|
6e17cbdd83 | ||
|
|
378c50ec06 | ||
|
|
a11fda7da2 | ||
|
|
95d245f22e | ||
|
|
a8d5158b08 | ||
|
|
1d1c9b7de2 | ||
|
|
04d514ebbe | ||
|
|
ec630badca | ||
|
|
6963fc515d | ||
|
|
f0f5763b9c | ||
|
|
434eafeffe | ||
|
|
3c66a0018a | ||
|
|
6105b5be57 | ||
|
|
a37b8c3d99 | ||
|
|
b855ed0ef1 | ||
|
|
1e78840357 | ||
|
|
3bc804192e | ||
|
|
474e58908e | ||
|
|
eb4e271e39 | ||
|
|
a55bcf501e | ||
|
|
d2c9dea8bc | ||
|
|
35fa4e1829 | ||
|
|
5126b48e3f | ||
|
|
76e2b2bcb2 | ||
|
|
4285a7d0c9 | ||
|
|
83f5d01924 | ||
|
|
20d1a5f3a2 | ||
|
|
6947e47fb2 | ||
|
|
080de728b2 | ||
|
|
81c793cd2e | ||
|
|
c0566fec27 | ||
|
|
fba49fff2f | ||
|
|
f413047cde | ||
|
|
b559053d2a | ||
|
|
0907ecc592 | ||
|
|
da3fe4543f | ||
|
|
a60e03dd7a | ||
|
|
35cc0f2c63 | ||
|
|
99a8787c1f | ||
|
|
e165c2a237 | ||
|
|
25162d1109 | ||
|
|
4c06e9d000 | ||
|
|
7068470299 | ||
|
|
3aea98074c | ||
|
|
f9a9d6e2a2 | ||
|
|
8e236bfda7 | ||
|
|
cc906fc1d4 | ||
|
|
44efa0d52e | ||
|
|
86c11b8baf | ||
|
|
5b4118ee6d | ||
|
|
a1d2471e7c | ||
|
|
08d5407259 | ||
|
|
1ffac4e7e8 | ||
|
|
5539ad55f3 | ||
|
|
436f34efb5 | ||
|
|
8c890db78e | ||
|
|
ba7675a71c | ||
|
|
4bc010884a | ||
|
|
352fd6d66e | ||
|
|
362c41cb61 | ||
|
|
2babafddc9 | ||
|
|
c45b22aff1 | ||
|
|
6f74459022 | ||
|
|
c1f4835ed3 | ||
|
|
2b783b770f | ||
|
|
2a4666ee4e | ||
|
|
24c08ebc6c | ||
|
|
9ff9b8e5c1 | ||
|
|
b6f708a8a7 | ||
|
|
f94fd4a4e0 | ||
|
|
c121444d29 | ||
|
|
df14d81d2f | ||
|
|
c08dcddcc8 | ||
|
|
906dc3a28c | ||
|
|
28d636d428 | ||
|
|
b468d27522 | ||
|
|
c6b0a5d810 | ||
|
|
4825256b53 | ||
|
|
362a238c0e | ||
|
|
b0d9936ed6 | ||
|
|
1e72fa4ce2 | ||
|
|
c453fce415 | ||
|
|
870b0b378e | ||
|
|
c3b947f357 | ||
|
|
763594360f | ||
|
|
fc745dd9c7 | ||
|
|
81ea38ab53 | ||
|
|
345caa836b | ||
|
|
b8ae949068 | ||
|
|
496ab9bd07 | ||
|
|
5440688be0 | ||
|
|
b9b6dcf17c | ||
|
|
dc4a783f18 | ||
|
|
e0ab04a719 | ||
|
|
91f56a6a24 | ||
|
|
c2e4c8b937 | ||
|
|
0c4f98be53 | ||
|
|
47bc6ffd6b | ||
|
|
4f74efe76e | ||
|
|
9c2e14900c | ||
|
|
43d33b266b | ||
|
|
14ea171688 | ||
|
|
0742cfd52d |
@@ -0,0 +1,275 @@
|
||||
name: STEPCODE
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
name: Windows Latest MSVC
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Add github workspace to path
|
||||
# https://github.community/t/deprecated-add-path/136621
|
||||
run: echo "$ENV{GITHUB_WORKSPACE}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
|
||||
- name: Add cl.exe to PATH
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DSC_ENABLE_TESTING=ON
|
||||
# We do the following in order to help ensure files are "flushed"
|
||||
# to disk before compilation is attempted
|
||||
# https://superuser.com/a/1553374/1286142
|
||||
powershell Write-VolumeCache C
|
||||
powershell Write-VolumeCache D
|
||||
|
||||
- name: Build
|
||||
run: cd build && ninja -j1 -v
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd build && ctest -j1 .
|
||||
|
||||
linux:
|
||||
name: Ubuntu Latest GCC
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
|
||||
# TODO - we will want this when the new parser work comes in,
|
||||
# as we won't need perplex and the system tools should suffice
|
||||
# to exercise the generator logic:
|
||||
#
|
||||
# - name: Setup - System
|
||||
# env:
|
||||
# DEBIAN_FRONTEND: noninteractive
|
||||
# run: |
|
||||
# sudo apt-get update
|
||||
# # Install dev tools
|
||||
# sudo apt-get install re2c lemon
|
||||
# sudo apt-get clean
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
cmake -S . -G Ninja -B build -D ENABLE_ALL=ON -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
cmake --build build --config Release
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd build && ctest -j1 . -C Release
|
||||
|
||||
linux_clang:
|
||||
name: Ubuntu Latest Clang
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
|
||||
# TODO - we will want this when the new parser work comes in,
|
||||
# as we won't need perplex and the system tools should suffice
|
||||
# to exercise the generator logic:
|
||||
#
|
||||
# - name: Setup - System
|
||||
# env:
|
||||
# DEBIAN_FRONTEND: noninteractive
|
||||
# run: |
|
||||
# sudo apt-get update
|
||||
# # Install dev tools
|
||||
# sudo apt-get install re2c lemon
|
||||
# sudo apt-get clean
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
CC=clang CXX=clang++ cmake -S . -G Ninja -B build -D ENABLE_ALL=ON -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
CC=clang CXX=clang++ cmake --build build --config Release
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd build && ctest -j1 . -C Release
|
||||
|
||||
|
||||
osx:
|
||||
name: macOS Latest Clang
|
||||
runs-on: macos-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
cmake -S . -G Ninja -B build -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
cd build && ninja -j1
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd build && ctest -j1 . -C Release
|
||||
|
||||
brlcad_linux:
|
||||
name: BRL-CAD Linux step-g Test
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
|
||||
- name: Setup - System
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
run: |
|
||||
sudo apt-get update
|
||||
# Install dev tools
|
||||
sudo apt-get install re2c lemon
|
||||
sudo apt-get clean
|
||||
|
||||
- name: Checkout
|
||||
run: |
|
||||
git clone --depth 1 git://github.com/BRL-CAD/brlcad.git -b main
|
||||
cd brlcad/src/other/ext && rm -rf stepcode
|
||||
git clone --depth 1 git://github.com/stepcode/stepcode.git -b develop
|
||||
# Ordinarily BRL-CAD keeps track of what files are supposed to be
|
||||
# present in the repository. In this case we're not interested in
|
||||
# updating the list to the working stepcode filelist, so use an empty
|
||||
# list instead
|
||||
echo "set(stepcode_ignore_files)" > stepcode.dist
|
||||
cd ../../../../
|
||||
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
cd brlcad
|
||||
cmake -S . -G Ninja -B build -DENABLE_ALL=ON -DCMAKE_BUILD_TYPE=Release -DEXT_BUILD_VERBOSE=ON
|
||||
cd ..
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
cd brlcad
|
||||
cmake --build build --config Release --target step-g
|
||||
cd ..
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
|
||||
cd brlcad/build
|
||||
./bin/step-g ../db/nist/NIST_MBE_PMI_3.stp -o nist3.g
|
||||
cd ../..
|
||||
|
||||
|
||||
brlcad_windows:
|
||||
name: BRL-CAD Windows step-g Test
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
fail-fast: true
|
||||
steps:
|
||||
- name: Setup - CMake
|
||||
uses: lukka/get-cmake@latest
|
||||
|
||||
- name: Setup - Ninja
|
||||
uses: seanmiddleditch/gha-setup-ninja@master
|
||||
|
||||
- name: Add github workspace to path
|
||||
# https://github.community/t/deprecated-add-path/136621
|
||||
run: echo "$ENV{GITHUB_WORKSPACE}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
|
||||
|
||||
- name: Add msbuild to PATH
|
||||
uses: microsoft/setup-msbuild@v1.0.2
|
||||
|
||||
- name: Add cl.exe to PATH
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Checkout
|
||||
run: |
|
||||
git clone --depth 1 git://github.com/BRL-CAD/brlcad.git -b main
|
||||
cd brlcad/src/other/ext
|
||||
cmake -E rm -r stepcode
|
||||
git clone --depth 1 git://github.com/stepcode/stepcode.git -b develop
|
||||
# Ordinarily BRL-CAD keeps track of what files are supposed to be
|
||||
# present in the repository. In this case we're not interested in
|
||||
# updating the list to the working stepcode filelist, so use an empty
|
||||
# list instead
|
||||
echo "set(stepcode_ignore_files)" > stepcode.dist
|
||||
cd ../../../../
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
cd brlcad && cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DSC_ENABLE_TESTING=ON
|
||||
cd ..
|
||||
# We do the following in order to help ensure files are "flushed"
|
||||
# to disk before compilation is attempted
|
||||
# https://superuser.com/a/1553374/1286142
|
||||
powershell Write-VolumeCache C
|
||||
powershell Write-VolumeCache D
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd brlcad/build
|
||||
ninja -j1 -v step-g
|
||||
cd ../..
|
||||
|
||||
- name: Test
|
||||
run: |
|
||||
cd brlcad/build
|
||||
./bin/step-g.exe ../db/nist/NIST_MBE_PMI_3.stp -o nist3.g
|
||||
cd ../..
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
# Common build directories used in the source tree
|
||||
/build
|
||||
/.build
|
||||
|
||||
# Temporary files
|
||||
*~
|
||||
\#*\#
|
||||
.\#*
|
||||
[._]*.s[a-v][a-z]
|
||||
[._]*.sw[a-p]
|
||||
[._]s[a-v][a-z]
|
||||
[._]sw[a-p]
|
||||
|
||||
# OS specific files
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
|
||||
# Tool specific patterns
|
||||
*.kdev4
|
||||
.kdev_include_paths
|
||||
@@ -5,20 +5,29 @@ http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/?vie
|
||||
In alphabetical order:
|
||||
Bertucat, Roch (rbertucat)
|
||||
Bowman, W. Keith (indianlarry)
|
||||
da Costa, Raphael Kubo (rakuco)
|
||||
DeGraw, Jason (jasondegraw)
|
||||
Easterbrook, Zach (lainiwakurax)
|
||||
Greenwald, Erik (erikg, erikgreenwald)
|
||||
Horler, Chris (cshorler)
|
||||
Lanning, Craig (craigl64)
|
||||
Loman, David (davidloman)
|
||||
McDonald, Rob (ramcdona)
|
||||
Mittal, Pulkit (hoiji09)
|
||||
Morrison, Christopher Sean (sean, morrison, brlcad)
|
||||
Paviot, Thomas (tpaviot)
|
||||
Pictor, Mark (mpictor)
|
||||
Reed, Nick (nickreed)
|
||||
Shah, Kesha (kesha, keshashah)
|
||||
Thomas, Dawn (homovulgaris, madant)
|
||||
Wouters, Dave (davyw)
|
||||
Yapp, Clifford (starseeker)
|
||||
|
||||
Special thanks:
|
||||
Hunten, Keith (Lockheed Martin)
|
||||
Lubbell, Joshua (NIST)
|
||||
Stirk, Charlie (CostVision)
|
||||
Thurman, Tom (TRThurman)
|
||||
|
||||
Between 2005 and 2006, Stefan Richter worked to make SCL compatible with
|
||||
modern ANSI/ISO C++, and modified the build system. His patches are at
|
||||
|
||||
+150
-347
@@ -1,4 +1,4 @@
|
||||
# C M A K E L I S T S . T X T F O R S C L
|
||||
# C M A K E L I S T S . T X T F O R S T E P C O D E
|
||||
#
|
||||
# This file is Copyright (c) 2010 United States Government as
|
||||
# represented by the U.S. Army Research Laboratory.
|
||||
@@ -32,120 +32,48 @@
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
# *******************************************************************
|
||||
# *** SC's CMakeLists.txt ***
|
||||
# *** STEPcode's CMakeLists.txt ***
|
||||
# *******************************************************************
|
||||
|
||||
# This file contains the top level CMakeLists.txt logic for the
|
||||
# SC software package.
|
||||
# STEPcode software package.
|
||||
|
||||
PROJECT(SC)
|
||||
|
||||
# SC version
|
||||
SET(SC_VERSION_MAJOR 0)
|
||||
SET(SC_VERSION_MINOR 7-dev)
|
||||
SET(SC_VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
|
||||
|
||||
# SC ABI version. SC_ABI_SOVERSION should be incremented
|
||||
# for each release introducing API incompatibilities
|
||||
SET(SC_ABI_SOVERSION 2)
|
||||
SET(SC_ABI_VERSION ${SC_ABI_SOVERSION}.0.0)
|
||||
project(SC)
|
||||
|
||||
# Minimum required version of CMake
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
|
||||
IF(COMMAND CMAKE_POLICY)
|
||||
CMAKE_POLICY(SET CMP0003 NEW)
|
||||
ENDIF(COMMAND CMAKE_POLICY)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
if (POLICY CMP0077)
|
||||
cmake_policy(SET CMP0077 OLD)
|
||||
endif (POLICY CMP0077)
|
||||
|
||||
IF( NOT DEFINED SC_BUILD_TYPE )
|
||||
SET( SC_BUILD_TYPE "Debug" CACHE STRING "Build type" ) # By default set debug build
|
||||
ENDIF( NOT DEFINED SC_BUILD_TYPE )
|
||||
IF(NOT SC_IS_SUBBUILD)
|
||||
SET(CMAKE_BUILD_TYPE ${SC_BUILD_TYPE} CACHE INTERNAL "Build type, immutable" FORCE )
|
||||
ELSE(NOT SC_IS_SUBBUILD)
|
||||
SET(CMAKE_BUILD_TYPE ${SC_BUILD_TYPE} )
|
||||
ENDIF(NOT SC_IS_SUBBUILD)
|
||||
# SC version
|
||||
set(SC_VERSION_MAJOR 0)
|
||||
set(SC_VERSION_MINOR 9)
|
||||
set(SC_VERSION_PATCH 1)
|
||||
set(SC_VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR}.${SC_VERSION_PATCH})
|
||||
|
||||
# Define helper macro OPTION_WITH_DEFAULT
|
||||
MACRO( OPTION_WITH_DEFAULT OPTION_NAME OPTION_STRING OPTION_DEFAULT )
|
||||
IF( NOT DEFINED ${OPTION_NAME} )
|
||||
SET( ${OPTION_NAME} ${OPTION_DEFAULT} )
|
||||
ENDIF( NOT DEFINED ${OPTION_NAME} )
|
||||
OPTION( ${OPTION_NAME} "${OPTION_STRING}" ${${OPTION_NAME}} )
|
||||
ENDMACRO( OPTION_WITH_DEFAULT OPTION_NAME OPTION_STRING OPTION_DEFAULT )
|
||||
|
||||
# build shared libs by default
|
||||
OPTION_WITH_DEFAULT(SC_BUILD_SHARED_LIBS "Build shared libs" ON )
|
||||
|
||||
# don't build static libs by default
|
||||
OPTION_WITH_DEFAULT(SC_BUILD_STATIC_LIBS "Build static libs" OFF)
|
||||
|
||||
OPTION_WITH_DEFAULT(SC_PYTHON_GENERATOR "Compile fedex_python" ON)
|
||||
OPTION_WITH_DEFAULT(SC_CPP_GENERATOR "Compile fedex_plus" ON)
|
||||
|
||||
OPTION_WITH_DEFAULT(SC_MEMMGR_ENABLE_CHECKS "Enable sc_memmgr's memory leak detection" OFF)
|
||||
OPTION_WITH_DEFAULT(SC_TRACE_FPRINTF "Enable extra comments in generated code so the code's source in fedex_plus may be located" OFF)
|
||||
|
||||
if(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS )
|
||||
set( SC_SDAI_ADDITIONAL_EXES_SRCS "" CACHE STRING "Source files for additional executables to be linked with SDAI libs" )
|
||||
endif(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS )
|
||||
|
||||
#this makes SC_BUILD_SCHEMAS show up in cmake-gui
|
||||
if( NOT DEFINED SC_BUILD_SCHEMAS )
|
||||
SET(SC_BUILD_SCHEMAS "ALL" CACHE string "Semicolon-separated list of paths to EXPRESS schemas to be built" )
|
||||
endif( NOT DEFINED SC_BUILD_SCHEMAS )
|
||||
# Set language standards
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# CMake derives much of its functionality from modules, typically
|
||||
# stored in one directory - let CMake know where to find them.
|
||||
SET(SC_CMAKE_DIR "${SC_SOURCE_DIR}/cmake")
|
||||
if(NOT IS_SUBBUILD)
|
||||
SET(CMAKE_MODULE_PATH "${SC_CMAKE_DIR};${CMAKE_MODULE_PATH}")
|
||||
else(NOT IS_SUBBUILD)
|
||||
SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${SC_CMAKE_DIR}")
|
||||
endif(NOT IS_SUBBUILD)
|
||||
|
||||
INCLUDE(${SC_CMAKE_DIR}/SC_Utils.cmake)
|
||||
|
||||
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
|
||||
# to "C" so things like date output are as expected
|
||||
SET(_orig_lc_all $ENV{LC_ALL})
|
||||
SET(_orig_lc_messages $ENV{LC_MESSAGES})
|
||||
SET(_orig_lang $ENV{LANG})
|
||||
IF(_orig_lc_all)
|
||||
SET(ENV{LC_ALL} C)
|
||||
ENDIF(_orig_lc_all)
|
||||
IF(_orig_lc_messages)
|
||||
SET(ENV{LC_MESSAGES} C)
|
||||
ENDIF(_orig_lc_messages)
|
||||
IF(_orig_lang)
|
||||
SET(ENV{LANG} C)
|
||||
ENDIF(_orig_lang)
|
||||
set(SC_CMAKE_DIR "${SC_SOURCE_DIR}/cmake")
|
||||
list(APPEND CMAKE_MODULE_PATH "${SC_CMAKE_DIR}")
|
||||
|
||||
# OpenBSD has its own naming conventions. Set a platform variable based on
|
||||
# the OS name so we can test for it succinctly.
|
||||
if ("${CMAKE_SYSTEM}" MATCHES ".*OpenBSD.*")
|
||||
set(OPENBSD ON)
|
||||
endif ("${CMAKE_SYSTEM}" MATCHES ".*OpenBSD.*")
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Coverage option
|
||||
OPTION_WITH_DEFAULT( SC_ENABLE_COVERAGE "Enable code coverage test" OFF )
|
||||
IF(SC_ENABLE_COVERAGE)
|
||||
SET(SC_ENABLE_TESTING ON CACHE BOOL "Testing enabled by coverage option" FORCE)
|
||||
# build static libs, better coverage report
|
||||
SET(SC_BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE )
|
||||
SET(SC_BUILD_STATIC_LIBS ON CACHE BOOL "Build static libs" FORCE )
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
|
||||
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
|
||||
SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage" CACHE STRING "Extra linker flags required by code coverage" FORCE)
|
||||
SET(SC_BUILD_TYPE "Debug" CACHE STRING "Build type required by testing framework" FORCE)
|
||||
SET( SC_PYTHON_GENERATOR OFF ) #won't build with static libs
|
||||
ENDIF(SC_ENABLE_COVERAGE)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Testing option
|
||||
OPTION_WITH_DEFAULT( SC_ENABLE_TESTING "Enable unittesting framework" OFF )
|
||||
IF(SC_ENABLE_TESTING)
|
||||
if( NOT DEFINED SC_BUILD_SCHEMAS )
|
||||
set( SC_BUILD_SCHEMAS "ALL" ) #test all schemas, unless otherwise specified
|
||||
endif()
|
||||
INCLUDE(CTest)
|
||||
ENABLE_TESTING()
|
||||
ENDIF(SC_ENABLE_TESTING)
|
||||
# Set up various relative path variables and build output directories
|
||||
include(Path_Setup)
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# The following logic is what allows binaries to run successfully in
|
||||
@@ -155,282 +83,157 @@ ENDIF(SC_ENABLE_TESTING)
|
||||
# http://www.cmake.org/Wiki/CMake_RPATH_handling
|
||||
|
||||
# use, i.e. don't skip the full RPATH for the build tree
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
if(NOT DEFINED CMAKE_SKIP_BUILD_RPATH)
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
endif()
|
||||
|
||||
# when building, don't use the install RPATH already
|
||||
# (but later on when installing)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||
if(NOT DEFINED CMAKE_BUILD_WITH_INSTALL_RPATH)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||
endif()
|
||||
|
||||
# the RPATH/INSTALL_NAME_DIR to be used when installing
|
||||
if (NOT APPLE)
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:\$ORIGIN/../lib")
|
||||
if(NOT DEFINED CMAKE_INSTALL_RPATH)
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:\$ORIGIN/../lib")
|
||||
endif()
|
||||
endif(NOT APPLE)
|
||||
# On OSX, we need to set INSTALL_NAME_DIR instead of RPATH
|
||||
# http://www.cmake.org/cmake/help/cmake-2-8-docs.html#variable:CMAKE_INSTALL_NAME_DIR
|
||||
set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
||||
if(NOT DEFINED CMAKE_INSTALL_NAME_DIR)
|
||||
set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
|
||||
endif()
|
||||
|
||||
# add the automatically determined parts of the RPATH which point to
|
||||
# directories outside the build tree to the install RPATH
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Output directories.
|
||||
IF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
|
||||
ENDIF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
IF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
|
||||
ENDIF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
IF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
|
||||
ENDIF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
|
||||
FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
|
||||
IF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
|
||||
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
|
||||
ENDIF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
IF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
|
||||
ENDIF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
ENDFOREACH()
|
||||
if(NOT DEFINED CMAKE_INSTALL_RPATH_USE_LINK_PATH)
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
endif()
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configure install locations.
|
||||
#---------------------------------------------------------------------
|
||||
# Build options
|
||||
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
||||
option(BUILD_STATIC_LIBS "Build static libraries" OFF)
|
||||
|
||||
option(SC_PYTHON_GENERATOR "Compile exp2python" ON)
|
||||
option(SC_CPP_GENERATOR "Compile exp2cxx" ON)
|
||||
|
||||
option(SC_MEMMGR_ENABLE_CHECKS "Enable sc_memmgr's memory leak detection" OFF)
|
||||
option(SC_TRACE_FPRINTF "Enable extra comments in generated code so the code's source in exp2cxx may be located" OFF)
|
||||
|
||||
option(SC_ENABLE_COVERAGE "Enable code coverage test" OFF)
|
||||
if (SC_ENABLE_COVERAGE AND ${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage" CACHE STRING "Extra linker flags required by code coverage" FORCE)
|
||||
endif (SC_ENABLE_COVERAGE AND ${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||
|
||||
option(SC_BUILD_EXPRESS_ONLY "Only build express parser." OFF)
|
||||
mark_as_advanced(SC_BUILD_EXPRESS_ONLY)
|
||||
|
||||
option(SC_ENABLE_TESTING "Enable unittesting framework" OFF)
|
||||
if(SC_ENABLE_TESTING)
|
||||
if(NOT "${SC_BUILD_EXPRESS_ONLY}" AND NOT DEFINED SC_BUILD_SCHEMAS)
|
||||
set(SC_BUILD_SCHEMAS "ALL") #test all schemas, unless otherwise specified
|
||||
endif()
|
||||
include(CTest)
|
||||
endif(SC_ENABLE_TESTING)
|
||||
|
||||
# SC_ADDEXEC and SC_ADDLIB macros, dllimport/export, etc
|
||||
include(SC_Targets)
|
||||
|
||||
# Macros related to paths
|
||||
include(SC_Paths)
|
||||
|
||||
# locale stuff
|
||||
include(SC_Locale)
|
||||
|
||||
# logic related to regenerating the lexer and parser source code
|
||||
include(SC_Regenerate)
|
||||
|
||||
# create config header sc_cf.h
|
||||
include(SC_Config_Headers)
|
||||
|
||||
if(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS)
|
||||
set(SC_SDAI_ADDITIONAL_EXES_SRCS "" CACHE STRING "Source files for additional executables to be linked with SDAI libs")
|
||||
endif(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS)
|
||||
|
||||
if(NOT "${SC_BUILD_EXPRESS_ONLY}" AND NOT DEFINED SC_BUILD_SCHEMAS)
|
||||
list(APPEND CONFIG_END_MESSAGES
|
||||
"** Note: CMake variable SC_BUILD_SCHEMAS was not set - defaults to building ALL schemas")
|
||||
# this makes SC_BUILD_SCHEMAS show up in cmake-gui
|
||||
set(SC_BUILD_SCHEMAS "ALL" CACHE STRING "Semicolon-separated list of paths to EXPRESS schemas to be built")
|
||||
endif()
|
||||
|
||||
# The location in which to install SC. Need a good Debug location
|
||||
# for Windows. Only do this if CMAKE_INSTALL_PREFIX hasn't been set
|
||||
# already, to try and allow parent builds (if any) some control.
|
||||
if(NOT SC_IS_SUBBUILD)
|
||||
IF(NOT WIN32)
|
||||
IF (${CMAKE_BUILD_TYPE} MATCHES "Debug")
|
||||
SET(SC_INSTALL_PREFIX "${SC_SOURCE_DIR}/../sc-install")
|
||||
ELSE()
|
||||
SET(SC_INSTALL_PREFIX "/usr/local")
|
||||
ENDIF()
|
||||
ENDIF(NOT WIN32)
|
||||
SET( SC_INSTALL_PREFIX ${SC_INSTALL_PREFIX} CACHE
|
||||
PATH "Install prefix prepended to target to create install location" )
|
||||
SET( CMAKE_INSTALL_PREFIX ${SC_INSTALL_PREFIX} CACHE INTERNAL "Prefix prepended to install directories if target destination is not absolute, immutable" FORCE )
|
||||
list(APPEND CONFIG_END_MESSAGES
|
||||
".. Don't worry about any messages above about missing headers or failed tests, as long as"
|
||||
" you see 'Configuring done' below. Headers and features vary by compiler."
|
||||
".. Generating step can take a while if you are building several schemas.")
|
||||
endif(NOT SC_IS_SUBBUILD)
|
||||
|
||||
OPTION(SC_BUILD_EXPRESS_ONLY "Only build express parser." OFF)
|
||||
MARK_AS_ADVANCED(SC_BUILD_EXPRESS_ONLY)
|
||||
# create config headers sc_cf.h
|
||||
include(SC_Config_Headers)
|
||||
|
||||
# Take the sc config file template as the starting point for
|
||||
# sc_cf.h.in - scripts may need to append to the template, so
|
||||
# it is read into memory initially.
|
||||
SET(CONFIG_H_FILE ${SC_BINARY_DIR}/include/sc_cf.h.in)
|
||||
set_source_files_properties(${CONFIG_H_FILE} PROPERTIES GENERATED TRUE)
|
||||
set(CMAKE_CURRENT_PROJECT SC)
|
||||
define_property(GLOBAL PROPERTY SC_CONFIG_H_CONTENTS BRIEF_DOCS "config.h.in contents" FULL_DOCS "config.h.in contents for SC project")
|
||||
if(NOT COMMAND CONFIG_H_APPEND)
|
||||
macro(CONFIG_H_APPEND PROJECT_NAME NEW_CONTENTS)
|
||||
if(PROJECT_NAME)
|
||||
get_property(${PROJECT_NAME}_CONFIG_H_CONTENTS GLOBAL PROPERTY ${PROJECT_NAME}_CONFIG_H_CONTENTS)
|
||||
set(${PROJECT_NAME}_CONFIG_H_FILE_CONTENTS "${${PROJECT_NAME}_CONFIG_H_CONTENTS}${NEW_CONTENTS}")
|
||||
set_property(GLOBAL PROPERTY ${PROJECT_NAME}_CONFIG_H_CONTENTS "${${PROJECT_NAME}_CONFIG_H_FILE_CONTENTS}")
|
||||
endif(PROJECT_NAME)
|
||||
endmacro(CONFIG_H_APPEND NEW_CONTENTS)
|
||||
endif(NOT COMMAND CONFIG_H_APPEND)
|
||||
file(READ ${SC_SOURCE_DIR}/include/sc_cf_cmake.h.in CONFIG_H_FILE_CONTENTS)
|
||||
CONFIG_H_APPEND(SC "${CONFIG_H_FILE_CONTENTS}")
|
||||
|
||||
# The Express parser uses the tools Perplex, RE2C and Lemon to generate code
|
||||
# from higher level inputs. Depending on available tools and options, the
|
||||
# SC build can either re-generate code as part of the build, or use cached
|
||||
# files that are ready for compilation.
|
||||
#
|
||||
# SC_GENERATE_LEXER_PARSER is the "high level" control a user sets to determine
|
||||
# how the SC build will interact (or not) with these tools. AUTO (the
|
||||
# default) means it will search for the necessary tools, and use them only if
|
||||
# everything is found. If not, it will fall back to the cached versions. If
|
||||
# this option is set to ON and the necessary tools are not found, the
|
||||
# configure step will fail. If it is set to OFF, SC will not even try to use
|
||||
# the generators and will instead use the cached sources.
|
||||
if(NOT SC_GENERATE_LEXER_PARSER)
|
||||
set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE STRING "Use Perplex, RE2C and Lemon to generate C source code.")
|
||||
else(NOT SC_GENERATE_LEXER_PARSER)
|
||||
string(TOUPPER "${SC_GENERATE_LEXER_PARSER}" SC_GENERATE_LEXER_PARSER)
|
||||
endif(NOT SC_GENERATE_LEXER_PARSER)
|
||||
set_property(CACHE SC_GENERATE_LEXER_PARSER PROPERTY STRINGS AUTO ON OFF)
|
||||
if (NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "AUTO" AND NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON" AND NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
message(WARNING "Unknown value ${SC_GENERATE_LEXER_PARSER} supplied for BRLCAD_WORD_SIZE - defaulting to AUTO")
|
||||
message(WARNING "Valid options are AUTO, ON and OFF")
|
||||
set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE STRING "Use Perplex, RE2C and Lemon to generate C source code.")
|
||||
endif (NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "AUTO" AND NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON" AND NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
|
||||
# If the generators have not been turned off, we need to check for them
|
||||
if(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
find_package(LEMON)
|
||||
find_package(RE2C)
|
||||
find_package(PERPLEX)
|
||||
if(LEMON_EXECUTABLE AND LEMON_TEMPLATE AND PERPLEX_EXECUTABLE AND PERPLEX_TEMPLATE AND RE2C_EXECUTABLE)
|
||||
# Templates may be anywhere - make sure we have a stable path if a relative
|
||||
# path was specified at CMake time
|
||||
get_filename_component(lemon_template_fpath "${LEMON_TEMPLATE}" ABSOLUTE)
|
||||
if(NOT "${lemon_template_fpath}" STREQUAL "${LEMON_TEMPLATE}")
|
||||
get_filename_component(LEMON_TEMPLATE "${CMAKE_BINARY_DIR}/${LEMON_TEMPLATE}" ABSOLUTE)
|
||||
endif(NOT "${lemon_template_fpath}" STREQUAL "${LEMON_TEMPLATE}")
|
||||
get_filename_component(perplex_template_fpath "${PERPLEX_TEMPLATE}" ABSOLUTE)
|
||||
if(NOT "${perplex_template_fpath}" STREQUAL "${PERPLEX_TEMPLATE}")
|
||||
get_filename_component(PERPLEX_TEMPLATE "${CMAKE_BINARY_DIR}/${PERPLEX_TEMPLATE}" ABSOLUTE)
|
||||
endif(NOT "${perplex_template_fpath}" STREQUAL "${PERPLEX_TEMPLATE}")
|
||||
|
||||
if(NOT COMMAND LEMON_TARGET)
|
||||
include(${SC_CMAKE_DIR}/LEMON_Util.cmake)
|
||||
endif(NOT COMMAND LEMON_TARGET)
|
||||
if(NOT COMMAND PERPLEX_TARGET)
|
||||
include(${SC_CMAKE_DIR}/PERPLEX_Util.cmake)
|
||||
endif(NOT COMMAND PERPLEX_TARGET)
|
||||
set(SC_GENERATE_LP_SOURCES 1)
|
||||
else(LEMON_EXECUTABLE AND LEMON_TEMPLATE AND PERPLEX_EXECUTABLE AND PERPLEX_TEMPLATE AND RE2C_EXECUTABLE)
|
||||
if("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
|
||||
message(FATAL_ERROR "\nSC_GENERATE_LEXER_PARSER set to ON, but one or more components of the Perplex/RE2C/Lemon toolchain were not found.\n")
|
||||
else("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
|
||||
set(SC_GENERATE_LP_SOURCES 0)
|
||||
endif("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
|
||||
endif(LEMON_EXECUTABLE AND LEMON_TEMPLATE AND PERPLEX_EXECUTABLE AND PERPLEX_TEMPLATE AND RE2C_EXECUTABLE)
|
||||
else(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
set(SC_GENERATE_LP_SOURCES 0)
|
||||
endif(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
|
||||
INCLUDE(CheckLibraryExists)
|
||||
INCLUDE(CheckIncludeFile)
|
||||
INCLUDE(CheckFunctionExists)
|
||||
INCLUDE(CheckTypeSize)
|
||||
INCLUDE(CMakePushCheckState)
|
||||
INCLUDE(CheckCXXSourceRuns)
|
||||
|
||||
CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
|
||||
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
|
||||
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
|
||||
CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
|
||||
CHECK_INCLUDE_FILE(sysent.h HAVE_SYSENT_H)
|
||||
CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
|
||||
CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
|
||||
CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
|
||||
CHECK_INCLUDE_FILE(process.h HAVE_PROCESS_H)
|
||||
CHECK_INCLUDE_FILE(io.h HAVE_IO_H)
|
||||
|
||||
CHECK_FUNCTION_EXISTS(abs HAVE_ABS)
|
||||
CHECK_FUNCTION_EXISTS(memcpy HAVE_MEMCPY)
|
||||
CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
|
||||
CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
|
||||
|
||||
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
|
||||
|
||||
set( TEST_STD_THREAD "
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
void do_work() {
|
||||
std::cout << \"thread\" << std::endl;
|
||||
}
|
||||
int main() {
|
||||
std::thread t(do_work);
|
||||
t.join();
|
||||
}
|
||||
" )
|
||||
cmake_push_check_state()
|
||||
if( UNIX )
|
||||
set( CMAKE_REQUIRED_FLAGS "-pthread -std=c++0x" )
|
||||
else( UNIX )
|
||||
# vars probably need set for MSVC11, embarcadero, etc
|
||||
endif( UNIX )
|
||||
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_THREAD}" HAVE_STD_THREAD ) #quotes are *required*!
|
||||
cmake_pop_check_state()
|
||||
|
||||
# Now that all the tests are done, configure the sc_cf.h file:
|
||||
get_property(CONFIG_H_FILE_CONTENTS GLOBAL PROPERTY SC_CONFIG_H_CONTENTS)
|
||||
file(WRITE ${CONFIG_H_FILE} "${CONFIG_H_FILE_CONTENTS}")
|
||||
configure_file(${CONFIG_H_FILE} ${SC_BINARY_DIR}/include/sc_cf.h)
|
||||
|
||||
################ create sc_version_string.h, http://stackoverflow.com/questions/3780667
|
||||
# Using 'ver_string' instead of 'sc_version_string.h' is a trick to force the
|
||||
# command to always execute when the custom target is built. It works because
|
||||
# a file by that name never exists.
|
||||
configure_file(${SC_CMAKE_DIR}/sc_version_string.cmake ${SC_BINARY_DIR}/sc_version_string.cmake @ONLY)
|
||||
add_custom_target(version_string ALL DEPENDS ver_string )
|
||||
# creates sc_version_string.h using cmake script
|
||||
add_custom_command(OUTPUT ver_string ${CMAKE_CURRENT_BINARY_DIR}/include/sc_version_string.h
|
||||
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${SC_SOURCE_DIR}
|
||||
-DBINARY_DIR=${SC_BINARY_DIR}
|
||||
-P ${SC_BINARY_DIR}/sc_version_string.cmake)
|
||||
# sc_version_string.h is a generated file
|
||||
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/include/sc_version_string.h
|
||||
PROPERTIES GENERATED TRUE
|
||||
HEADER_FILE_ONLY TRUE )
|
||||
################
|
||||
|
||||
if(MSVC)
|
||||
# add_definitions( -Wall )
|
||||
add_definitions( -D__MSVC__ -D__WIN32__ )
|
||||
# Disable warning for preferred usage of secure functions (example strcpy should be strcpy_s, ...)
|
||||
add_definitions( -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS )
|
||||
elseif(BORLAND)
|
||||
add_definitions( -D__BORLAND__ -D__WIN32__ )
|
||||
else()
|
||||
add_definitions( -pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long )
|
||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
|
||||
endif()
|
||||
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
|
||||
add_definitions(-pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
|
||||
endif()
|
||||
|
||||
include_directories(
|
||||
${SC_SOURCE_DIR}/include
|
||||
${SC_BINARY_DIR}/include
|
||||
)
|
||||
)
|
||||
|
||||
ADD_SUBDIRECTORY(src/base)
|
||||
ADD_SUBDIRECTORY(src/express)
|
||||
ADD_SUBDIRECTORY(src/exppp)
|
||||
ADD_SUBDIRECTORY(src/fedex_plus)
|
||||
ADD_SUBDIRECTORY(src/fedex_python)
|
||||
ADD_SUBDIRECTORY(src/clstepcore)
|
||||
ADD_SUBDIRECTORY(src/cleditor)
|
||||
ADD_SUBDIRECTORY(src/cldai)
|
||||
ADD_SUBDIRECTORY(src/clutils)
|
||||
if(NOT WIN32)
|
||||
ADD_SUBDIRECTORY(src/cllazyfile)
|
||||
endif(NOT WIN32)
|
||||
ADD_SUBDIRECTORY(include)
|
||||
ADD_SUBDIRECTORY(data)
|
||||
IF(SC_ENABLE_TESTING)
|
||||
ADD_SUBDIRECTORY( test )
|
||||
ENDIF(SC_ENABLE_TESTING)
|
||||
ADD_SUBDIRECTORY(doc)
|
||||
|
||||
# this is for testing - 'make core' builds everything that isn't generated
|
||||
add_custom_target( core )
|
||||
add_dependencies( core stepdai check-express stepeditor fedex_plus )
|
||||
add_subdirectory(src/base)
|
||||
add_subdirectory(src/express)
|
||||
add_subdirectory(src/exppp)
|
||||
add_subdirectory(src/exp2cxx)
|
||||
add_subdirectory(src/exp2python)
|
||||
add_subdirectory(src/clstepcore)
|
||||
add_subdirectory(src/cleditor)
|
||||
add_subdirectory(src/cldai)
|
||||
add_subdirectory(src/clutils)
|
||||
add_subdirectory(src/cllazyfile)
|
||||
add_subdirectory(include)
|
||||
add_subdirectory(data)
|
||||
if(SC_ENABLE_TESTING)
|
||||
add_subdirectory(test)
|
||||
endif(SC_ENABLE_TESTING)
|
||||
add_subdirectory(doc)
|
||||
|
||||
if(NOT SC_IS_SUBBUILD)
|
||||
###############################################################################
|
||||
# SC Packaging #
|
||||
# $make package #
|
||||
###############################################################################
|
||||
|
||||
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "STEPcode")
|
||||
SET(CPACK_SET_DESTDIR "ON")
|
||||
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR ${SC_VERSION_MAJOR})
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR ${SC_VERSION_MINOR})
|
||||
SET(CPACK_PACKAGE_NAME SC )
|
||||
|
||||
SET(CPACK_PACKAGE_CONTACT "SC Developers <scl-dev@googlegroups.com>")
|
||||
INCLUDE(CPack)
|
||||
|
||||
########################################################################################
|
||||
# Uninstall code #
|
||||
# From http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F #
|
||||
# ######################################################################################
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY)
|
||||
|
||||
add_custom_target(uninstall
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# SC Packaging
|
||||
# $make package
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "STEPcode")
|
||||
set(CPACK_SET_DESTDIR "ON")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${SC_VERSION_MAJOR})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${SC_VERSION_MINOR})
|
||||
set(CPACK_PACKAGE_NAME SC)
|
||||
set(CPACK_PACKAGE_CONTACT "SC Developers <scl-dev@googlegroups.com>")
|
||||
include(CPack)
|
||||
endif(NOT SC_IS_SUBBUILD)
|
||||
|
||||
|
||||
# CONFIG_END_MESSAGES - list of messages to be printed after everything else is done.
|
||||
# THIS MUST BE LAST to ensure that they are visible to the user without scrolling.
|
||||
foreach(_msg ${CONFIG_END_MESSAGES})
|
||||
message(STATUS "${_msg}")
|
||||
endforeach(_msg ${CONFIG_END_MESSAGES})
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# How to contribute
|
||||
|
||||
We love contributions!
|
||||
|
||||
## Getting started
|
||||
|
||||
* Create a github account if you haven't already, and fork the project
|
||||
* Create a new branch, using a branch name that gives an idea of what the changes are about
|
||||
* One topic per commit; a number of small commits are better than one big one
|
||||
* Do not introduce whitespace changes! (**Windows users:** `git config --global core.autocrlf true`)
|
||||
* Encouraged but not enforced: each commit should stand alone, in the sense that the code should compile and run at that point.
|
||||
* One major topic per pull request. Commits that fix small things (typos, formatting) are perfectly acceptable in a PR fixing a bug or adding a feature.
|
||||
* Tests are good. Tests are required unless you're fixing something simple or that was obviously broken.
|
||||
* Make your changes and push them to your GitHub repo
|
||||
* Once your branch is pushed, submit a pull request.
|
||||
* We'll look at the PR and either merge or add feedback. If there isn't any activity within several days, send a message to the mailing list - `scl-dev` AT `groups.google.com`.
|
||||
|
||||
## Coding Standards
|
||||
|
||||
SC's source has been reformatted with astyle. When making changes, try
|
||||
to match the current formatting. The main points are:
|
||||
|
||||
- compact (java-style) brackets:
|
||||
```C
|
||||
if( a == 3 ) {
|
||||
c = 5;
|
||||
function( a, b );
|
||||
} else {
|
||||
somefunc();
|
||||
}
|
||||
```
|
||||
- indents are 4 spaces
|
||||
- no tab characters
|
||||
- line endings are LF (linux), not CRLF (windows)
|
||||
- brackets around single-line conditionals
|
||||
- spaces inside parentheses and around operators
|
||||
- return type on the same line as the function name, unless that's
|
||||
too long
|
||||
- doxygen-style comments
|
||||
(see http://www.stack.nl/~dimitri/doxygen/docblocks.html)
|
||||
|
||||
If in doubt about a large patch, run astyle with the config file
|
||||
misc/astyle.cfg.
|
||||
Download astyle from http://sourceforge.net/projects/astyle/files/astyle/
|
||||
|
||||
@@ -1,108 +1,47 @@
|
||||
Modifications to the original NIST code are (C)opyright by their
|
||||
respective authors. Unless otherwise specified, they are copyright
|
||||
on the date those changes were committed to whichever repository
|
||||
they were committed to first (i.e. BRL-CAD on SourceForge.net,
|
||||
mpictor/StepClassLibrary or stepcode/stepcode on github).
|
||||
STEPcode is provided as a collective work under the 3-clause BSD
|
||||
license. As some portions are not subject to copyright in some
|
||||
jurisdictions, see INTENT.md for additional details regarding intent
|
||||
and history. See the AUTHORS file for a list of contributors and
|
||||
copyright holders.
|
||||
|
||||
Code generated by STEPcode containing substantial parts of STEPcode
|
||||
complex enough to have copyright protection are subject to the terms
|
||||
of this license.
|
||||
|
||||
STEPcode acknowledgement and/or attribution is appreciated regardless
|
||||
of license or copyright status.
|
||||
|
||||
Modifications which were first commited to the repository on github
|
||||
are licensed under the 3-clause BSD license below. Changes committed
|
||||
to BRL-CAD either contain license information mentioning BRL-CAD
|
||||
near the top of the file, or are licensed under the same terms that
|
||||
NIST used.
|
||||
|
||||
********************************************************************
|
||||
3-clause BSD license:
|
||||
3-Clause BSD License
|
||||
********************************************************************
|
||||
|
||||
Copyright (c) <date committed>, <copyright holder>
|
||||
Copyright (c) 2009-2019 STEPcode AUTHORS
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the <organization> nor the
|
||||
names of its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
********************************************************************
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
********************************************************************
|
||||
ORIGINAL NIST TEXT FOLLOWS
|
||||
********************************************************************
|
||||
|
||||
This software was produced by the National Institute of Standards and
|
||||
Technology (NIST), an agency of the U.S. government, and by statute is
|
||||
not subject to copyright in the United States. Recipients of this
|
||||
software assume all responsibility associated with its operation,
|
||||
modification, maintenance, and subsequent redistribution.
|
||||
|
||||
Acknowledgements:
|
||||
The STEP Class Library (SCL) was developed by the Manufacturing
|
||||
Systems Integration Division at NIST to support testing of the
|
||||
Standard for the Exchange of Product Model Data (a.k.a STEP) and
|
||||
validation of STEP's emerging implementation specifications. Funding
|
||||
for the project has come from the Department of Commerce and the
|
||||
Department of Defense agencies including the Office of the Defense
|
||||
CALS (Continuous Acquisition and Life-Cycle Support) Executive and
|
||||
the Defense Advanced Research Projects Agency (DARPA). Recent
|
||||
enhancements were sponsored by the National Information Infrastructure
|
||||
Protocols Consortium and NIST's Systems Integration for Manufacturing
|
||||
Applications (SIMA) program.
|
||||
|
||||
|
||||
/* ********************************************************************
|
||||
* D I S C L A I M E R
|
||||
* (February 6, 1992)
|
||||
*
|
||||
* There is no warranty for the NIST PDES Toolkit.
|
||||
* If the NIST PDES Toolkit
|
||||
* is modified by someone else and passed on, NIST wants
|
||||
* the Toolkit's recipients to know that what they have is not what NIST
|
||||
* distributed.
|
||||
*
|
||||
* Policies
|
||||
*
|
||||
* 1. Anyone may copy and distribute verbatim copies of the NIST PDES Toolkit
|
||||
* source code as received in any medium.
|
||||
*
|
||||
* 2. Anyone may modify your copy or copies of the NIST PDES Toolkit source
|
||||
* code or any portion of it, and copy and distribute such modifications
|
||||
* provided that all modifications are clearly associated with the entity
|
||||
* that performs the modifications.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* ===========
|
||||
*
|
||||
* NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST PDES TOOLKIT
|
||||
* IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
|
||||
* WITH YOU. SHOULD ANY PORTION OF THE NIST PDES TOOLKIT PROVE DEFECTIVE,
|
||||
* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES,
|
||||
* INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
|
||||
* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
* INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||
* BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
|
||||
* FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
|
||||
* NIST) THE PROGRAMS, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
|
||||
*/
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
@@ -8,3 +8,11 @@ set(CTEST_DROP_METHOD "http")
|
||||
set(CTEST_DROP_SITE "my.cdash.org")
|
||||
set(CTEST_DROP_LOCATION "/submit.php?project=StepClassLibrary")
|
||||
set(CTEST_DROP_SITE_CDASH TRUE)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
## Licensing Intent
|
||||
|
||||
The intent is that this software and documentation ("Project") should
|
||||
be treated as if it is licensed under the license(s) associated with
|
||||
the Project ("License") in the `COPYING` file. However, because some
|
||||
contributors work for the United States (U.S.) Federal Government, it
|
||||
is not that simple.
|
||||
|
||||
The portions of this Project written by United States (U.S.) federal
|
||||
government employees within the scope of their federal employment are
|
||||
ineligible for copyright protection in the U.S.; this is generally
|
||||
understood to mean that these portions of the Project are placed in
|
||||
the public domain.
|
||||
|
||||
In countries where copyright protection is available (which does not
|
||||
include the U.S.), contributions made by U.S. Federal government
|
||||
employees are released under the License. Merged contributions from
|
||||
private contributors are released under the License.
|
||||
|
||||
## Background History
|
||||
|
||||
STEPcode was originally developed as the STEP Class Libraries (SCL) by
|
||||
the U.S. National Institute of Standards and Technology (NIST). Prior
|
||||
to 2009, the U.S. Army Research Laboratory and members of the BRL-CAD
|
||||
open source community researched freely available open source options
|
||||
for ISO 10303 STEP support. Development had ceased, no open source
|
||||
community existed, the code was out of date in many regards, and
|
||||
additional work was needed to become production-ready, but SCL was
|
||||
found to be a usable reference implementation.
|
||||
|
||||
Consulting with NIST and others circa 2009, the BRL-CAD community
|
||||
began efforts to take over SCL development, modernization, and code
|
||||
enhancements. The BRL-CAD community purchased licenses for the ISO
|
||||
10303 standard and began working to bring SCL up-to-date with the
|
||||
latest specification. By 2011, significant progress had been made,
|
||||
the project had garnered attention from others, and STEPcode was
|
||||
establishd as an independent project.
|
||||
|
||||
## Original NIST License Text
|
||||
|
||||
This software was [originally] produced by the National Institute of
|
||||
Standards and Technology (NIST), an agency of the U.S. government, and
|
||||
by statute is not subject to copyright in the United
|
||||
States. Recipients of this software assume all responsibility
|
||||
associated with its operation, modification, maintenance, and
|
||||
subsequent redistribution.
|
||||
|
||||
Acknowledgements:
|
||||
The STEP Class Library (SCL) was developed by the Manufacturing
|
||||
Systems Integration Division at NIST to support testing of the
|
||||
Standard for the Exchange of Product Model Data (a.k.a STEP) and
|
||||
validation of STEP's emerging implementation specifications. Funding
|
||||
for the project has come from the Department of Commerce and the
|
||||
Department of Defense agencies including the Office of the Defense
|
||||
CALS (Continuous Acquisition and Life-Cycle Support) Executive and
|
||||
the Defense Advanced Research Projects Agency (DARPA). Recent
|
||||
enhancements [circa 1992] were sponsored by the National Information Infrastructure
|
||||
Protocols Consortium and NIST's Systems Integration for Manufacturing
|
||||
Applications (SIMA) program.
|
||||
|
||||
~~~~
|
||||
/* ********************************************************************
|
||||
* D I S C L A I M E R
|
||||
* (February 6, 1992)
|
||||
*
|
||||
* There is no warranty for the NIST PDES Toolkit.
|
||||
* If the NIST PDES Toolkit
|
||||
* is modified by someone else and passed on, NIST wants
|
||||
* the Toolkit's recipients to know that what they have is not what NIST
|
||||
* distributed.
|
||||
*
|
||||
* Policies
|
||||
*
|
||||
* 1. Anyone may copy and distribute verbatim copies of the NIST PDES Toolkit
|
||||
* source code as received in any medium.
|
||||
*
|
||||
* 2. Anyone may modify your copy or copies of the NIST PDES Toolkit source
|
||||
* code or any portion of it, and copy and distribute such modifications
|
||||
* provided that all modifications are clearly associated with the entity
|
||||
* that performs the modifications.
|
||||
*
|
||||
* NO WARRANTY
|
||||
* ===========
|
||||
*
|
||||
* NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST PDES TOOLKIT
|
||||
* IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
|
||||
* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
|
||||
* WITH YOU. SHOULD ANY PORTION OF THE NIST PDES TOOLKIT PROVE DEFECTIVE,
|
||||
* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
*
|
||||
* IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES,
|
||||
* INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
|
||||
* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
* INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||
* BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
|
||||
* FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
|
||||
* NIST) THE PROGRAMS, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
|
||||
*/
|
||||
~~~~
|
||||
@@ -1,4 +1,29 @@
|
||||
STEPcode -- http://github.com/stepcode/stepcode -- http://stepcode.org
|
||||
************************************************************************
|
||||
STEPcode
|
||||
http://github.com/stepcode/stepcode
|
||||
************************************************************************
|
||||
|
||||
Release 0.8 (December, 2014)
|
||||
|
||||
New since v0.7:
|
||||
* handle diamond inheritance, derived Attributes
|
||||
* rename fedex_python, fedex_plus to exp2py, exp2cxx
|
||||
* many changes to the pretty printer, due to use in reformatting draft
|
||||
and IS schemas (Thanks Tom!)
|
||||
* parser was also changed due to errors caught while pretty printing
|
||||
- we can be much more confident that the parser is correct now
|
||||
* fix incorrect quoting of timestamp in p21 header
|
||||
* fix various copy constructors and ShallowCopy() members
|
||||
* split generated code into many small files
|
||||
- far easier to open generated code in editors
|
||||
- support more compilers
|
||||
- small files are combined (via #include statements) into a few
|
||||
large files for faster "unitary" builds, if the compiler can handle it
|
||||
- unitary builds are faster than the previous builds
|
||||
* most compiler warnings fixed
|
||||
* performance fixes and other changes from BRL-CAD
|
||||
* finally, all tests pass!
|
||||
|
||||
************************************************************************
|
||||
Release 0.7 (April, 2013)
|
||||
|
||||
@@ -31,7 +56,7 @@ New since v0.5:
|
||||
* Add AP219, AP238, PDM schema, AP203a1, syntax highlighting files
|
||||
* Improvements to CMake files, mostly from Cliff @ BRL-CAD (#143, #163, #181)
|
||||
* Allow runtime bounds for aggregates (discovered with AP209e2) (#166)
|
||||
* fedex_plus fprintf's can be traced with -DSCL_TRACE_FPRINTF=ON (#176)
|
||||
* exp2cxx fprintf's can be traced with -DSCL_TRACE_FPRINTF=ON (#176)
|
||||
************************************************************************
|
||||
Release 0.5 (Feb 23, 2012)
|
||||
|
||||
@@ -42,7 +67,7 @@ New since v0.4:
|
||||
with the exception of AP209 CD, are parsed without error. Enums are
|
||||
now in their own dictionary. Allow indexing on aggregates, generics,
|
||||
and binaries.
|
||||
* Changes to fedex_plus that improve the generated c++ - use a
|
||||
* Changes to exp2cxx that improve the generated c++ - use a
|
||||
namespace, break up large static strings, make EXPRESS multiple
|
||||
inheritance work by not printing multiple copies of inherited members.
|
||||
All schemas now compile without error, but there are numerous warnings.
|
||||
@@ -55,7 +80,7 @@ Release 0.4 (Nov 13, 2011)
|
||||
|
||||
New since v0.3:
|
||||
* Improve p21read performance by ~30%
|
||||
* Improve fedex_plus performance by ~4300% (!)
|
||||
* Improve exp2cxx performance by ~4300% (!)
|
||||
* A variable defined in a LOCAL is not required to have a type label
|
||||
(affected ap242,210e3,209)
|
||||
* Enums and entities are allowed to have the same names
|
||||
@@ -81,7 +106,7 @@ Release 0.2 (Oct 1, 2011)
|
||||
What's new since v0.1?
|
||||
|
||||
* Retrieve aggregate type from the underlying type (issue #4)
|
||||
* Fix aggregate select types naming convention in fedex_plus (issue #59)
|
||||
* Fix aggregate select types naming convention in exp2cxx (issue #59)
|
||||
* Fix several segfaults and double free's in p21read (issue #63)
|
||||
* Fix several file read/write bugs in p21read, including
|
||||
* don't write '$' for empty string
|
||||
@@ -113,7 +138,7 @@ What's new since the SCL 3.2 release in 1998?
|
||||
* Bring SCL closer to alignment with modern coding standards - replace
|
||||
String class with std::string, fix all GCC warnings
|
||||
* Builds on Linux, OSX, and Windows; requires mingw on Windows.
|
||||
* Add debugging option -d 9 -l nnn -u nnn to fedex_plus. This limits
|
||||
* Add debugging option -d 9 -l nnn -u nnn to exp2cxx. This limits
|
||||
parser debug output to a specified range of lines in the schema.
|
||||
|
||||
For a detailed list of changes, see
|
||||
@@ -154,7 +179,7 @@ There were also some issues with the configure script and some
|
||||
makefiles which are addressed, as well as a new macro that is at
|
||||
least required for gcc.
|
||||
|
||||
Remaing problem: The p21 file scanner of SCL currently
|
||||
Remaining problem: The p21 file scanner of SCL currently
|
||||
does not allow for comments within the parameter list of
|
||||
data records. Only comments outside of data records are
|
||||
accepted.
|
||||
@@ -194,7 +219,7 @@ REFERENCE FROM clauses, global rules, PROCEDUREs, and
|
||||
FUNCTIONS. Information about these objects is available but validation
|
||||
based on it is not performed.
|
||||
|
||||
- enhanced fedex_plus C++ code generator to generate the necessary
|
||||
- enhanced exp2cxx C++ code generator to generate the necessary
|
||||
dictionary objects for the above EXPRESS constructs for a particular
|
||||
schema. Also enhanced schema dictionary code generation to add
|
||||
information necessary to generate an EXPRESS schema (i.e. which
|
||||
@@ -230,7 +255,7 @@ the TD for label.
|
||||
|
||||
- Fixed the casting operator for the class representing EXPRESS
|
||||
enumeration types. It was returning the last element of the enum type
|
||||
as the the default when the enum was unset. This choice predated enums
|
||||
as the default when the enum was unset. This choice predated enums
|
||||
having an unset enum value. It now returns <enum_name>_unset as the
|
||||
default when the enum is unset.
|
||||
|
||||
@@ -332,14 +357,14 @@ namespace or prefix as is necessary. To change the SDAI namespace name
|
||||
or prefix name the macro definition for SDAI_ could be changed in
|
||||
the sclprefixes.h file.
|
||||
|
||||
The early bound access functions that are generated by fedex_plus from
|
||||
The early bound access functions that are generated by exp2cxx from
|
||||
EXPRESS defined entities have been updated to the latest version of
|
||||
Part 23's C++ binding to SDAI. A previous early bound function defined
|
||||
as "const SdaiLabel Name()" would now be defined according to Part 23 as
|
||||
"const SdaiLabel name_()". *notice* that application schema defined
|
||||
types are not yet defined in a namespace. Compatibility with previous
|
||||
versions of SCL early bound functions has been maintained via the -a
|
||||
fedex_plus option.
|
||||
exp2cxx option.
|
||||
|
||||
-----------------------------------------------------
|
||||
SDAI Session Schema objects implemented (model_contents, extents, etc)
|
||||
@@ -349,7 +374,7 @@ Several classes and types defined as part of SDAI Part 23's Session
|
||||
Schema have been implemented (where before they mostly had stub
|
||||
functions). These have been implemented for use with or without the
|
||||
ObjectStore object oriented database. Model_contents_<schema_name> is
|
||||
now being generated by fedex_plus allowing Entity_extents to be
|
||||
now being generated by exp2cxx allowing Entity_extents to be
|
||||
maintained for entities as desired.
|
||||
|
||||
-----------------------------------------------------
|
||||
@@ -365,7 +390,7 @@ database.
|
||||
|
||||
The SCL application, fedex_os, uses an application schema written in
|
||||
EXPRESS to generate additional code needed for use with ObjectStore.
|
||||
Fedex_os is used in conjunction with fedex_plus for generating the C++
|
||||
Fedex_os is used in conjunction with exp2cxx for generating the C++
|
||||
necessary to implement your application schema.
|
||||
|
||||
Although building SCL libraries for use with ObjectStore is
|
||||
@@ -410,7 +435,7 @@ schema. The generation of IDL schemas by fedex_idl is according to
|
||||
STEP's Part 26 Interface Definition Language binding to the SDAI. The
|
||||
Orbix IDL compiler is then used to generate the client and server code
|
||||
necessary for communication through an Orbix ORB. The SCL application,
|
||||
fedex_plus, would then be run with the -c option on your application's
|
||||
exp2cxx, would then be run with the -c option on your application's
|
||||
EXPRESS schema to generate the server implementation objects required
|
||||
to build an Orbix server (it uses the TIE approach). You would be
|
||||
required to write the C++ main() function for the server code.
|
||||
@@ -457,7 +482,7 @@ MULTIPLE SCHEMA SUPPORT
|
||||
|
||||
A library and Data Probe can now be generated for an EXPRESS file
|
||||
containing multiple schemas. This is done primarily by dividing the
|
||||
source code generated by fedex_plus into separate files. Separate
|
||||
source code generated by exp2cxx into separate files. Separate
|
||||
files are generated for each schema contained in the EXPRESS file. In
|
||||
addition, often schemas are dependent on one another. This will be
|
||||
the case if the schemas use and reference entities and types from each
|
||||
@@ -465,7 +490,7 @@ other. If, for example, entity X in schema A is a subtype of entity Y
|
||||
in schema B, X will not be processed until B in schema Y is processed.
|
||||
Other such cases of interdependence occur if an entity in schema A
|
||||
contains as an attribute an enumeration or select type defined in
|
||||
another schema. To address such cases, fedex_plus may process a
|
||||
another schema. To address such cases, exp2cxx may process a
|
||||
schema in multiple passes. At each pass, only the objects in the
|
||||
schema which are not dependent on not-yet-processed objects in other
|
||||
schemas are processed. At each successive pass through the schemas as
|
||||
@@ -477,16 +502,16 @@ B which is a supertype of C, etc.).
|
||||
For an EXPRESS file with multiple dependent schemas, it is advisable
|
||||
to organize the file with bottom-up design. Schemas containing the
|
||||
simpler, building block types and entities should appear first. By
|
||||
doing so, when fedex_plus begins processing the more complex schemas,
|
||||
doing so, when exp2cxx begins processing the more complex schemas,
|
||||
there will be fewer cases in which the parser will encounter not-yet-
|
||||
defined objects from other schemas. (The objects which are referenced
|
||||
the most will have already been defined.) This will minimize the
|
||||
number of times fedex_plus is required to divide output files.
|
||||
number of times exp2cxx is required to divide output files.
|
||||
|
||||
One known case of interdependence which fedex_plus is not able to
|
||||
One known case of interdependence which exp2cxx is not able to
|
||||
support occurs if say select A has select B as an item, and select B
|
||||
has select A as an item. (This is unsupported even if A and B are in
|
||||
the same schema.) fedex_plus has no way in which it can generate
|
||||
the same schema.) exp2cxx has no way in which it can generate
|
||||
compilable source code for the selects because each is dependent on
|
||||
the other. In addition, this would cause the parser to fall into an
|
||||
endless loop, so we strongly discourage it. ;-)
|
||||
@@ -598,18 +623,18 @@ see below, next section.)
|
||||
level, bypassing STEPfile. STEPentity will allow the initialization
|
||||
but will place a warning in its errorDesc field.)
|
||||
|
||||
3. fedex_plus may be compiled with the flag COMPLEX_INFO. If this
|
||||
flag is turned on, fedex_plus prints out (to `cout') a large amount of
|
||||
3. exp2cxx may be compiled with the flag COMPLEX_INFO. If this
|
||||
flag is turned on, exp2cxx prints out (to `cout') a large amount of
|
||||
detail on the complex entities it finds and their overall structure.
|
||||
This is useful to see how fedex interpreted the complex information of
|
||||
an EXPRESS file, and to get a simple graphical view of the supertype-
|
||||
subtype hierarchy of the file.
|
||||
|
||||
fedex_plus's makefile contains the commented-out line,
|
||||
exp2cxx's makefile contains the commented-out line,
|
||||
|
||||
#USER_DEFS = -DCOMPLEX_INFO
|
||||
|
||||
If this line is uncommented, a fedex_plus executable will be built
|
||||
If this line is uncommented, a exp2cxx executable will be built
|
||||
which prints such information.
|
||||
|
||||
Limitations
|
||||
@@ -646,12 +671,12 @@ the renaming of an individual entity places it out of order, the nodes
|
||||
will be printed out of order.
|
||||
|
||||
4. "Diamond inheritance" is not handled automatically and must be
|
||||
fixed by hand in the code generated by fedex_plus. (See
|
||||
fixed by hand in the code generated by exp2cxx. (See
|
||||
whatsnew.2-1.txt, section "Multiple Inheritance".)
|
||||
|
||||
5. Selects between aggregates: A select containing two aggregate
|
||||
choices of the same type (e.g., ARRAY and ARRAY, as opposed to ARRAY
|
||||
and SET) will cause fedex_plus to generate code which cannot be
|
||||
and SET) will cause exp2cxx to generate code which cannot be
|
||||
compiled.
|
||||
|
||||
6. Problem with sparcworks compiler version 4.0(?) - operator int() =
|
||||
@@ -692,14 +717,14 @@ ANY OTHER PARTY.
|
||||
What's new in the STEP Class Library and Data Probe release 2.1
|
||||
June 1995
|
||||
|
||||
This release of the STEP Class Library (SCL), fedex_plus code
|
||||
This release of the STEP Class Library (SCL), exp2cxx code
|
||||
generator, and Data Probe also contains the latest releases of the
|
||||
fedex syntax and semantic checker, the NIST Express Toolkit (also new
|
||||
on SOLIS as of June 12, 1995), and the Express Pretty Printer Toolkit.
|
||||
The NIST Express Toolkit and fedex have been updated to handle the IS
|
||||
version of Express and various problems have been fixed as a result of
|
||||
pre-validation conformance testing. Following is an overview of
|
||||
what's new in the STEP Class Library (and hence fedex_plus) and the
|
||||
what's new in the STEP Class Library (and hence exp2cxx) and the
|
||||
Data Probe.
|
||||
|
||||
--------------------
|
||||
@@ -772,13 +797,13 @@ When this case of multiple inheritance is encountered attributes are
|
||||
duplicated. This case of multiple inheritance may possibly be
|
||||
avoided by modifying the EXPRESS schema by breaking some links in the
|
||||
inheritance hierarchy. This will not have an adverse affect on the
|
||||
implemementation. The user may choose to use the current or previous
|
||||
implementation. The user may choose to use the current or previous
|
||||
method of handling multiple inheritance. The current method is the
|
||||
default behavior. The previous method is obtained by supplying the
|
||||
-s (or -S) option with the fedex_plus code generator or the mkProbe
|
||||
-s (or -S) option with the exp2cxx code generator or the mkProbe
|
||||
script.
|
||||
|
||||
When the fedex_plus code generator is generating the C++ class library
|
||||
When the exp2cxx code generator is generating the C++ class library
|
||||
representation of a schema, it outputs information calling attention
|
||||
to the cases of multiple inheritance.
|
||||
|
||||
@@ -965,7 +990,7 @@ the attribute value field in the entity editor.
|
||||
If there wasn't a value in the attribute previously, then the field will
|
||||
contain just the type specifier, e.g., Str1() if Str1 is the type selected.
|
||||
|
||||
If a value exists in the field, it is modified to accomodate the new
|
||||
If a value exists in the field, it is modified to accommodate the new
|
||||
specifier. This means the following:
|
||||
o If the value in the field starts with a single-quote ('), it is
|
||||
assumed to be a string literal, and is completely wrapped in the new
|
||||
@@ -1038,7 +1063,7 @@ functions.
|
||||
--------
|
||||
Attributes of type Boolean and aggregate of Boolean were previously
|
||||
implemented using the Logical and Logicals classes (respectively).
|
||||
The fedex_plus code generator now generates classes Boolean and
|
||||
The exp2cxx code generator now generates classes Boolean and
|
||||
Booleans to implement attributes of type Boolean and aggregate of
|
||||
Boolean respectively.
|
||||
|
||||
|
||||
+14
-8
@@ -1,5 +1,9 @@
|
||||

|
||||
|
||||
***********************************************************************
|
||||
STEPcode v0.7 -- stepcode.org, github.com/stepcode/stepcode
|
||||
STEPcode v0.8 -- github.com/stepcode/stepcode
|
||||
|
||||
* test PR integration
|
||||
|
||||
* What is STEPcode? SC reads ISO10303-11 EXPRESS schemas and generates
|
||||
C++ source code that can read and write Part 21 files conforming
|
||||
@@ -32,12 +36,14 @@ SC's source has been reformatted with astyle. When making changes, try
|
||||
to match the current formatting. The main points are:
|
||||
|
||||
- compact (java-style) brackets:
|
||||
if( a == 3 ) {
|
||||
c = 5;
|
||||
function( a, b );
|
||||
} else {
|
||||
somefunc( );
|
||||
}
|
||||
```C
|
||||
if( a == 3 ) {
|
||||
c = 5;
|
||||
function( a, b );
|
||||
} else {
|
||||
somefunc( );
|
||||
}
|
||||
```
|
||||
- indents are 4 spaces
|
||||
- no tab characters
|
||||
- line endings are LF (linux), not CRLF (windows)
|
||||
@@ -54,4 +60,4 @@ Download astyle from http://sourceforge.net/projects/astyle/files/astyle/
|
||||
|
||||
***********************************************************************
|
||||
|
||||
For more info, see the wiki.
|
||||
For more info, see the wiki.
|
||||
@@ -1 +0,0 @@
|
||||
0.7
|
||||
@@ -1,6 +0,0 @@
|
||||
(from BRL-CAD)
|
||||
|
||||
* rewrite express parser to not require lex/yacc
|
||||
|
||||
* verify/fix step parser generation with newer AP schemas, seems to be
|
||||
outputting invalid syntax.
|
||||
@@ -1,84 +0,0 @@
|
||||
# - Check if the given C source code compiles and runs.
|
||||
# CHECK_C_SOURCE_RUNS(<code> <var>)
|
||||
# <code> - source code to try to compile
|
||||
# <var> - variable to store the result
|
||||
# (1 for success, empty for failure)
|
||||
# The following variables may be set before calling this macro to
|
||||
# modify the way the check is run:
|
||||
#
|
||||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
|
||||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
|
||||
# CMAKE_REQUIRED_INCLUDES = list of include directories
|
||||
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2006-2009 Kitware, Inc.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
# (To distributed this file outside of CMake, substitute the full
|
||||
# License text for the above reference.)
|
||||
|
||||
MACRO(CHECK_C_FILE_RUNS SOURCE VAR)
|
||||
IF("${VAR}" MATCHES "^${VAR}$")
|
||||
SET(MACRO_CHECK_FUNCTION_DEFINITIONS
|
||||
"-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
|
||||
IF(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
|
||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
|
||||
ELSE(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
|
||||
ENDIF(CMAKE_REQUIRED_LIBRARIES)
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
|
||||
MESSAGE(STATUS "Performing Test ${VAR}")
|
||||
TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
|
||||
${CMAKE_BINARY_DIR}
|
||||
${SOURCE}
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${FILE_RUN_DEFINITIONS}
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
|
||||
-DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
|
||||
"${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
|
||||
"${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
|
||||
COMPILE_OUTPUT_VARIABLE OUTPUT)
|
||||
# if it did not compile make the return value fail code of 1
|
||||
IF(NOT ${VAR}_COMPILED)
|
||||
SET(${VAR}_EXITCODE 1)
|
||||
ENDIF(NOT ${VAR}_COMPILED)
|
||||
# if the return value was 0 then it worked
|
||||
IF("${${VAR}_EXITCODE}" EQUAL 0)
|
||||
SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
|
||||
MESSAGE(STATUS "Performing Test ${VAR} - Success")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"Return value: ${${VAR}}\n"
|
||||
"Source file was:\n${SOURCE}\n")
|
||||
ELSE("${${VAR}_EXITCODE}" EQUAL 0)
|
||||
IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
|
||||
SET(${VAR} "${${VAR}_EXITCODE}")
|
||||
ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
|
||||
SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
|
||||
ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
|
||||
|
||||
MESSAGE(STATUS "Performing Test ${VAR} - Failed")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
|
||||
"${OUTPUT}\n"
|
||||
"Return value: ${${VAR}_EXITCODE}\n"
|
||||
"Source file was:\n${SOURCE}\n")
|
||||
|
||||
ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
|
||||
ENDIF("${VAR}" MATCHES "^${VAR}$")
|
||||
ENDMACRO(CHECK_C_FILE_RUNS)
|
||||
|
||||
+134
-19
@@ -10,23 +10,23 @@
|
||||
#
|
||||
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
|
||||
#
|
||||
# Copyright (c) 2010-2012 United States Government as represented by
|
||||
# Copyright (c) 2010-2016 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2006 Tristan Carel
|
||||
# All rights reserved.
|
||||
#
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
#
|
||||
# * The names of the authors may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
@@ -47,21 +47,136 @@
|
||||
find_program(LEMON_EXECUTABLE lemon DOC "path to the lemon executable")
|
||||
mark_as_advanced(LEMON_EXECUTABLE)
|
||||
|
||||
if(LEMON_EXECUTABLE AND NOT LEMON_TEMPLATE)
|
||||
get_filename_component(lemon_path ${LEMON_EXECUTABLE} PATH)
|
||||
if(lemon_path)
|
||||
set(LEMON_TEMPLATE "")
|
||||
if(EXISTS ${lemon_path}/lempar.c)
|
||||
set(LEMON_TEMPLATE "${lemon_path}/lempar.c")
|
||||
endif(EXISTS ${lemon_path}/lempar.c)
|
||||
if(EXISTS /usr/share/lemon/lempar.c)
|
||||
set(LEMON_TEMPLATE "/usr/share/lemon/lempar.c")
|
||||
endif(EXISTS /usr/share/lemon/lempar.c)
|
||||
endif(lemon_path)
|
||||
endif(LEMON_EXECUTABLE AND NOT LEMON_TEMPLATE)
|
||||
if (LEMON_EXECUTABLE)
|
||||
if(NOT LEMON_TEMPLATE)
|
||||
# look for the template, if we've not already been told where it is
|
||||
if (DATA_DIR AND EXISTS "${DATA_DIR}/lemon/lempar.c")
|
||||
find_file(LEMON_TEMPLATE lempar.c
|
||||
PATHS "${DATA_DIR}/lemon/lempar.c"
|
||||
NO_DEFAULT_PATH)
|
||||
endif ()
|
||||
|
||||
# If the above did not succeed, check standard locations
|
||||
get_filename_component(lemon_dir ${LEMON_EXECUTABLE} DIRECTORY)
|
||||
find_file(LEMON_TEMPLATE lempar.c
|
||||
PATHS "${lemon_dir}" "/usr/share/lemon"
|
||||
NO_DEFAULT_PATH)
|
||||
mark_as_advanced(LEMON_TEMPLATE)
|
||||
endif()
|
||||
|
||||
# We need a template to be able to use lemon correctly
|
||||
if(NOT LEMON_TEMPLATE)
|
||||
message(FATAL_ERROR "Failed to find lemon template file (lempar.c) - need to set LEMON_TEMPLATE")
|
||||
endif()
|
||||
|
||||
# Define the function
|
||||
# LEMON_TARGET(<Name> <LemonInput> <LemonSource> <LemonHeader>
|
||||
# [<ArgString>])
|
||||
# which will create a custom rule to generate a parser. <LemonInput> is
|
||||
# the path to a lemon file. <LemonSource> is the desired name for the
|
||||
# generated source file. <LemonHeader> is the desired name for the
|
||||
# generated header which contains the token list. Anything in the optional
|
||||
# <ArgString> parameter is appended to the lemon command line.
|
||||
#
|
||||
# ====================================================================
|
||||
# Example:
|
||||
#
|
||||
# find_package(LEMON)
|
||||
# LEMON_TARGET(MyParser parser.y parser.c parser.h)
|
||||
# add_executable(Foo main.cpp ${LEMON_MyParser_OUTPUTS})
|
||||
# ====================================================================
|
||||
|
||||
include(CMakeParseArguments)
|
||||
|
||||
if(NOT COMMAND LEMON_TARGET)
|
||||
function(LEMON_TARGET Name LemonInput LemonOutput)
|
||||
set(LT_ARGS DEFINES_FILE COMPILE_FLAGS)
|
||||
cmake_parse_arguments(LEMON_TARGET_ARG "" "${LT_ARGS}" "" ${ARGN})
|
||||
|
||||
if(NOT "${LEMON_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
|
||||
set(LEMON_EXECUTABLE_opts "${LEMON_TARGET_ARG_COMPILE_FLAGS}")
|
||||
separate_arguments(LEMON_EXECUTABLE_opts)
|
||||
else()
|
||||
set(LEMON_EXECUTABLE_opts "")
|
||||
endif()
|
||||
|
||||
# check for LemonOutput
|
||||
get_filename_component(_basename ${LemonOutput} NAME_WE)
|
||||
get_filename_component(_out_src_file ${LemonOutput} NAME)
|
||||
get_filename_component(_out_dir ${LemonOutput} PATH)
|
||||
if(NOT "${_out_dir}" STREQUAL "")
|
||||
message(WARNING "Full path specified for LemonOutput - should be filename only")
|
||||
endif()
|
||||
|
||||
# set report file
|
||||
set(_out_rpt_file "${_basename}.out")
|
||||
|
||||
# check for DEFINES_FILE
|
||||
if ("${LEMON_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
|
||||
set(_out_hdr_file "${_basename}.h")
|
||||
else()
|
||||
get_filename_component(_out_dir ${LEMON_TARGET_ARG_DEFINES_FILE} PATH)
|
||||
get_filename_component(_out_hdr_file ${LEMON_TARGET_ARG_DEFINES_FILE} NAME)
|
||||
if(NOT "${_out_dir}" STREQUAL "")
|
||||
message(WARNING "Full path specified for DEFINES_FILE - should be filename only")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# input file
|
||||
get_filename_component(_in_y_path ${LemonInput} ABSOLUTE)
|
||||
get_filename_component(_in_y_file ${LemonInput} NAME)
|
||||
|
||||
# Stage the source file in the binary directory for lemon. We need to make
|
||||
# sure it's fully copied, so use a sentinel guard
|
||||
add_custom_command(
|
||||
OUTPUT ${_in_y_file}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${_in_y_path} ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}.sentinel
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}.sentinel
|
||||
DEPENDS ${_in_y_file}
|
||||
)
|
||||
add_custom_target(${Name}_input_cpy DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}.sentinel)
|
||||
|
||||
# execute lemon
|
||||
add_custom_command(
|
||||
OUTPUT ${_out_src_file}
|
||||
COMMAND ${LEMON_EXECUTABLE} -T${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_opts} ${_in_y_file}
|
||||
DEPENDS ${Name}_input_cpy
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
|
||||
)
|
||||
|
||||
# rename the header
|
||||
add_custom_command(
|
||||
OUTPUT ${_out_hdr_file}
|
||||
COMMAND ${CMAKE_COMMAND} ARGS -E rename ${_basename}.h ${_out_hdr_file}
|
||||
DEPENDS ${_out_src_file}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
# set the return values
|
||||
# TODO: for generated sources even headers should be target dependencies
|
||||
set(LEMON_${Name}_DEFINED TRUE PARENT_SCOPE)
|
||||
set(LEMON_${Name}_OUTPUT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/${_out_hdr_file}" PARENT_SCOPE)
|
||||
set(LEMON_${Name}_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
|
||||
set(LEMON_${Name}_OUTPUTS "${_out_src_file}" PARENT_SCOPE)
|
||||
|
||||
# TODO - remove once perplex goes away...
|
||||
add_custom_target(${Name} DEPENDS ${_out_hdr_file})
|
||||
|
||||
# make sure we clean up generated output and copied input
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${_out_src_file}")
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}")
|
||||
|
||||
endfunction(LEMON_TARGET)
|
||||
endif(NOT COMMAND LEMON_TARGET)
|
||||
|
||||
endif(LEMON_EXECUTABLE)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LEMON DEFAULT_MSG LEMON_EXECUTABLE LEMON_TEMPLATE)
|
||||
mark_as_advanced(LEMON_TEMPLATE)
|
||||
find_package_handle_standard_args(LEMON REQUIRED_VARS LEMON_EXECUTABLE LEMON_TEMPLATE)
|
||||
|
||||
#============================================================
|
||||
# FindLEMON.cmake ends here
|
||||
|
||||
+194
-5
@@ -10,23 +10,23 @@
|
||||
#
|
||||
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
|
||||
#
|
||||
# Copyright (c) 2010-2012 United States Government as represented by
|
||||
# Copyright (c) 2010-2016 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2006 Tristan Carel
|
||||
# All rights reserved.
|
||||
#
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
#
|
||||
# * The names of the authors may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
@@ -68,6 +68,195 @@ include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PERPLEX DEFAULT_MSG PERPLEX_EXECUTABLE PERPLEX_TEMPLATE)
|
||||
mark_as_advanced(PERPLEX_TEMPLATE)
|
||||
|
||||
# Defines two macros - PERPLEX_TARGET, which takes perplex inputs and
|
||||
# runs both perplex and re2c to generate C source code/headers, and
|
||||
# ADD_PERPLEX_LEMON_DEPENDENCY which is used to set up dependencies between
|
||||
# scanner and parser targets when necessary.
|
||||
#
|
||||
# #====================================================================
|
||||
# Example:
|
||||
#
|
||||
# find_package(LEMON)
|
||||
# find_package(RE2C)
|
||||
# find_package(PERPLEX)
|
||||
#
|
||||
# LEMON_TARGET(MyParser parser.y "${CMAKE_CURRENT_BINARY_DIR}/parser.cpp")
|
||||
# PERPLEX_TARGET(MyScanner scanner.re "${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp" "${CMAKE_CURRENT_BINARY_DIR}/scanner_header.hpp")
|
||||
# ADD_PERPLEX_LEMON_DEPENDENCY(MyScanner MyParser)
|
||||
#
|
||||
# include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
# add_executable(Foo
|
||||
# Foo.cc
|
||||
# ${LEMON_MyParser_OUTPUTS}
|
||||
# ${PERPLEX_MyScanner_OUTPUTS}
|
||||
# )
|
||||
# ====================================================================
|
||||
#
|
||||
#=============================================================================
|
||||
#
|
||||
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
|
||||
#
|
||||
# Copyright (c) 2010-2016 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2006 Tristan Carel
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * The names of the authors may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
#============================================================
|
||||
# PERPLEX_TARGET (public macro)
|
||||
#============================================================
|
||||
|
||||
include(CMakeParseArguments)
|
||||
|
||||
if(NOT COMMAND PERPLEX_TARGET)
|
||||
macro(PERPLEX_TARGET Name Input)
|
||||
get_filename_component(IN_FILE_WE ${Input} NAME_WE)
|
||||
set(PVAR_PREFIX ${Name}_${IN_FILE_WE})
|
||||
|
||||
if(${ARGC} GREATER 3)
|
||||
CMAKE_PARSE_ARGUMENTS(${PVAR_PREFIX} "" "TEMPLATE;OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR" "" ${ARGN})
|
||||
endif(${ARGC} GREATER 3)
|
||||
|
||||
# Need a working directory
|
||||
if("${${PVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
|
||||
set(${PVAR_PREFIX}_WORKING_DIR "${CMAKE_CURRENT_BINARY_DIR}/${PVAR_PREFIX}")
|
||||
endif("${${PVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
|
||||
file(MAKE_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR})
|
||||
|
||||
# Set up intermediate and final output names
|
||||
|
||||
# Output source file
|
||||
if ("${${PVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "")
|
||||
set(${PVAR_PREFIX}_OUT_SRC_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE_WE}.c)
|
||||
else ("${${PVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "")
|
||||
get_filename_component(specified_out_dir ${${PVAR_PREFIX}_OUT_SRC_FILE} PATH)
|
||||
if(NOT "${specified_out_dir}" STREQUAL "")
|
||||
message(FATAL_ERROR "\nFull path specified for OUT_SRC_FILE - should be filename only.\n")
|
||||
endif(NOT "${specified_out_dir}" STREQUAL "")
|
||||
set(${PVAR_PREFIX}_OUT_SRC_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${${PVAR_PREFIX}_OUT_SRC_FILE})
|
||||
endif ("${${PVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "")
|
||||
|
||||
# Output header file
|
||||
if ("${${PVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "")
|
||||
set(${PVAR_PREFIX}_OUT_HDR_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE_WE}.h)
|
||||
else ("${${PVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "")
|
||||
get_filename_component(specified_out_dir ${${PVAR_PREFIX}_OUT_HDR_FILE} PATH)
|
||||
if(NOT "${specified_out_dir}" STREQUAL "")
|
||||
message(FATAL_ERROR "\nFull path specified for OUT_HDR_FILE - should be filename only.\n")
|
||||
endif(NOT "${specified_out_dir}" STREQUAL "")
|
||||
set(${PVAR_PREFIX}_OUT_HDR_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${${PVAR_PREFIX}_OUT_HDR_FILE})
|
||||
endif ("${${PVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "")
|
||||
|
||||
# input file
|
||||
get_filename_component(in_full ${Input} ABSOLUTE)
|
||||
if("${in_full}" STREQUAL "${Input}")
|
||||
set(perplex_in_file ${Input})
|
||||
else("${in_full}" STREQUAL "${Input}")
|
||||
set(perplex_in_file "${CMAKE_CURRENT_SOURCE_DIR}/${Input}")
|
||||
endif("${in_full}" STREQUAL "${Input}")
|
||||
|
||||
# Intermediate file
|
||||
set(re2c_src "${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE_WE}.re")
|
||||
|
||||
# Make sure we have a template
|
||||
if ("${${PVAR_PREFIX}_TEMPLATE}" STREQUAL "")
|
||||
if(PERPLEX_TEMPLATE)
|
||||
set(${PVAR_PREFIX}_TEMPLATE ${PERPLEX_TEMPLATE})
|
||||
else(PERPLEX_TEMPLATE)
|
||||
message(FATAL_ERROR "\nNo Perplex template file specified - please specify the file using the PERPLEX_TEMPLATE variable:\ncmake .. -DPERPLEX_TEMPLATE=/path/to/template_file.c\n")
|
||||
endif(PERPLEX_TEMPLATE)
|
||||
endif ("${${PVAR_PREFIX}_TEMPLATE}" STREQUAL "")
|
||||
|
||||
get_filename_component(IN_FILE ${Input} NAME)
|
||||
add_custom_command(
|
||||
OUTPUT ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${perplex_in_file} ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
|
||||
COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i ${${PVAR_PREFIX}_OUT_HDR_FILE} -t ${${PVAR_PREFIX}_TEMPLATE} ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
|
||||
DEPENDS ${Input} ${${PVAR_PREFIX}_TEMPLATE} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
|
||||
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
|
||||
COMMENT "[PERPLEX][${Name}] Generating re2c input with ${PERPLEX_EXECUTABLE}"
|
||||
)
|
||||
|
||||
if(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
add_custom_command(
|
||||
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
|
||||
COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o ${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
|
||||
DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
|
||||
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
|
||||
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
|
||||
)
|
||||
else(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
add_custom_command(
|
||||
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
|
||||
COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o ${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
|
||||
DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
|
||||
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
|
||||
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
|
||||
)
|
||||
endif(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
|
||||
set(PERPLEX_${Name}_DEFINED TRUE)
|
||||
set(PERPLEX_${Name}_SRC ${${PVAR_PREFIX}_OUT_SRC_FILE})
|
||||
set(PERPLEX_${Name}_HDR ${${PVAR_PREFIX}_OUT_HDR_FILE})
|
||||
set(PERPLEX_${Name}_INCLUDE_DIR ${${PVAR_PREFIX}_WORKING_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${${PVAR_PREFIX}_WORKING_DIR}/${Name}.sentinel
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${${PVAR_PREFIX}_WORKING_DIR}/${Name}.sentinel
|
||||
DEPENDS ${${PVAR_PREFIX}_OUT_SRC_FILE} ${${PVAR_PREFIX}_OUT_HDR_FILE}
|
||||
)
|
||||
add_custom_target(${Name} DEPENDS ${${PVAR_PREFIX}_WORKING_DIR}/${Name}.sentinel)
|
||||
|
||||
endmacro(PERPLEX_TARGET)
|
||||
endif(NOT COMMAND PERPLEX_TARGET)
|
||||
|
||||
#============================================================
|
||||
# ADD_PERPLEX_LEMON_DEPENDENCY (public macro)
|
||||
#============================================================
|
||||
if(NOT COMMAND ADD_PERPLEX_LEMON_DEPENDENCY)
|
||||
macro(ADD_PERPLEX_LEMON_DEPENDENCY PERPLEXTarget LemonTarget)
|
||||
|
||||
if(NOT PERPLEX_${PERPLEXTarget}_SRC)
|
||||
message(SEND_ERROR "PERPLEX target `${PERPLEXTarget}' does not exists.")
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ${LemonTarget})
|
||||
message(SEND_ERROR "Lemon target `${LemonTarget}' does not exists.")
|
||||
endif()
|
||||
|
||||
set_source_files_properties(${PERPLEX_${PERPLEXTarget}_SRC}
|
||||
PROPERTIES OBJECT_DEPENDS ${LEMON_${LemonTarget}_OUTPUT_HEADER})
|
||||
endmacro(ADD_PERPLEX_LEMON_DEPENDENCY)
|
||||
endif(NOT COMMAND ADD_PERPLEX_LEMON_DEPENDENCY)
|
||||
|
||||
#============================================================
|
||||
# FindPERPLEX.cmake ends here
|
||||
|
||||
|
||||
+165
-1
@@ -6,5 +6,169 @@
|
||||
find_program(RE2C_EXECUTABLE re2c DOC "path to the re2c executable")
|
||||
mark_as_advanced(RE2C_EXECUTABLE)
|
||||
|
||||
if(RE2C_EXECUTABLE)
|
||||
|
||||
execute_process(COMMAND ${RE2C_EXECUTABLE} -v
|
||||
OUTPUT_VARIABLE RE2C_version_output
|
||||
ERROR_VARIABLE RE2C_version_error
|
||||
RESULT_VARIABLE RE2C_version_result
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(NOT ${RE2C_version_result} EQUAL 0)
|
||||
message(SEND_ERROR
|
||||
"Command \"${RE2C_EXECUTABLE} -v\" failed with output:\n${RE2C_version_output}\n${RE2C_version_error}")
|
||||
else()
|
||||
string(REGEX REPLACE "^re2c ([0-9]+[^ ]*)( .*)?$" "\\1" RE2C_VERSION "${RE2C_version_output}")
|
||||
endif()
|
||||
|
||||
# Provide a macro to generate custom build rules:
|
||||
|
||||
# RE2C_TARGET(Name RE2CInput RE2COutput [COMPILE_FLAGS <string>])
|
||||
# which creates a custom command to generate the <RE2COutput> file from
|
||||
# the <RE2CInput> file. If COMPILE_FLAGS option is specified, the next
|
||||
# parameter is added to the re2c command line. Name is an alias used to
|
||||
# get details of this custom command.
|
||||
|
||||
# This module also defines a macro:
|
||||
# ADD_RE2C_LEMON_DEPENDENCY(RE2CTarget LemonTarget)
|
||||
# which adds the required dependency between a scanner and a parser
|
||||
# where <RE2CTarget> and <LemonTarget> are the first parameters of
|
||||
# respectively RE2C_TARGET and LEMON_TARGET macros.
|
||||
#
|
||||
# ====================================================================
|
||||
# Example:
|
||||
#
|
||||
# find_package(LEMON)
|
||||
# find_package(RE2C)
|
||||
#
|
||||
# LEMON_TARGET(MyParser parser.y "${CMAKE_CURRENT_BINARY_DIR}/parser.cpp")
|
||||
# RE2C_TARGET(MyScanner scanner.re "${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp")
|
||||
# ADD_RE2C_LEMON_DEPENDENCY(MyScanner MyParser)
|
||||
#
|
||||
# include_directories("${CMAKE_CURRENT_BINARY_DIR}")
|
||||
# add_executable(Foo
|
||||
# Foo.cc
|
||||
# ${LEMON_MyParser_OUTPUTS}
|
||||
# ${RE2C_MyScanner_OUTPUTS}
|
||||
# )
|
||||
# ====================================================================
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2010-2016 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2006 Tristan Carel
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * The names of the authors may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
#============================================================
|
||||
# RE2C_TARGET (public macro)
|
||||
#============================================================
|
||||
#
|
||||
if(NOT COMMAND RE2C_TARGET)
|
||||
function(RE2C_TARGET Name RE2CInput RE2COutput)
|
||||
set(_re2c_args COMPILE_FLAGS DEFINES_FILE)
|
||||
cmake_parse_arguments(RE2C_TARGET_ARG "" "${_re2c_args}" "" ${ARGN})
|
||||
|
||||
if(NOT "${RE2C_TARGET_ARG_UNPARSED_ARGUMENTS}" STREQUAL "")
|
||||
message(SEND_ERROR "RE2C_TARGET(<Name> <RE2CInput> <RE2COutput>
|
||||
[COMPILE_FLAGS <string>]
|
||||
[DEFINES_FILE <string>])")
|
||||
else()
|
||||
if(NOT "${RE2C_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
|
||||
set(RE2C_EXECUTABLE_opts "${RE2C_TARGET_ARG_COMPILE_FLAGS}")
|
||||
separate_arguments(RE2C_EXECUTABLE_opts)
|
||||
else()
|
||||
set(RE2C_EXECUTABLE_opts "")
|
||||
endif()
|
||||
|
||||
if(NOT "${RE2C_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
|
||||
list(APPEND RE2C_EXECUTABLE_opts -t ${RE2C_TARGET_ARG_DEFINES_FILE})
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${RE2COutput}
|
||||
COMMAND ${RE2C_EXECUTABLE}
|
||||
ARGS ${RE2C_EXECUTABLE_opts} -o ${RE2COutput} ${CMAKE_CURRENT_SOURCE_DIR}/${RE2CInput}
|
||||
DEPENDS ${RE2CInput}
|
||||
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
# TODO: check, for generated sources headers should be included in outputs
|
||||
set(RE2C_${Name}_DEFINED TRUE PARENT_SCOPE)
|
||||
set(RE2C_${Name}_OUTPUTS ${RE2COutput} PARENT_SCOPE)
|
||||
if("${RE2C_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
|
||||
set(RE2C_${Name}_OUTPUT_HEADER "" PARENT_SCOPE)
|
||||
else()
|
||||
set(RE2C_${Name}_OUTPUT_HEADER "${RE2C_TARGET_ARG_DEFINES_FILE}" PARENT_SCOPE)
|
||||
endif()
|
||||
set(RE2C_${Name}_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction(RE2C_TARGET)
|
||||
endif(NOT COMMAND RE2C_TARGET)
|
||||
#============================================================
|
||||
|
||||
#============================================================
|
||||
# ADD_RE2C_LEMON_DEPENDENCY (public macro)
|
||||
#============================================================
|
||||
#
|
||||
if(NOT COMMAND ADD_RE2C_LEMON_DEPENDENCY)
|
||||
function(ADD_RE2C_LEMON_DEPENDENCY RE2CTarget LemonTarget)
|
||||
|
||||
if(NOT RE2C_${RE2CTarget}_OUTPUTS)
|
||||
message(SEND_ERROR "RE2C target `${RE2CTarget}' does not exists.")
|
||||
endif()
|
||||
|
||||
if(NOT LEMON_${LemonTarget}_OUTPUT_HEADER)
|
||||
message(SEND_ERROR "Lemon target `${LemonTarget}' does not exists.")
|
||||
endif()
|
||||
|
||||
set_source_files_properties(${RE2C_${RE2CTarget}_OUTPUTS}
|
||||
PROPERTIES OBJECT_DEPENDS ${LEMON_${LemonTarget}_OUTPUT_HEADER})
|
||||
endfunction(ADD_RE2C_LEMON_DEPENDENCY)
|
||||
endif(NOT COMMAND ADD_RE2C_LEMON_DEPENDENCY)
|
||||
#============================================================
|
||||
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(RE2C DEFAULT_MSG RE2C_EXECUTABLE)
|
||||
find_package_handle_standard_args(RE2C REQUIRED_VARS RE2C_EXECUTABLE
|
||||
VERSION_VAR RE2C_VERSION)
|
||||
|
||||
# RE2C_Util.cmake ends here
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
# Utility routines for managing generated files with CMake
|
||||
|
||||
macro(MD5 filename md5sum)
|
||||
file(READ "${filename}" RAW_MD5_FILE)
|
||||
string(REGEX REPLACE "\r" "" STRIPPED_MD5_FILE "${RAW_MD5_FILE}")
|
||||
string(MD5 ${md5sum} "${STRIPPED_MD5_FILE}")
|
||||
endmacro(MD5)
|
||||
|
||||
macro(FILEVAR filename var)
|
||||
string(REGEX REPLACE "[^a-zA-Z0-9]" "_" ${var} ${filename})
|
||||
endmacro(FILEVAR)
|
||||
|
||||
macro(VERIFY_FILES filelist warn resultvar)
|
||||
set(${resultvar} 1)
|
||||
foreach(fileitem ${filelist})
|
||||
# Deal with absolute and relative paths a bit differently
|
||||
get_filename_component(ITEM_ABS_PATH "${fileitem}" ABSOLUTE)
|
||||
if("${fileitem}" STREQUAL "${ITEM_ABS_PATH}")
|
||||
set(filefullname "${fileitem}")
|
||||
else("${fileitem}" STREQUAL "${ITEM_ABS_PATH}")
|
||||
set(filefullname "${CURRENT_SOURCE_DIR}/${fileitem}")
|
||||
endif("${fileitem}" STREQUAL "${ITEM_ABS_PATH}")
|
||||
get_filename_component(filename "${fileitem}" NAME)
|
||||
# Got filename components sorted - proceed
|
||||
if(NOT EXISTS ${filefullname})
|
||||
message(FATAL_ERROR "Attempted to verify non-existant file ${filefullname}")
|
||||
endif(NOT EXISTS ${filefullname})
|
||||
FILEVAR(${filename} filevar)
|
||||
if(NOT baseline_${filevar}_md5)
|
||||
message(FATAL_ERROR "No baseline MD5 available for ${filename} - baseline_${filevar}_md5 is not defined")
|
||||
endif(NOT baseline_${filevar}_md5)
|
||||
MD5(${filefullname} ${filevar}_md5)
|
||||
if(NOT "${${filevar}_md5}" STREQUAL "${baseline_${filevar}_md5}")
|
||||
if("${warn}" STREQUAL "1")
|
||||
message("\n${filename} differs from baseline: baseline md5 hash is ${baseline_${filevar}_md5} and current hash is ${${filevar}_md5}\n")
|
||||
endif("${warn}" STREQUAL "1")
|
||||
set(${resultvar} 0)
|
||||
else(NOT "${${filevar}_md5}" STREQUAL "${baseline_${filevar}_md5}")
|
||||
if("${warn}" STREQUAL "1")
|
||||
message("${fileitem} OK")
|
||||
endif("${warn}" STREQUAL "1")
|
||||
endif(NOT "${${filevar}_md5}" STREQUAL "${baseline_${filevar}_md5}")
|
||||
endforeach(fileitem ${filelist})
|
||||
endmacro(VERIFY_FILES filelist resultvar)
|
||||
|
||||
macro(WRITE_MD5_SUMS filelist outfile)
|
||||
foreach(fileitem ${filelist})
|
||||
# Deal with absolute and relative paths a bit differently
|
||||
get_filename_component(ITEM_ABS_PATH "${fileitem}" ABSOLUTE)
|
||||
if("${fileitem}" STREQUAL "${ITEM_ABS_PATH}")
|
||||
set(filefullname "${fileitem}")
|
||||
else("${fileitem}" STREQUAL "${ITEM_ABS_PATH}")
|
||||
set(filefullname "${CURRENT_SOURCE_DIR}/${fileitem}")
|
||||
endif("${fileitem}" STREQUAL "${ITEM_ABS_PATH}")
|
||||
get_filename_component(filename "${fileitem}" NAME)
|
||||
# Got filename components sorted - proceed
|
||||
if(NOT EXISTS ${filefullname})
|
||||
message(FATAL_ERROR "Attempted to get MD5 sum of non-existant file ${filefullname}")
|
||||
endif(NOT EXISTS ${filefullname})
|
||||
FILEVAR(${filename} filevar)
|
||||
MD5(${filefullname} ${filevar}_md5)
|
||||
file(APPEND ${outfile} "set(baseline_${filevar}_md5 ${${filevar}_md5})\n")
|
||||
endforeach(fileitem ${filelist})
|
||||
endmacro(WRITE_MD5_SUMS)
|
||||
|
||||
|
||||
macro(GET_GENERATOR_EXEC_VERSIONS)
|
||||
# Read lemon version
|
||||
execute_process(COMMAND ${LEMON_EXECUTABLE} -x OUTPUT_VARIABLE lemon_version)
|
||||
string(REPLACE "Lemon version " "" lemon_version "${lemon_version}")
|
||||
string(STRIP "${lemon_version}" lemon_version)
|
||||
# Read re2c version
|
||||
execute_process(COMMAND ${RE2C_EXECUTABLE} -V OUTPUT_VARIABLE re2c_version)
|
||||
string(STRIP "${re2c_version}" re2c_version)
|
||||
# Read perplex version
|
||||
execute_process(COMMAND ${PERPLEX_EXECUTABLE} -v OUTPUT_VARIABLE perplex_version)
|
||||
string(STRIP "${perplex_version}" perplex_version)
|
||||
endmacro(GET_GENERATOR_EXEC_VERSIONS)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,146 +0,0 @@
|
||||
# Defines the macro
|
||||
# LEMON_TARGET(<Name> <LemonInput> <LemonSource> <LemonHeader>
|
||||
# [<ArgString>])
|
||||
# which will create a custom rule to generate a parser. <LemonInput> is
|
||||
# the path to a lemon file. <LemonSource> is the desired name for the
|
||||
# generated source file. <LemonHeader> is the desired name for the
|
||||
# generated header which contains the token list. Anything in the optional
|
||||
# <ArgString> parameter is appended to the lemon command line.
|
||||
#
|
||||
# ====================================================================
|
||||
# Example:
|
||||
#
|
||||
# find_package(LEMON)
|
||||
# LEMON_TARGET(MyParser parser.y parser.c parser.h)
|
||||
# add_executable(Foo main.cpp ${LEMON_MyParser_OUTPUTS})
|
||||
# ====================================================================
|
||||
#
|
||||
#=============================================================================
|
||||
#
|
||||
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
|
||||
#
|
||||
# Copyright (c) 2010-2012 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2006 Tristan Carel
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * The names of the authors may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
#============================================================
|
||||
# LEMON_TARGET (public macro)
|
||||
#============================================================
|
||||
#
|
||||
macro(LEMON_TARGET Name LemonInput LemonSource LemonHeader)
|
||||
if(NOT ${ARGC} EQUAL 4 AND NOT ${ARGC} EQUAL 5)
|
||||
message(SEND_ERROR "Usage")
|
||||
else()
|
||||
get_filename_component(LemonInputFull ${LemonInput} ABSOLUTE)
|
||||
get_filename_component(LemonSourceFull ${LemonSource} ABSOLUTE)
|
||||
get_filename_component(LemonHeaderFull ${LemonHeader} ABSOLUTE)
|
||||
|
||||
if(NOT ${LemonInput} STREQUAL ${LemonInputFull})
|
||||
set(LEMON_${Name}_INPUT "${CMAKE_CURRENT_BINARY_DIR}/${LemonInput}")
|
||||
else(NOT ${LemonInput} STREQUAL ${LemonInputFull})
|
||||
set(LEMON_${Name}_INPUT "${LemonInput}")
|
||||
endif(NOT ${LemonInput} STREQUAL ${LemonInputFull})
|
||||
|
||||
if(NOT ${LemonSource} STREQUAL ${LemonSourceFull})
|
||||
set(LEMON_${Name}_OUTPUT_SOURCE "${CMAKE_CURRENT_BINARY_DIR}/${LemonSource}")
|
||||
else(NOT ${LemonSource} STREQUAL ${LemonSourceFull})
|
||||
set(LEMON_${Name}_OUTPUT_SOURCE "${LemonSource}")
|
||||
endif(NOT ${LemonSource} STREQUAL ${LemonSourceFull})
|
||||
|
||||
if(NOT ${LemonHeader} STREQUAL ${LemonHeaderFull})
|
||||
set(LEMON_${Name}_OUTPUT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/${LemonHeader}")
|
||||
else(NOT ${LemonHeader} STREQUAL ${LemonHeaderFull})
|
||||
set(LEMON_${Name}_OUTPUT_HEADER "${LemonHeader}")
|
||||
endif(NOT ${LemonHeader} STREQUAL ${LemonHeaderFull})
|
||||
|
||||
set(LEMON_${Name}_EXTRA_ARGS "${ARGV4}")
|
||||
|
||||
# get input name minus path
|
||||
get_filename_component(INPUT_NAME "${LemonInput}" NAME)
|
||||
set(LEMON_BIN_INPUT ${CMAKE_CURRENT_BINARY_DIR}/${INPUT_NAME})
|
||||
|
||||
# names of lemon output files will be based on the name of the input file
|
||||
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1.c" LEMON_GEN_SOURCE "${INPUT_NAME}")
|
||||
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1.h" LEMON_GEN_HEADER "${INPUT_NAME}")
|
||||
string(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1.out" LEMON_GEN_OUT "${INPUT_NAME}")
|
||||
|
||||
# copy input to bin directory and run lemon
|
||||
add_custom_command(
|
||||
OUTPUT ${LEMON_GEN_OUT} ${LEMON_GEN_SOURCE} ${LEMON_GEN_HEADER}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${LemonInput} ${LEMON_BIN_INPUT}
|
||||
COMMAND ${LEMON_EXECUTABLE} ${INPUT_NAME} ${LEMON_${Name}_EXTRA_ARGS}
|
||||
DEPENDS ${LemonInput} ${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_TARGET}
|
||||
COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
|
||||
)
|
||||
|
||||
# rename generated outputs
|
||||
if(NOT "${LemonSource}" STREQUAL "${LEMON_GEN_SOURCE}")
|
||||
add_custom_command(
|
||||
OUTPUT ${LemonSource}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_SOURCE} ${LemonSource}
|
||||
DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_SOURCE}
|
||||
)
|
||||
set(LEMON_${Name}_OUTPUTS ${LemonSource} ${LEMON_${Name}_OUTPUTS})
|
||||
endif(NOT "${LemonSource}" STREQUAL "${LEMON_GEN_SOURCE}")
|
||||
if(NOT "${LemonHeader}" STREQUAL "${LEMON_GEN_HEADER}")
|
||||
add_custom_command(
|
||||
OUTPUT ${LemonHeader}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LEMON_GEN_HEADER} ${LemonHeader}
|
||||
DEPENDS ${LemonInput} ${LEMON_EXECUTABLE_TARGET} ${LEMON_GEN_HEADER}
|
||||
)
|
||||
set(LEMON_${Name}_OUTPUTS ${LemonHeader} ${LEMON_${Name}_OUTPUTS})
|
||||
endif(NOT "${LemonHeader}" STREQUAL "${LEMON_GEN_HEADER}")
|
||||
|
||||
set(LEMON_${Name}_OUTPUTS ${LEMON_GEN_OUT} ${LemonSource} ${LemonHeader})
|
||||
|
||||
# make sure we clean up generated output and copied input
|
||||
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LEMON_${Name}_OUTPUTS}")
|
||||
else("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LEMON_${Name}_OUTPUTS};${LEMON_BIN_INPUT}")
|
||||
endif("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
|
||||
|
||||
# macro ran successfully
|
||||
set(LEMON_${Name}_DEFINED TRUE)
|
||||
endif(NOT ${ARGC} EQUAL 4 AND NOT ${ARGC} EQUAL 5)
|
||||
endmacro(LEMON_TARGET)
|
||||
#
|
||||
#============================================================
|
||||
# LEMON_Utils.cmake ends here
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,134 +0,0 @@
|
||||
# Defines two macros - PERPLEX_TARGET, which takes perplex inputs and
|
||||
# runs both perplex and re2c to generate C source code/headers, and
|
||||
# ADD_PERPLEX_LEMON_DEPENDENCY which is used to set up dependencies between
|
||||
# scanner and parser targets when necessary.
|
||||
#
|
||||
# #====================================================================
|
||||
# Example:
|
||||
#
|
||||
# find_package(LEMON)
|
||||
# find_package(RE2C)
|
||||
# find_package(PERPLEX)
|
||||
#
|
||||
# LEMON_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
|
||||
# PERPLEX_TARGET(MyScanner scanner.re ${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp ${CMAKE_CURRENT_BINARY_DIR}/scanner_header.hpp)
|
||||
# ADD_PERPLEX_LEMON_DEPENDENCY(MyScanner MyParser)
|
||||
#
|
||||
# include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
# add_executable(Foo
|
||||
# Foo.cc
|
||||
# ${LEMON_MyParser_OUTPUTS}
|
||||
# ${PERPLEX_MyScanner_OUTPUTS}
|
||||
# )
|
||||
# ====================================================================
|
||||
#
|
||||
#=============================================================================
|
||||
#
|
||||
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
|
||||
#
|
||||
# Copyright (c) 2010-2012 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
# Copyright 2009 Kitware, Inc.
|
||||
# Copyright 2006 Tristan Carel
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * The names of the authors may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
#============================================================
|
||||
# PERPLEX_TARGET (public macro)
|
||||
#============================================================
|
||||
macro(PERPLEX_TARGET Name Input OutputSrc OutputHeader)
|
||||
if(${ARGC} GREATER 4)
|
||||
set(Template ${ARGV4})
|
||||
else(${ARGC} GREATER 4)
|
||||
if(PERPLEX_TEMPLATE)
|
||||
set(Template ${PERPLEX_TEMPLATE})
|
||||
else(PERPLEX_TEMPLATE)
|
||||
message(FATAL_ERROR "\nNo Perplex template file specifed - please specify the file using the PERPLEX_TEMPLATE variable:\ncmake .. -DPERPLEX_TEMPLATE=/path/to/template_file.c\n")
|
||||
endif(PERPLEX_TEMPLATE)
|
||||
endif(${ARGC} GREATER 4)
|
||||
|
||||
get_filename_component(OutputName ${OutputSrc} NAME)
|
||||
set(re2c_src "${CMAKE_CURRENT_BINARY_DIR}/${OutputName}.re")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${re2c_src} ${OutputHeader}
|
||||
COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i ${OutputHeader} -t ${Template} ${Input}
|
||||
DEPENDS ${Input} ${Template} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "[PERPLEX][${Name}] Generating re2c input with ${PERPLEX_EXECUTABLE}"
|
||||
)
|
||||
if(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
add_custom_command(
|
||||
OUTPUT ${OutputSrc}
|
||||
COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o ${OutputSrc} ${re2c_src}
|
||||
DEPENDS ${Input} ${re2c_src} ${OutputHeader} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
|
||||
)
|
||||
else(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
add_custom_command(
|
||||
OUTPUT ${OutputSrc}
|
||||
COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o ${OutputSrc} ${re2c_src}
|
||||
DEPENDS ${Input} ${re2c_src} ${OutputHeader} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
|
||||
)
|
||||
endif(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
set(PERPLEX_${Name}_DEFINED TRUE)
|
||||
set(PERPLEX_${Name}_OUTPUTS ${OutputSrc})
|
||||
set(PERPLEX_${Name}_INPUT ${Input})
|
||||
endmacro(PERPLEX_TARGET)
|
||||
|
||||
#============================================================
|
||||
# ADD_PERPLEX_LEMON_DEPENDENCY (public macro)
|
||||
#============================================================
|
||||
macro(ADD_PERPLEX_LEMON_DEPENDENCY PERPLEXTarget LemonTarget)
|
||||
|
||||
if(NOT PERPLEX_${PERPLEXTarget}_OUTPUTS)
|
||||
message(SEND_ERROR "PERPLEX target `${PERPLEXTarget}' does not exists.")
|
||||
endif()
|
||||
|
||||
if(NOT LEMON_${LemonTarget}_OUTPUT_HEADER)
|
||||
message(SEND_ERROR "Lemon target `${LemonTarget}' does not exists.")
|
||||
endif()
|
||||
|
||||
set_source_files_properties(${PERPLEX_${PERPLEXTarget}_OUTPUTS}
|
||||
PROPERTIES OBJECT_DEPENDS ${LEMON_${LemonTarget}_OUTPUT_HEADER})
|
||||
endmacro(ADD_PERPLEX_LEMON_DEPENDENCY)
|
||||
|
||||
#============================================================
|
||||
# PERPLEX_Utils.cmake ends here
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -0,0 +1,164 @@
|
||||
# Copyright (c) 2010-2020 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following
|
||||
# disclaimer in the documentation and/or other materials provided
|
||||
# with the distribution.
|
||||
#
|
||||
# 3. The name of the author may not be used to endorse or promote
|
||||
# products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Define relative install locations. Don't set these if they have already
|
||||
# been set by some other means (like a higher level CMakeLists.txt file
|
||||
# including this one).
|
||||
|
||||
# The location in which to install BRL-CAD executables.
|
||||
if(NOT BIN_DIR)
|
||||
set(BIN_DIR bin)
|
||||
endif(NOT BIN_DIR)
|
||||
|
||||
# Define a relative path that will "reset" a path back to
|
||||
# the point before BIN_DIR was appended. This is primarily
|
||||
# useful when working with generator expressions
|
||||
unset(RBIN_DIR CACHE)
|
||||
set(LBIN_DIR "${BIN_DIR}")
|
||||
while (NOT "${LBIN_DIR}" STREQUAL "")
|
||||
get_filename_component(LBDIR "${LBIN_DIR}" DIRECTORY)
|
||||
set(LBIN_DIR "${LBDIR}")
|
||||
if ("${RBIN_DIR}" STREQUAL "")
|
||||
set(RBIN_DIR "..")
|
||||
else ("${RBIN_DIR}" STREQUAL "")
|
||||
set(RBIN_DIR "../${RBIN_DIR}")
|
||||
endif ("${RBIN_DIR}" STREQUAL "")
|
||||
endwhile (NOT "${LBIN_DIR}" STREQUAL "")
|
||||
|
||||
# The location in which to install BRL-CAD libraries.
|
||||
if(NOT LIB_DIR)
|
||||
set(LIB_DIR lib)
|
||||
endif(NOT LIB_DIR)
|
||||
if(NOT LIBEXEC_DIR)
|
||||
set(LIBEXEC_DIR libexec)
|
||||
endif(NOT LIBEXEC_DIR)
|
||||
|
||||
# The location in which to install BRL-CAD header files.
|
||||
if(NOT INCLUDE_DIR)
|
||||
set(INCLUDE_DIR include)
|
||||
endif(NOT INCLUDE_DIR)
|
||||
|
||||
# The location in which to install BRL-CAD data files
|
||||
if(NOT DATA_DIR)
|
||||
set(DATA_DIR share)
|
||||
endif(NOT DATA_DIR)
|
||||
|
||||
# The location in which to install BRL-CAD documentation files
|
||||
if(NOT DOC_DIR)
|
||||
set(DOC_DIR ${DATA_DIR}/doc)
|
||||
endif(NOT DOC_DIR)
|
||||
|
||||
# The location in which to install BRL-CAD Manual pages
|
||||
if(NOT MAN_DIR)
|
||||
set(MAN_DIR ${DATA_DIR}/man)
|
||||
endif(NOT MAN_DIR)
|
||||
|
||||
# Make sure no absolute paths have been supplied to these variables
|
||||
set(INSTALL_DIRS BIN INCLUDE LIB LIBEXEC DATA MAN DOC)
|
||||
foreach(instdir ${INSTALL_DIRS})
|
||||
get_filename_component(instdir_full ${${instdir}_DIR} ABSOLUTE)
|
||||
if("${${instdir}_DIR}" STREQUAL "${instdir_full}")
|
||||
message(FATAL_ERROR "Error - absolute path supplied for ${instdir}_DIR. This path must be relative - e.g. \"bin\" instead of \"/usr/bin\"")
|
||||
set(HAVE_INSTALL_DIR_FULL_PATH 1)
|
||||
endif("${${instdir}_DIR}" STREQUAL "${instdir_full}")
|
||||
endforeach(instdir ${INSTALL_DIRS})
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# Output directories - this is where built library and executable
|
||||
# files will be placed after building but prior to install. The
|
||||
# necessary variables change between single and multi configuration
|
||||
# build systems, so it is necessary to handle both cases on a
|
||||
# conditional basis.
|
||||
|
||||
if(NOT CMAKE_CONFIGURATION_TYPES)
|
||||
# If we're not doing multi-configuration, just set the three main
|
||||
# variables to the correct values.
|
||||
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${${PROJECT_NAME}_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output directory for building all libraries.")
|
||||
endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${${PROJECT_NAME}_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output directory for building all archives.")
|
||||
endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${${PROJECT_NAME}_BINARY_DIR}/${BIN_DIR} CACHE INTERNAL "Single output directory for building all executables.")
|
||||
endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
else(NOT CMAKE_CONFIGURATION_TYPES)
|
||||
# Multi-configuration is more difficult. Not only do we need to
|
||||
# properly set the output directories, but we also need to
|
||||
# identify the "toplevel" directory for each configuration so
|
||||
# we can place files, documentation, etc. in the correct
|
||||
# relative positions. Because files may be placed by CMake
|
||||
# without a build target to put them in their proper relative build
|
||||
# directory position using these paths, we must fully qualify them
|
||||
# without using CMAKE_CFG_INTDIR.
|
||||
#
|
||||
# We define directories that may not be quite "standard"
|
||||
# for a particular build tool - for example, native VS2010 projects use
|
||||
# another directory to denote CPU type being compiled for - but CMake only
|
||||
# supports multi-configuration setups having multiple configurations,
|
||||
# not multiple compilers.
|
||||
#
|
||||
# One additional wrinkle we must watch for here is the case where
|
||||
# a multi-configuration setup uses "." for its internal directory -
|
||||
# if that's the case, we need to just set the various config output
|
||||
# directories to the same value.
|
||||
set(CFG_ROOT ${${PROJECT_NAME}_BINARY_DIR})
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
|
||||
set(CFG_ROOT ${${PROJECT_NAME}_BINARY_DIR}/${CFG_TYPE})
|
||||
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
|
||||
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
|
||||
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
|
||||
set("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} libraries.")
|
||||
endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
|
||||
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
|
||||
set("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} archives.")
|
||||
endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
|
||||
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
|
||||
set("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${BIN_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} executables.")
|
||||
endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
|
||||
if(NOT DEFINED CMAKE_BINARY_DIR_${CFG_TYPE_UPPER})
|
||||
set("CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.")
|
||||
endif(NOT DEFINED CMAKE_BINARY_DIR_${CFG_TYPE_UPPER})
|
||||
if(NOT DEFINED ${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER})
|
||||
set("${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.")
|
||||
endif(NOT DEFINED ${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER})
|
||||
endforeach()
|
||||
endif(NOT CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -0,0 +1,136 @@
|
||||
# macros to be used in the CMakeLists generated by the schema scanner
|
||||
|
||||
# uses SC_GENERATE_CXX_ONESHOT - if true, files will only be generated once. this is useful when debugging and modifying code, not otherwise. TODO: print a warning when set
|
||||
if(NOT DEFINED SC_GENERATE_CXX_ONESHOT)
|
||||
set(SC_GENERATE_CXX_ONESHOT FALSE)
|
||||
endif(NOT DEFINED SC_GENERATE_CXX_ONESHOT)
|
||||
|
||||
# find all part 21 files in schema dir, add a test for each one
|
||||
macro(P21_TESTS sfile)
|
||||
get_filename_component(SCHEMA_DIR ${sfile} PATH)
|
||||
file(GLOB_RECURSE P21_FILES ${SCHEMA_DIR}/*.stp ${SCHEMA_DIR}/*.step ${SCHEMA_DIR}/*.p21 ${SCHEMA_DIR}/*.ifc)
|
||||
foreach(TEST_FILE ${P21_FILES})
|
||||
get_filename_component(FNAME ${TEST_FILE} NAME_WE)
|
||||
add_test(NAME read_write_cpp_${PROJECT_NAME}_${FNAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND p21read_${PROJECT_NAME} ${TEST_FILE})
|
||||
set_tests_properties(read_write_cpp_${PROJECT_NAME}_${FNAME} PROPERTIES DEPENDS build_cpp_${PROJECT_NAME} LABELS cpp_schema_rw)
|
||||
if(NOT WIN32)
|
||||
add_test(NAME read_lazy_cpp_${PROJECT_NAME}_${FNAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND lazy_${PROJECT_NAME} ${TEST_FILE})
|
||||
set_tests_properties(read_lazy_cpp_${PROJECT_NAME}_${FNAME} PROPERTIES DEPENDS build_lazy_cpp_${PROJECT_NAME} LABELS cpp_schema_rw)
|
||||
endif(NOT WIN32)
|
||||
endforeach()
|
||||
endmacro(P21_TESTS sfile)
|
||||
|
||||
# create p21read_sdai_*, lazy_sdai_*, any exes listed in SC_SDAI_ADDITIONAL_EXES_SRCS
|
||||
macro(SCHEMA_EXES)
|
||||
RELATIVE_PATH_TO_TOPLEVEL(${CMAKE_CURRENT_SOURCE_DIR} RELATIVE_PATH_COMPONENT)
|
||||
SC_ADDEXEC(p21read_${PROJECT_NAME} SOURCES "${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc" LINK_LIBRARIES ${PROJECT_NAME} stepdai stepcore stepeditor steputils base TESTABLE)
|
||||
if(NOT WIN32)
|
||||
SC_ADDEXEC(lazy_${PROJECT_NAME} SOURCES "${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc" LINK_LIBRARIES ${PROJECT_NAME} steplazyfile stepdai stepcore stepeditor steputils base TESTABLE)
|
||||
endif(NOT WIN32)
|
||||
|
||||
#add user-defined executables
|
||||
foreach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
|
||||
get_filename_component(name ${src} NAME_WE)
|
||||
get_filename_component(path ${src} ABSOLUTE)
|
||||
SC_ADDEXEC(${name}_${PROJECT_NAME} SOURCES ${src} LINK_LIBRARIES ${PROJECT_NAME} stepdai stepcore stepeditor steputils base TESTABLE)
|
||||
#set_target_properties(${name}_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${${PROJECT_NAME}_COMPILE_FLAGS} -I${path}")
|
||||
endforeach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
|
||||
ENDMACRO(SCHEMA_EXES)
|
||||
|
||||
|
||||
# label the tests and set dependencies
|
||||
macro(SCHEMA_TESTS)
|
||||
add_test(NAME generate_cpp_${PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} --build .
|
||||
--target generate_cpp_${PROJECT_NAME}
|
||||
--config $<CONFIGURATION>)
|
||||
set_tests_properties(generate_cpp_${PROJECT_NAME} PROPERTIES LABELS cpp_schema_gen)
|
||||
add_test(NAME build_cpp_${PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} --build .
|
||||
--target p21read_${PROJECT_NAME}
|
||||
--config $<CONFIGURATION>)
|
||||
set_tests_properties(build_cpp_${PROJECT_NAME} PROPERTIES DEPENDS generate_cpp_${PROJECT_NAME} LABELS cpp_schema_build)
|
||||
if(NOT WIN32)
|
||||
add_test(NAME build_lazy_cpp_${PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} --build .
|
||||
--target lazy_${PROJECT_NAME}
|
||||
--config $<CONFIGURATION>)
|
||||
set_tests_properties(build_lazy_cpp_${PROJECT_NAME} PROPERTIES DEPENDS build_cpp_${PROJECT_NAME} LABELS cpp_schema_build)
|
||||
endif(NOT WIN32)
|
||||
endmacro(SCHEMA_TESTS)
|
||||
|
||||
# SCHEMA_TARGETS macro -
|
||||
# expFile: path to express file
|
||||
# schemaName: name of the schema
|
||||
# sourceFiles: list of .cc and .h files
|
||||
#
|
||||
# create targets for the schema(s) in expFile
|
||||
# targets include gen_cxx_*, sdai_cxx_*, p21read_*, lazyp21_*, ...
|
||||
macro(SCHEMA_TARGETS expFile schemaName sourceFiles)
|
||||
# schema scanner comes up with a short schema name for PROJECT() (which sets ${PROJECT_NAME})
|
||||
message(STATUS "Will generate ${${PROJECT_NAME}_file_count} C++ files for ${PROJECT_NAME}.")
|
||||
|
||||
add_custom_target(generate_cpp_${PROJECT_NAME} DEPENDS exp2cxx ${expFile} ${sourceFiles} SOURCES ${sourceFiles})
|
||||
# this calls a cmake script because it doesn't seem to be possible
|
||||
# to divert stdout, stderr in cmake except via execute_process
|
||||
add_custom_command(OUTPUT ${sourceFiles}
|
||||
COMMAND ${CMAKE_COMMAND} -DEXE=\"$<TARGET_FILE:exp2cxx>\" -DEXP=\"${expFile}\"
|
||||
-DONESHOT=\"${SC_GENERATE_CXX_ONESHOT}\" -DSDIR=\"${CMAKE_CURRENT_LIST_DIR}\"
|
||||
-P ${SC_CMAKE_DIR}/SC_Run_exp2cxx.cmake
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
|
||||
COMMENT "[exp2cxx] Generating ${${PROJECT_NAME}_file_count} C++ files for ${PROJECT_NAME}."
|
||||
)
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR} ${SC_SOURCE_DIR}/src/cldai ${SC_SOURCE_DIR}/src/cleditor
|
||||
${SC_SOURCE_DIR}/src/clutils ${SC_SOURCE_DIR}/src/clstepcore ${SC_SOURCE_DIR}/src/base
|
||||
${SC_SOURCE_DIR}/src/base/judy/src
|
||||
)
|
||||
# if testing is enabled, "TESTABLE" sets property EXCLUDE_FROM_ALL and prevents installation
|
||||
if(BUILD_SHARED_LIBS)
|
||||
SC_ADDLIB(${PROJECT_NAME} SHARED SOURCES ${sourceFiles} LINK_LIBRARIES stepdai stepcore stepeditor steputils base TESTABLE)
|
||||
add_dependencies(${PROJECT_NAME} generate_cpp_${PROJECT_NAME})
|
||||
if(WIN32)
|
||||
target_compile_definitions("${PROJECT_NAME}" PRIVATE SC_SCHEMA_DLL_EXPORTS)
|
||||
if(MSVC)
|
||||
target_compile_options("${PROJECT_NAME}" PRIVATE "/bigobj")
|
||||
endif()
|
||||
endif()
|
||||
# TODO - ideally we would avoid generating code that triggers this warning, but figuring out
|
||||
# how to do so is a non-trivial exercise. In the meantime, suppress the (very verbose) warnings
|
||||
# we get due to this issue so it doesn't mask other problems.
|
||||
if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
|
||||
target_compile_options("${PROJECT_NAME}" PRIVATE "-Wno-ignored-qualifiers")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if($CACHE{SC_BUILD_STATIC_LIBS})
|
||||
SC_ADDLIB(${PROJECT_NAME}-static STATIC SOURCES ${sourceFiles} LINK_LIBRARIES stepdai-static stepcore-static stepeditor-static steputils-static base-static TESTABLE)
|
||||
add_dependencies(${PROJECT_NAME}-static generate_cpp_${PROJECT_NAME})
|
||||
target_compile_defines("${PROJECT_NAME}-static" PRIVATE SC_STATIC)
|
||||
if(MSVC)
|
||||
target_compile_options("${PROJECT_NAME}-static" PRIVATE "/bigobj")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
SCHEMA_EXES()
|
||||
SCHEMA_TESTS()
|
||||
P21_TESTS(${expFile})
|
||||
# TODO add test to verify that schema scanner output matches fedex_plus output
|
||||
|
||||
endmacro(SCHEMA_TARGETS expFile schemaName sourceFiles)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
# create sc_cf.h
|
||||
|
||||
include(CheckLibraryExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CheckSymbolExists)
|
||||
include(CheckTypeSize)
|
||||
include(CMakePushCheckState)
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckCXXSourceRuns)
|
||||
|
||||
CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
|
||||
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
|
||||
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
|
||||
CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
|
||||
CHECK_INCLUDE_FILE(sysent.h HAVE_SYSENT_H)
|
||||
CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
|
||||
CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
|
||||
CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
|
||||
CHECK_INCLUDE_FILE(process.h HAVE_PROCESS_H)
|
||||
CHECK_INCLUDE_FILE(io.h HAVE_IO_H)
|
||||
|
||||
# ensure macro functions are captured
|
||||
CHECK_SYMBOL_EXISTS(abs "stdlib.h" HAVE_ABS)
|
||||
CHECK_SYMBOL_EXISTS(memcpy "string.h" HAVE_MEMCPY)
|
||||
CHECK_SYMBOL_EXISTS(memmove "string.h" HAVE_MEMMOVE)
|
||||
CHECK_SYMBOL_EXISTS(getopt "getopt.h" HAVE_GETOPT)
|
||||
CHECK_SYMBOL_EXISTS(snprintf "stdio.h" HAVE_SNPRINTF)
|
||||
CHECK_SYMBOL_EXISTS(vsnprintf "stdio.h" HAVE_VSNPRINTF)
|
||||
|
||||
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
|
||||
|
||||
if(SC_ENABLE_CXX11)
|
||||
set( TEST_STD_THREAD "
|
||||
#include <iostream>
|
||||
#include <thread>
|
||||
void do_work() {std::cout << \"thread\" << std::endl;}
|
||||
int main() {std::thread t(do_work);t.join();}
|
||||
" )
|
||||
cmake_push_check_state()
|
||||
if( UNIX )
|
||||
set( CMAKE_REQUIRED_FLAGS "-pthread -std=c++11" )
|
||||
else( UNIX )
|
||||
# vars probably need set for embarcadero, etc
|
||||
endif( UNIX )
|
||||
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_THREAD}" HAVE_STD_THREAD ) #quotes are *required*!
|
||||
cmake_pop_check_state()
|
||||
|
||||
set( TEST_STD_CHRONO "
|
||||
#include <iostream>
|
||||
#include <chrono>
|
||||
int main() {
|
||||
std::chrono::seconds sec(1);
|
||||
std::cout << \"1s is \"<< std::chrono::duration_cast<std::chrono::milliseconds>(sec).count() << \" ms\" << std::endl;
|
||||
}
|
||||
" )
|
||||
cmake_push_check_state()
|
||||
if( UNIX )
|
||||
set( CMAKE_REQUIRED_FLAGS "-std=c++11" )
|
||||
else( UNIX )
|
||||
# vars probably need set for embarcadero, etc
|
||||
endif( UNIX )
|
||||
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_CHRONO}" HAVE_STD_CHRONO ) #quotes are *required*!
|
||||
cmake_pop_check_state()
|
||||
|
||||
set( TEST_NULLPTR "
|
||||
#include <cstddef>
|
||||
std::nullptr_t f() {return nullptr;}
|
||||
int main() {return !(f() == f());}
|
||||
" )
|
||||
cmake_push_check_state()
|
||||
if( UNIX )
|
||||
set( CMAKE_REQUIRED_FLAGS "-std=c++11" )
|
||||
else( UNIX )
|
||||
# vars probably need set for embarcadero, etc
|
||||
endif( UNIX )
|
||||
CHECK_CXX_SOURCE_RUNS( "${TEST_NULLPTR}" HAVE_NULLPTR ) #quotes are *required*!
|
||||
cmake_pop_check_state()
|
||||
endif(SC_ENABLE_CXX11)
|
||||
|
||||
# Now that all the tests are done, configure the sc_cf.h file:
|
||||
configure_file(${CMAKE_SOURCE_DIR}/include/sc_cf.h.in ${SC_BINARY_DIR}/${INCLUDE_DIR}/sc_cf.h.gen)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SC_BINARY_DIR}/${INCLUDE_DIR}/sc_cf.h.gen ${SC_BINARY_DIR}/${INCLUDE_DIR}/sc_cf.h)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
|
||||
# to "C" so things like date output are as expected
|
||||
set(_orig_lc_all $ENV{LC_ALL})
|
||||
set(_orig_lc_messages $ENV{LC_MESSAGES})
|
||||
set(_orig_lang $ENV{LANG})
|
||||
if(_orig_lc_all)
|
||||
set(ENV{LC_ALL} C)
|
||||
endif(_orig_lc_all)
|
||||
if(_orig_lc_messages)
|
||||
set(ENV{LC_MESSAGES} C)
|
||||
endif(_orig_lc_messages)
|
||||
if(_orig_lang)
|
||||
set(ENV{LANG} C)
|
||||
endif(_orig_lang)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# in its own file so that it can be used by the schema scanner as well
|
||||
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
|
||||
endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
|
||||
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
|
||||
endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
|
||||
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
|
||||
endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
string(TOUPPER "${CFG_TYPE}" CFG_TYPE)
|
||||
if(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
set("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
|
||||
endif(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
if(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
set("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
|
||||
endif(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
if(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
set("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
|
||||
endif(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
|
||||
endforeach()
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
macro(REVERSE_PATH in_path out_path drive_path)
|
||||
set(reversed_path)
|
||||
set(tmp_subpath "${in_path}")
|
||||
while(NOT "${tmp_subpath}" STREQUAL "" AND NOT "${tmp_subpath}" STREQUAL "/")
|
||||
get_filename_component(piece "${tmp_subpath}" NAME)
|
||||
get_filename_component(tmp_subpath "${tmp_subpath}" PATH)
|
||||
if(piece)
|
||||
set(reversed_path "${reversed_path}/${piece}")
|
||||
else(piece)
|
||||
set(${drive_path} ${tmp_subpath})
|
||||
set(tmp_subpath)
|
||||
endif(piece)
|
||||
endwhile(NOT "${tmp_subpath}" STREQUAL "" AND NOT "${tmp_subpath}" STREQUAL "/")
|
||||
set("${out_path}" "${reversed_path}")
|
||||
endmacro(REVERSE_PATH)
|
||||
|
||||
macro(GET_COMMON_ROOT_PATH dir1 dir2 common_subpath)
|
||||
get_filename_component(testpath "${dir1}" REALPATH)
|
||||
set(dir1_rev)
|
||||
set(dir2_rev)
|
||||
REVERSE_PATH("${dir1}" dir1_rev drive_name_1)
|
||||
REVERSE_PATH("${dir2}" dir2_rev drive_name_2)
|
||||
if("${drive_name_1}" STREQUAL "${drive_name_2}")
|
||||
set(component_same 1)
|
||||
set(${common_subpath})
|
||||
while(component_same)
|
||||
get_filename_component(piece1 "${dir1_rev}" NAME)
|
||||
get_filename_component(dir1_rev "${dir1_rev}" PATH)
|
||||
get_filename_component(piece2 "${dir2_rev}" NAME)
|
||||
get_filename_component(dir2_rev "${dir2_rev}" PATH)
|
||||
if("${piece1}" STREQUAL "${piece2}")
|
||||
set(${common_subpath} "${${common_subpath}}/${piece1}")
|
||||
else("${piece1}" STREQUAL "${piece2}")
|
||||
set(component_same 0)
|
||||
endif("${piece1}" STREQUAL "${piece2}")
|
||||
endwhile(component_same)
|
||||
if(drive_name_1)
|
||||
set(${common_subpath} "${drive_name_1}${${common_subpath}}")
|
||||
string(REPLACE "//" "/" ${common_subpath} "${${common_subpath}}")
|
||||
endif(drive_name_1)
|
||||
endif("${drive_name_1}" STREQUAL "${drive_name_2}")
|
||||
endmacro(GET_COMMON_ROOT_PATH)
|
||||
|
||||
|
||||
macro(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path)
|
||||
set(common_root_path)
|
||||
GET_COMMON_ROOT_PATH("${SC_SOURCE_DIR}" "${current_dir}" common_root_path)
|
||||
string(REPLACE "${common_root_path}" "" subpath "${current_dir}")
|
||||
string(REPLACE "${common_root_path}" "" needed_src_path "${SC_SOURCE_DIR}")
|
||||
string(REGEX REPLACE "^/" "" subpath "${subpath}")
|
||||
string(REGEX REPLACE "^/" "" needed_src_path "${needed_src_path}")
|
||||
string(LENGTH "${subpath}" PATH_LENGTH)
|
||||
if(PATH_LENGTH GREATER 0)
|
||||
set(${rel_path} "..")
|
||||
get_filename_component(subpath "${subpath}" PATH)
|
||||
string(LENGTH "${subpath}" PATH_LENGTH)
|
||||
while(PATH_LENGTH GREATER 0)
|
||||
set(${rel_path} "${${rel_path}}/..")
|
||||
get_filename_component(subpath "${subpath}" PATH)
|
||||
string(LENGTH "${subpath}" PATH_LENGTH)
|
||||
endwhile(PATH_LENGTH GREATER 0)
|
||||
endif(PATH_LENGTH GREATER 0)
|
||||
set(${rel_path} "${${rel_path}}/${needed_src_path}")
|
||||
string(REPLACE "//" "/" ${rel_path} "${${rel_path}}")
|
||||
endmacro(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path)
|
||||
|
||||
macro(LOCATE_SCHEMA SCHEMA_FILE _res_var)
|
||||
if(EXISTS "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}") #is it a path relative to build dir?
|
||||
set(${_res_var} "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}")
|
||||
elseif(EXISTS "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}") # path relative to STEPcode/data?
|
||||
set(${_res_var} "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}")
|
||||
elseif(EXISTS ${SCHEMA_FILE}) # already an absolute path
|
||||
set(${_res_var} ${SCHEMA_FILE})
|
||||
else()
|
||||
message(FATAL_ERROR "Cannot find ${CMAKE_BINARY_DIR}/${SCHEMA_FILE} or ${SC_SOURCE_DIR}/data/${SCHEMA_FILE}/*.exp or ${SCHEMA_FILE}")
|
||||
endif()
|
||||
|
||||
if(IS_DIRECTORY ${${_res_var}}) #if it is a dir, look for one .exp file inside
|
||||
file(GLOB ${_res_var} ${${_res_var}}/*.exp)
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS ${${_res_var}})
|
||||
message(FATAL_ERROR "Expected one express file. Found '${${_res_var}}' instead.")
|
||||
endif()
|
||||
endmacro(LOCATE_SCHEMA SCHEMA_FILE _res_var)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# The Express parser uses the tools RE2C and Lemon to generate code
|
||||
# from higher level inputs. Depending on available tools and options, the
|
||||
# SC build can either re-generate code as part of the build, or use cached
|
||||
# files that are ready for compilation.
|
||||
#
|
||||
# SC_GENERATE_LEXER_PARSER is the "high level" control a user sets to determine
|
||||
# how the SC build will interact (or not) with these tools. AUTO (the
|
||||
# default) means it will search for the necessary tools, and use them only if
|
||||
# everything is found. If not, it will fall back to the cached versions. If
|
||||
# this option is set to ON and the necessary tools are not found, the
|
||||
# configure step will fail. If it is set to OFF, SC will not even try to use
|
||||
# the generators and will instead use the cached sources.
|
||||
|
||||
set(_valid_gen_states AUTO ON OFF)
|
||||
set(_verbosity "QUIET")
|
||||
|
||||
set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE
|
||||
STRING "Use Perplex, RE2C and Lemon to generate C source code.")
|
||||
set_property(CACHE SC_GENERATE_LEXER_PARSER PROPERTY STRINGS ${_valid_gen_states})
|
||||
string(TOUPPER "${SC_GENERATE_LEXER_PARSER}" SC_GENERATE_LEXER_PARSER)
|
||||
|
||||
if(NOT "${SC_GENERATE_LEXER_PARSER}" IN_LIST _valid_gen_states)
|
||||
message(WARNING "Unknown value ${SC_GENERATE_LEXER_PARSER} supplied for SC_GENERATE_LEXER_PARSER - defaulting to AUTO")
|
||||
message(WARNING "Valid options are AUTO, ON and OFF")
|
||||
set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE STRING "Use Perplex, RE2C and Lemon to generate C source code.")
|
||||
endif()
|
||||
|
||||
# If the generators have not been turned off, we need to check for them
|
||||
if(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
# NOTE: lemon doesn't have a stable versioning system (it's always 1)
|
||||
find_package(LEMON ${_verbosity})
|
||||
find_package(RE2C ${_verbosity})
|
||||
find_package(PERPLEX ${_verbosity})
|
||||
|
||||
if(LEMON_FOUND AND RE2C_FOUND)
|
||||
set(SC_GENERATE_LP_SOURCES 1)
|
||||
message(".. Found re2c, and lemon - can regenerate lexer/parser if necessary")
|
||||
else()
|
||||
if("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
|
||||
message(FATAL_ERROR "\nSC_GENERATE_LEXER_PARSER set to ON, but couldn't find lemon/re2c")
|
||||
else("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
|
||||
set(SC_GENERATE_LP_SOURCES 0)
|
||||
endif("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
|
||||
endif()
|
||||
else(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
set(SC_GENERATE_LP_SOURCES 0)
|
||||
endif(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
# if oneshot is true, don't run exp2cxx if source files exist. if schema.cc exists, assume others do
|
||||
if(ONESHOT AND EXISTS "${SDIR}/schema.cc")
|
||||
message("WARNING: SC_GENERATE_CXX_ONESHOT is enabled. If generated code has been modified, it will NOT be rewritten!")
|
||||
message("This is ONLY for debugging STEPcode internals!")
|
||||
else()
|
||||
execute_process(COMMAND ${EXE} ${EXP}
|
||||
WORKING_DIRECTORY ${SDIR}
|
||||
RESULT_VARIABLE _res
|
||||
OUTPUT_FILE exp2cxx_stdout.txt
|
||||
ERROR_FILE exp2cxx_stderr.txt
|
||||
)
|
||||
if(NOT "${_res}" STREQUAL "0")
|
||||
message(FATAL_ERROR "${EXE} reported an error for ${EXP}.\nsee exp2cxx_stdout.txt and exp2cxx_stderr.txt in ${SDIR} for details.")
|
||||
endif(NOT "${_res}" STREQUAL "0")
|
||||
# TODO count number of lines in stdout/stderr and tell user?
|
||||
endif()
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
macro(SC_ADDEXEC execname)
|
||||
set(_addexec_opts NO_INSTALL TESTABLE)
|
||||
set(_addexec_multikw SOURCES LINK_LIBRARIES)
|
||||
string(TOUPPER "SC_ADDEXEC_${execname}_ARG" _arg_prefix)
|
||||
cmake_parse_arguments(${_arg_prefix} "${_addexec_opts}" "" "${_addexec_multikw}" ${ARGN})
|
||||
|
||||
if(NOT DEFINED "${_arg_prefix}_SOURCES")
|
||||
message(SEND_ERROR "SC_ADDEXEC usage error!")
|
||||
endif()
|
||||
|
||||
add_executable(${execname} ${${_arg_prefix}_SOURCES})
|
||||
|
||||
if(DEFINED "${_arg_prefix}_LINK_LIBRARIES")
|
||||
foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
|
||||
if($CACHE{SC_STATIC_UTILS})
|
||||
if(NOT $<TARGET_PROPERTY:${_lib},TYPE> STREQUAL "STATIC_LIBRARY")
|
||||
message(SEND_ERROR "SC_ADDEXEC usage error - expected STATIC LINK_LIBRARIES targets (${_lib})")
|
||||
endif()
|
||||
endif()
|
||||
target_link_libraries(${execname} ${_lib})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
|
||||
install(TARGETS ${execname}
|
||||
RUNTIME DESTINATION ${BIN_DIR}
|
||||
LIBRARY DESTINATION ${LIB_DIR}
|
||||
ARCHIVE DESTINATION ${LIB_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(NOT SC_ENABLE_TESTING AND ${_arg_prefix}_TESTABLE)
|
||||
set_target_properties(${execname} PROPERTIES EXCLUDE_FROM_ALL ON)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(SC_ADDLIB _addlib_target)
|
||||
set(_addlib_opts SHARED STATIC NO_INSTALL TESTABLE)
|
||||
set(_addlib_multikw SOURCES LINK_LIBRARIES)
|
||||
string(TOUPPER "SC_ADDLIB_${libname}_ARG" _arg_prefix)
|
||||
cmake_parse_arguments(${_arg_prefix} "${_addlib_opts}" "" "${_addlib_multikw}" ${ARGN})
|
||||
|
||||
if(NOT DEFINED ${_arg_prefix}_SOURCES)
|
||||
message(SEND_ERROR "SC_ADDLIB usage error!")
|
||||
endif()
|
||||
|
||||
if(${_arg_prefix}_SHARED)
|
||||
add_library(${_addlib_target} SHARED ${${_arg_prefix}_SOURCES})
|
||||
if(OPENBSD)
|
||||
set_target_properties(${_addlib_target} PROPERTIES VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
|
||||
else(OPENBSD)
|
||||
set_target_properties(${_addlib_target} PROPERTIES VERSION ${SC_VERSION} SOVERSION ${SC_VERSION_MAJOR})
|
||||
endif(OPENBSD)
|
||||
if(APPLE)
|
||||
set_target_properties(${_addlib_target} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
|
||||
endif(APPLE)
|
||||
elseif(${_arg_prefix}_STATIC)
|
||||
add_library(${_addlib_target} STATIC ${${_arg_prefix}_SOURCES})
|
||||
target_compile_definitions(${_addlib_target} PRIVATE SC_STATIC)
|
||||
else()
|
||||
message(SEND_ERROR "SC_ADDLIB usage error!")
|
||||
endif()
|
||||
|
||||
if(DEFINED ${_arg_prefix}_LINK_LIBRARIES)
|
||||
foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
|
||||
if(${_arg_prefix}_STATIC AND TARGET ${_lib})
|
||||
get_property(_libtype TARGET ${_lib} PROPERTY TYPE)
|
||||
if(NOT ${_libtype} STREQUAL "STATIC_LIBRARY")
|
||||
message(SEND_ERROR "SC_ADDLIB usage error - expected (static) LINK_LIBRARIES targets (${_lib})")
|
||||
endif()
|
||||
endif()
|
||||
target_link_libraries(${_addlib_target} ${_lib})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
|
||||
install(TARGETS ${_addlib_target}
|
||||
RUNTIME DESTINATION ${BIN_DIR}
|
||||
LIBRARY DESTINATION ${LIB_DIR}
|
||||
ARCHIVE DESTINATION ${LIB_DIR}
|
||||
)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -1,133 +0,0 @@
|
||||
|
||||
# set compile definitions for dll exports on windows
|
||||
MACRO(DEFINE_DLL_EXPORTS libname)
|
||||
IF( MSVC OR BORLAND )
|
||||
if( ${libname} MATCHES "sdai_.*" )
|
||||
set( export "SC_SCHEMA_DLL_EXPORTS" )
|
||||
else()
|
||||
STRING(REGEX REPLACE "lib" "" shortname "${libname}")
|
||||
STRING(REGEX REPLACE "step" "" LOWERCORE "${shortname}")
|
||||
STRING(TOUPPER ${LOWERCORE} UPPER_CORE)
|
||||
set( export "SC_${UPPER_CORE}_DLL_EXPORTS" )
|
||||
endif()
|
||||
get_target_property(defs ${libname} COMPILE_DEFINITIONS )
|
||||
if( defs ) #if no properties, ${defs} will be defs-NOTFOUND which CMake interprets as false
|
||||
set( defs "${defs};${export}")
|
||||
else( defs )
|
||||
set( defs "${export}")
|
||||
endif( defs )
|
||||
set_target_properties(${libname} PROPERTIES COMPILE_DEFINITIONS "${defs}" )
|
||||
ENDIF( MSVC OR BORLAND )
|
||||
ENDMACRO(DEFINE_DLL_EXPORTS libname)
|
||||
|
||||
# set compile definitions for dll imports on windows
|
||||
MACRO( DEFINE_DLL_IMPORTS tgt libs )
|
||||
IF( MSVC OR BORLAND )
|
||||
get_target_property(defs ${tgt} COMPILE_DEFINITIONS )
|
||||
if( NOT defs ) #if no properties, ${defs} will be defs-NOTFOUND which CMake interprets as false
|
||||
set( defs "")
|
||||
endif( NOT defs )
|
||||
foreach( lib ${libs} )
|
||||
STRING(REGEX REPLACE "lib" "" shortname "${lib}")
|
||||
STRING(REGEX REPLACE "step" "" LOWERCORE "${shortname}")
|
||||
STRING(TOUPPER ${LOWERCORE} UPPER_CORE)
|
||||
list( APPEND defs "SC_${UPPER_CORE}_DLL_IMPORTS" )
|
||||
endforeach( lib ${libs} )
|
||||
if( DEFINED defs )
|
||||
if( defs )
|
||||
set_target_properties( ${tgt} PROPERTIES COMPILE_DEFINITIONS "${defs}" )
|
||||
endif( defs )
|
||||
endif( DEFINED defs )
|
||||
ENDIF( MSVC OR BORLAND )
|
||||
ENDMACRO( DEFINE_DLL_IMPORTS tgt libs )
|
||||
|
||||
#EXCLUDE_OR_INSTALL(target destination ARGV3)
|
||||
# installs ${target} in ${destination} unless testing is enabled AND ${arg_3} == "TESTABLE",
|
||||
# in which case the EXCLUDE_FROM_ALL property is set for testing.
|
||||
# EXCLUDE_FROM_ALL cannot be set on targets that are to be installed,
|
||||
# so either test the target or install it - but not both
|
||||
MACRO(EXCLUDE_OR_INSTALL target dest arg_3 )
|
||||
if( NOT ( ( SC_ENABLE_TESTING ) AND ( "${arg_3}" STREQUAL "TESTABLE" ) ) )
|
||||
INSTALL(TARGETS ${target} DESTINATION ${dest})
|
||||
else( NOT ( ( SC_ENABLE_TESTING ) AND ( "${arg_3}" STREQUAL "TESTABLE" ) ) )
|
||||
set_target_properties( ${target} PROPERTIES EXCLUDE_FROM_ALL ON )
|
||||
endif( NOT ( ( SC_ENABLE_TESTING ) AND ( "${arg_3}" STREQUAL "TESTABLE" ) ) )
|
||||
ENDMACRO(EXCLUDE_OR_INSTALL target dest arg_3 )
|
||||
|
||||
#SC_ADDEXEC( execname "source files" "linked libs" ["TESTABLE"] ["MSVC flag" ...])
|
||||
# optional 4th argument of "TESTABLE", passed to EXCLUDE_OR_INSTALL macro
|
||||
# optional args can also be used by MSVC-specific code, but it looks like these two uses
|
||||
# will not conflict because the MSVC args must contain "STRICT"
|
||||
MACRO(SC_ADDEXEC execname srcslist libslist)
|
||||
add_executable(${execname} ${srcslist})
|
||||
target_link_libraries(${execname} ${libslist})
|
||||
DEFINE_DLL_IMPORTS(${execname} "${libslist}") #add import definitions for all libs that the executable is linked to
|
||||
EXCLUDE_OR_INSTALL( ${execname} "bin" "${ARGV3}" )
|
||||
# Enable extra compiler flags if local executables and/or global options dictate
|
||||
SET(LOCAL_COMPILE_FLAGS "")
|
||||
FOREACH(extraarg ${ARGN})
|
||||
IF(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
|
||||
SET(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
|
||||
ENDIF(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
|
||||
ENDFOREACH(extraarg ${ARGN})
|
||||
IF(LOCAL_COMPILE_FLAGS)
|
||||
SET_TARGET_PROPERTIES(${execname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
|
||||
ENDIF(LOCAL_COMPILE_FLAGS)
|
||||
ENDMACRO(SC_ADDEXEC execname srcslist libslist)
|
||||
|
||||
#SC_ADDLIB( libname "source files" "linked libs" ["TESTABLE"] ["MSVC flag" ...])
|
||||
# optional 4th argument of "TESTABLE", passed to EXCLUDE_OR_INSTALL macro
|
||||
# optional args can also be used by MSVC-specific code, but it looks like these two uses
|
||||
# will not conflict because the MSVC args must contain "STRICT"
|
||||
MACRO(SC_ADDLIB libname srcslist libslist)
|
||||
STRING(REGEX REPLACE "-framework;" "-framework " libslist "${libslist1}")
|
||||
IF(SC_BUILD_SHARED_LIBS)
|
||||
add_library(${libname} SHARED ${srcslist})
|
||||
DEFINE_DLL_EXPORTS(${libname})
|
||||
if(NOT "${libs}" MATCHES "NONE")
|
||||
target_link_libraries(${libname} ${libslist})
|
||||
DEFINE_DLL_IMPORTS(${libname} "${libslist}" )
|
||||
endif(NOT "${libs}" MATCHES "NONE")
|
||||
SET_TARGET_PROPERTIES(${libname} PROPERTIES VERSION ${SC_ABI_VERSION} SOVERSION ${SC_ABI_SOVERSION} )
|
||||
EXCLUDE_OR_INSTALL( ${libname} "lib" "${ARGV3}" )
|
||||
if(APPLE)
|
||||
set_target_properties(${libname} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
|
||||
endif(APPLE)
|
||||
ENDIF(SC_BUILD_SHARED_LIBS)
|
||||
IF(SC_BUILD_STATIC_LIBS AND NOT MSVC)
|
||||
add_library(${libname}-static STATIC ${srcslist})
|
||||
DEFINE_DLL_EXPORTS(${libname}-static)
|
||||
if(NOT ${libs} MATCHES "NONE")
|
||||
target_link_libraries(${libname}-static "${libslist}")
|
||||
DEFINE_DLL_IMPORTS(${libname}-static ${libslist} )
|
||||
endif(NOT ${libs} MATCHES "NONE")
|
||||
IF(NOT WIN32)
|
||||
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES OUTPUT_NAME "${libname}")
|
||||
ENDIF(NOT WIN32)
|
||||
IF(WIN32)
|
||||
# We need the lib prefix on win32, so add it even if our add_library
|
||||
# wrapper function has removed it due to the target name - see
|
||||
# http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
|
||||
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES PREFIX "lib")
|
||||
ENDIF(WIN32)
|
||||
EXCLUDE_OR_INSTALL( ${libname}-static "lib" "${ARGV3}" )
|
||||
if(APPLE)
|
||||
set_target_properties(${libname}-static PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
|
||||
endif(APPLE)
|
||||
ENDIF(SC_BUILD_STATIC_LIBS AND NOT MSVC)
|
||||
# Enable extra compiler flags if local libraries and/or global options dictate
|
||||
SET(LOCAL_COMPILE_FLAGS "")
|
||||
FOREACH(extraarg ${ARGN})
|
||||
IF(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
|
||||
SET(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
|
||||
ENDIF(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
|
||||
ENDFOREACH(extraarg ${ARGN})
|
||||
IF(LOCAL_COMPILE_FLAGS)
|
||||
IF(BUILD_SHARED_LIBS)
|
||||
SET_TARGET_PROPERTIES(${libname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
|
||||
ENDIF(BUILD_SHARED_LIBS)
|
||||
IF(BUILD_STATIC_LIBS AND NOT MSVC)
|
||||
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
|
||||
ENDIF(BUILD_STATIC_LIBS AND NOT MSVC)
|
||||
ENDIF(LOCAL_COMPILE_FLAGS)
|
||||
ENDMACRO(SC_ADDLIB libname srcslist libslist)
|
||||
@@ -1,100 +0,0 @@
|
||||
# Inherit the parent CMake setting
|
||||
set(CURRENT_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||
set(LEMON_EXECUTABLE "@LEMON_EXECUTABLE@")
|
||||
set(RE2C_EXECUTABLE "@RE2C_EXECUTABLE@")
|
||||
set(PERPLEX_EXECUTABLE "@PERPLEX_EXECUTABLE@")
|
||||
set(SYNC_SCRIPT "@SYNC_SCRIPT@")
|
||||
set(SYNC_TARGET_NAME "@SYNC_TARGET_NAME@")
|
||||
set(DEBUGGING_GENERATED_SOURCES "@DEBUGGING_GENERATED_SOURCES@")
|
||||
|
||||
if(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
# Include the file the provides the baseline against which
|
||||
# current files will be compared
|
||||
include("@BASELINE_INFORMATION_FILE@")
|
||||
|
||||
# Define a variety of convenience routines
|
||||
include("@PROJECT_CMAKE_DIR@/Generated_Source_Utils.cmake")
|
||||
|
||||
# The following need to be checked:
|
||||
#
|
||||
# 1. baseline input MD5 hashes against the current input
|
||||
# hashes. If the cached sources were generated using
|
||||
# inputs other than the current inputs, note they are
|
||||
# out of sync but don't stop. Templates used by perplex
|
||||
# and lemon are part of this group.
|
||||
#
|
||||
# 2. baseline cached source MD5 hashes against current
|
||||
# cached source MD5 hashes. Making sure no changes
|
||||
# have been made to the generated sources. If the
|
||||
# cached sources need to be updated (see #1, for example)
|
||||
# their MD5 hashes need to be updated at the same time.
|
||||
#
|
||||
# 3. MD5 hashes of output generated by the tools against
|
||||
# the MD5 hashes of the equalivent cached sources, if
|
||||
# a) the tool versions are the same b) the input MD5
|
||||
# hash comparisions were the same and c) the baseline
|
||||
# test from #2 passed. This is done to detect platform
|
||||
# differences in output sources, but is only valid if
|
||||
# the input files are in their "pristine" state and the
|
||||
# toolchain is equalivent to that used for the baseline.
|
||||
|
||||
# Individually verify all of the files in question.
|
||||
set(input_files "@INPUT_FILELIST@")
|
||||
VERIFY_FILES("${input_files}" 0 input_unchanged)
|
||||
set(template_files "@TEMPLATE_FILELIST@")
|
||||
VERIFY_FILES("${template_files}" 1 templates_unchanged)
|
||||
set(cached_files "@CACHED_FILELIST@")
|
||||
VERIFY_FILES("${cached_files}" 1 cached_unchanged)
|
||||
if(NOT cached_unchanged)
|
||||
message(FATAL_ERROR "Cached generated sources do not match the MD5 hashes present in @BASELINE_INFORMATION_FILE@ - if updating cached sources, remember that the build enforces the requirement that associated MD5 hashes in @BASELINE_INFORMATION_FILE@ are current as well. Cached generated sources should not be directly edited.")
|
||||
endif(NOT cached_unchanged)
|
||||
|
||||
GET_GENERATOR_EXEC_VERSIONS()
|
||||
|
||||
if("${lemon_version}" VERSION_EQUAL "${baseline_lemon_version}" AND "${perplex_version}" VERSION_EQUAL "${baseline_perplex_version}" AND "${re2c_version}" VERSION_EQUAL "${baseline_re2c_version}")
|
||||
set(tool_versions_equal 1)
|
||||
else()
|
||||
set(tool_versions_equal 0)
|
||||
endif()
|
||||
|
||||
if(NOT input_unchanged)
|
||||
if(templates_unchanged AND tool_versions_equal)
|
||||
message("Input files changed - syncing cached outputs")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -P ${SYNC_SCRIPT} OUTPUT_VARIABLE output)
|
||||
else(templates_unchanged AND tool_versions_equal)
|
||||
if(NOT templates_unchanged AND NOT tool_versions_equal)
|
||||
message("Input files have been updated, but templates and current tool versions do not match those previously used to generate cached sources. Automatic syncing will not proceed.")
|
||||
message("To force syncing, use the build target ${SYNC_TARGET_NAME}")
|
||||
else(NOT templates_unchanged AND NOT tool_versions_equal)
|
||||
if(NOT templates_unchanged)
|
||||
message("Input files have been updated, but templates do not match those previously used to generate cached sources. Automatic syncing will not proceed.")
|
||||
message("To force syncing, use the build target ${SYNC_TARGET_NAME}")
|
||||
endif(NOT templates_unchanged)
|
||||
if(NOT tool_versions_equal)
|
||||
message("Input files have been updated, but tool versions do not match those previously used to generate cached sources. Automatic syncing will not proceed.")
|
||||
message("To force syncing, use the build target ${SYNC_TARGET_NAME}")
|
||||
endif(NOT tool_versions_equal)
|
||||
endif(NOT templates_unchanged AND NOT tool_versions_equal)
|
||||
endif(templates_unchanged AND tool_versions_equal)
|
||||
else(NOT input_unchanged)
|
||||
if(templates_unchanged AND cached_unchanged AND tool_versions_equal)
|
||||
# Under these conditions, the uncached generated output should be equal to the cached files.
|
||||
# Check if it is - a difference here may indicate a platform-specific behavior in one of the
|
||||
# generators.
|
||||
set(build_files "@BUILD_OUTPUT_FILELIST@")
|
||||
VERIFY_FILES("${build_files}" 1 platform_unchanged)
|
||||
if(NOT platform_unchanged)
|
||||
message("Note: give these build inputs and tools, source files should be identical to generated files. Differences were still observed - possible indiciation of platform-specific generator behavior.")
|
||||
endif(NOT platform_unchanged)
|
||||
endif(templates_unchanged AND cached_unchanged AND tool_versions_equal)
|
||||
endif(NOT input_unchanged)
|
||||
else(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
message("\nNote: DEBUGGING_GENERATED_SOURCES is enabled - generated outputs will contain configuration-specific debugging information, so syncing cached output files is not possible. To restore normal behavior, disable DEBUGGING_GENERATED_SOURCES.\n")
|
||||
endif(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,58 +0,0 @@
|
||||
#use git for a pretty commit id
|
||||
#uses 'git describe --tags', so tags are required in the repo
|
||||
#create a tag with 'git tag <name>' and 'git push --tags'
|
||||
|
||||
# http://stackoverflow.com/questions/3780667
|
||||
# http://www.cmake.org/pipermail/cmake/2009-February/027014.html
|
||||
|
||||
#sc_version_string.h defines sc_version() which returns a pretty commit description and a build timestamp.
|
||||
|
||||
set(SC_IS_SUBBUILD "@SC_IS_SUBBUILD@")
|
||||
|
||||
set(VERS_FILE ${SOURCE_DIR}/SC_VERSION.txt )
|
||||
if( EXISTS ${SOURCE_DIR}/.git )
|
||||
find_package(Git QUIET)
|
||||
if(GIT_FOUND)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags RESULT_VARIABLE res_var OUTPUT_VARIABLE GIT_COMMIT_ID )
|
||||
if( NOT ${res_var} EQUAL 0 )
|
||||
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
|
||||
if(NOT SC_IS_SUBBUILD)
|
||||
message( WARNING "Git failed (probably no tags in repo). Build will contain revision info from ${VERS_FILE}." )
|
||||
endif(NOT SC_IS_SUBBUILD)
|
||||
endif()
|
||||
else(GIT_FOUND)
|
||||
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
|
||||
if(NOT SC_IS_SUBBUILD)
|
||||
message( WARNING "Git not found. Build will contain revision info from ${VERS_FILE}." )
|
||||
endif(NOT SC_IS_SUBBUILD)
|
||||
endif(GIT_FOUND)
|
||||
else()
|
||||
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
|
||||
if(NOT SC_IS_SUBBUILD)
|
||||
message( WARNING "Git failed ('.git' not found). Build will contain revision info from ${VERS_FILE}." )
|
||||
endif(NOT SC_IS_SUBBUILD)
|
||||
endif()
|
||||
|
||||
string( REPLACE "\n" "" GIT_COMMIT_ID ${GIT_COMMIT_ID} )
|
||||
|
||||
set( vstring "//sc_version_string.h - written by cmake. Changes will be lost!\n"
|
||||
"#ifndef SC_VERSION_STRING\n"
|
||||
"#define SC_VERSION_STRING\n\n"
|
||||
"/*\n** Returns a string like \"test-1-g5e1fb47, built at TIME on DATE\", where test is the\n"
|
||||
"** name of the last tagged git revision, 1 is the number of commits since that tag,\n"
|
||||
"** 'g' is unknown, 5e1fb47 is the first 7 chars of the git sha1 commit id, and TIME\n"
|
||||
"** and DATE are substituted by the compiler.\n*/\n\n"
|
||||
"const char* sc_version() {\n"
|
||||
" return \"git commit id ${GIT_COMMIT_ID}, built at \" __TIME__ \" on \" __DATE__ \;\n"
|
||||
"}\n\n"
|
||||
"#endif\n"
|
||||
)
|
||||
|
||||
file(WRITE sc_version_string.h.txt ${vstring} )
|
||||
# copy the file to the final header only if the version changes
|
||||
# reduces needless rebuilds
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||
sc_version_string.h.txt ${BINARY_DIR}/include/sc_version_string.h)
|
||||
if(NOT SC_IS_SUBBUILD)
|
||||
message("-- sc_version_string.h is up-to-date.")
|
||||
endif(NOT SC_IS_SUBBUILD)
|
||||
@@ -0,0 +1,77 @@
|
||||
project(SC_SUBPROJECT_SCHEMA_SCANNER)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
if(NOT ("${CALLED_FROM}" STREQUAL "STEPCODE_CMAKELISTS" AND DEFINED SC_ROOT AND DEFINED SC_BUILDDIR))
|
||||
message(" ${CALLED_FROM} ${SC_ROOT} ${SC_BUILDDIR}")
|
||||
message(FATAL_ERROR "This is not a truly independent project; it should be built during the STEPcode configuration stage.")
|
||||
endif()
|
||||
|
||||
# SC_ROOT: SC root dir
|
||||
# SC_BUILDDIR: SC build dir, so generated headers can be found
|
||||
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
|
||||
# set all target location variables so that MSVC will put the executable the same place as other compilers
|
||||
set(SC_BINARY_DIR ${SC_BUILDDIR})
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../SC_Outdirs.cmake)
|
||||
|
||||
set(schema_scanner_src
|
||||
${SC_ROOT}/src/base/sc_mkdir.c
|
||||
${SC_ROOT}/src/exp2cxx/genCxxFilenames.c
|
||||
${SC_ROOT}/src/exp2cxx/class_strings.c
|
||||
${SC_ROOT}/src/express/generated/expparse.c
|
||||
${SC_ROOT}/src/express/generated/expscan.c
|
||||
${SC_ROOT}/src/express/alg.c
|
||||
${SC_ROOT}/src/express/alloc.c
|
||||
${SC_ROOT}/src/express/caseitem.c
|
||||
${SC_ROOT}/src/express/dict.c
|
||||
${SC_ROOT}/src/express/entity.c
|
||||
${SC_ROOT}/src/express/error.c
|
||||
${SC_ROOT}/src/express/exp_kw.c
|
||||
${SC_ROOT}/src/express/expr.c
|
||||
${SC_ROOT}/src/express/express.c
|
||||
${SC_ROOT}/src/express/factory.c
|
||||
${SC_ROOT}/src/express/hash.c
|
||||
${SC_ROOT}/src/express/lexact.c
|
||||
${SC_ROOT}/src/express/linklist.c
|
||||
${SC_ROOT}/src/express/memory.c
|
||||
${SC_ROOT}/src/express/object.c
|
||||
${SC_ROOT}/src/express/info.c
|
||||
${SC_ROOT}/src/express/resolve.c
|
||||
${SC_ROOT}/src/express/resolve2.c
|
||||
${SC_ROOT}/src/express/schema.c
|
||||
${SC_ROOT}/src/express/scope.c
|
||||
${SC_ROOT}/src/express/stmt.c
|
||||
${SC_ROOT}/src/express/symbol.c
|
||||
${SC_ROOT}/src/express/type.c
|
||||
${SC_ROOT}/src/express/variable.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/schemaScanner.cc
|
||||
)
|
||||
|
||||
include_directories(
|
||||
${SC_ROOT}/include/
|
||||
${SC_ROOT}/src/express/
|
||||
${SC_ROOT}/src/express/generated
|
||||
${SC_ROOT}/src/base
|
||||
${SC_ROOT}/src/exp2cxx
|
||||
${SC_BUILDDIR}/include
|
||||
)
|
||||
|
||||
add_executable(schema_scanner ${schema_scanner_src})
|
||||
|
||||
if(MSVC)
|
||||
# Disable warning for preferred usage of secure functions (example strcpy should be strcpy_s, ...)
|
||||
target_compile_definitions(schema_scanner PUBLIC _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS)
|
||||
else()
|
||||
target_compile_options(schema_scanner PUBLIC -pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(schema_scanner PUBLIC SC_STATIC SCHEMA_SCANNER)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
README for STEPcode schema scanner
|
||||
--------------
|
||||
|
||||
The files in this directory are for a schema scanner executable, built by CMake during the configuration stage.
|
||||
|
||||
This scanner is used to determine the file names that exp2cxx will use. In CMake, all file names must be known before
|
||||
configuration finishes - so it is necessary to parse the schemas early.
|
||||
|
||||
This appears to be a standalone project to CMake, but it is intended to be built only as part of STEPcode. It is configured,
|
||||
built, and executed during the configuration stage of STEPcode.
|
||||
@@ -0,0 +1,336 @@
|
||||
|
||||
/** \file schemaScanner.cc
|
||||
* This file, along with part of libexpress, are compiled (at configure time)
|
||||
* into a static executable. This executable is a schema scanner that is used
|
||||
* by CMake to determine what files exp2cxx will create. Otherwise, we'd need
|
||||
* to use a few huge files - there is no other way to tell CMake what the
|
||||
* generated files will be called.
|
||||
*/
|
||||
|
||||
/* WARNING
|
||||
* If you modify this file, you must re-run cmake. It doesn't seem to be possible
|
||||
* to re-run cmake automatically, as CMake's configure_file() gets confused by
|
||||
* the '${' and '}' in writeLists() below.
|
||||
*/
|
||||
|
||||
extern "C" {
|
||||
# include "expparse.h"
|
||||
# include "expscan.h"
|
||||
# include "express/scope.h"
|
||||
# include "genCxxFilenames.h"
|
||||
# include "sc_mkdir.h"
|
||||
|
||||
# include <string.h>
|
||||
|
||||
# ifdef _WIN32
|
||||
# include <direct.h>
|
||||
# define getcwd _getcwd
|
||||
# else
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
}
|
||||
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
int multiple_inheritance = 0;
|
||||
|
||||
using std::string;
|
||||
using std::stringstream;
|
||||
using std::endl;
|
||||
using std::ofstream;
|
||||
using std::cerr;
|
||||
using std::cout;
|
||||
|
||||
/** \return true for types that exp2cxx won't generate code for */
|
||||
bool notGenerated( const Type t ) {
|
||||
switch( TYPEget_body( t )->type ) {
|
||||
case integer_:
|
||||
case real_:
|
||||
case string_:
|
||||
case binary_:
|
||||
case boolean_:
|
||||
case number_:
|
||||
case logical_:
|
||||
case aggregate_:
|
||||
case bag_:
|
||||
case set_:
|
||||
case list_:
|
||||
case array_:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
/* from addRenameTypedefs() in multpass.c - check for renamed
|
||||
* enums and selects - exp2cxx prints typedefs for them */
|
||||
if( ( TYPEis_enumeration( t ) || TYPEis_select( t ) ) && ( TYPEget_head( t ) ) ) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/** \return a short name for the schema
|
||||
* this name is intended to be unique, but no special care is put into its generation
|
||||
* the official schema name seems most likely to not be unique, but it is generally the longest
|
||||
*
|
||||
* picks the shortest of:
|
||||
* * the name of the dir containing the file (if in sc/data),
|
||||
* * the name of the file containing the schema (minus extension),
|
||||
* * the official name of the schema, passed in arg 'longName'
|
||||
*
|
||||
* TODO: maybe also consider an acronym, such that 'test_array_bounds_expr' becomes 'tabe', 'TABE', 'T_A_B_E', or similar
|
||||
*/
|
||||
string makeShortName( const char * longName ) {
|
||||
//input_filename is path to file. we will extract dir name and file name from it.
|
||||
string dirname = input_filename, filename = input_filename, schname = longName;
|
||||
const char slash = '/';
|
||||
|
||||
//for filename, get rid of dir name(s), if any, as well as the extension
|
||||
size_t sl = filename.rfind( slash );
|
||||
if( sl != string::npos ) {
|
||||
filename.erase( 0, sl + 1 );
|
||||
}
|
||||
size_t dot = filename.rfind( '.' );
|
||||
if( dot != string::npos ) {
|
||||
filename.erase( dot );
|
||||
}
|
||||
|
||||
//for dirname, get rid of the filename and ensure it's in data/
|
||||
sl = dirname.rfind( slash );
|
||||
if( sl != string::npos ) {
|
||||
dirname.erase( sl );
|
||||
}
|
||||
const char * dat = "data";
|
||||
size_t data = dirname.find( dat );
|
||||
if( ( data == string::npos ) || ( dirname[ data + strlen( dat ) ] != slash ) ) {
|
||||
//doesn't contain 'data/'. clear it so it'll be ignored.
|
||||
dirname.clear();
|
||||
} else {
|
||||
//get rid of all but last dir name
|
||||
dirname.erase( 0, dirname.rfind( slash ) + 1 );
|
||||
}
|
||||
|
||||
//use dir name if it's at least 3 chars and shorter than file name
|
||||
//length requirement gets rid of short, undescriptive dir names - including '.' and '..'
|
||||
if( ( dirname.size() > 2 ) && ( dirname.size() < filename.size() ) ) {
|
||||
filename = dirname;
|
||||
}
|
||||
if( strlen( longName ) < filename.size() ) {
|
||||
filename = longName;
|
||||
}
|
||||
filename.insert( 0, "sdai_" );
|
||||
return filename;
|
||||
}
|
||||
|
||||
/** write a CMakeLists.txt file for the schema; print its directory to stdout for CMake's add_subdirectory() command */
|
||||
void writeLists( const char * schemaName, stringstream & eh, stringstream & ei, int ecount,
|
||||
stringstream & th, stringstream & ti, int tcount ) {
|
||||
string shortName = makeShortName( schemaName );
|
||||
if( mkDirIfNone( shortName.c_str() ) < 0 ) {
|
||||
cerr << "Error creating directory " << shortName << " at " << __FILE__ << ":" << __LINE__;
|
||||
perror( 0 );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
size_t nameLen = strlen( schemaName );
|
||||
string schema_upper( nameLen, char() );
|
||||
for( size_t i = 0; i < nameLen; ++i) {
|
||||
schema_upper[i] = toupper(schemaName[i]);
|
||||
}
|
||||
string cmListsPath = shortName;
|
||||
cmListsPath += "/CMakeLists.txt";
|
||||
ofstream cmLists;
|
||||
cmLists.open( cmListsPath.c_str() );
|
||||
if( !cmLists.good() ) {
|
||||
cerr << "error opening file " << cmListsPath << " - exiting." << endl;
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
cmLists << "# ----- GENERATED FILE -----" << endl;
|
||||
cmLists << "# ----- Do not edit! -----" << endl << endl;
|
||||
|
||||
cmLists << "# schema name: " << schemaName << endl;
|
||||
cmLists << "# (short name: " << shortName << ")" << endl;
|
||||
cmLists << "# " << ecount << " entities, " << tcount << " types" << endl << endl;
|
||||
|
||||
cmLists << "# targets, logic, etc are within a set of macros shared by all schemas" << endl;
|
||||
cmLists << "include(${SC_CMAKE_DIR}/SC_CXX_schema_macros.cmake)" << endl;
|
||||
|
||||
// * 2 for headers, + 10 other files
|
||||
cmLists << "set(" << shortName << "_file_count " << ( ( ecount + tcount ) * 2 ) + 10 << ")" << endl << endl;
|
||||
|
||||
|
||||
cmLists << "PROJECT(" << shortName << ")" << endl;
|
||||
cmLists << "# list headers so they can be installed - entity, type, misc" << endl;
|
||||
|
||||
cmLists << "set(" << shortName << "_entity_hdrs" << endl;
|
||||
cmLists << eh.str();
|
||||
cmLists << " )" << endl << endl;
|
||||
|
||||
cmLists << "set(" << shortName << "_type_hdrs" << endl;
|
||||
cmLists << th.str();
|
||||
cmLists << " )" << endl << endl;
|
||||
|
||||
cmLists << "set(" << shortName << "_misc_hdrs" << endl;
|
||||
cmLists << " Sdaiclasses.h schema.h" << endl;
|
||||
cmLists << " Sdai" << schema_upper << "Names.h" << endl;
|
||||
cmLists << " Sdai" << schema_upper << ".h" << endl;
|
||||
cmLists << " )" << endl << endl;
|
||||
|
||||
cmLists << "# install all headers" << endl;
|
||||
cmLists << "set(all_headers ${" << shortName << "_entity_hdrs} ${" << shortName << "_type_hdrs} ${" << shortName << "_misc_hdrs})" << endl;
|
||||
cmLists << "foreach( header_file ${all_headers} )" << endl;
|
||||
cmLists << " set(curr_dir)" << endl;
|
||||
cmLists << " get_filename_component(curr_dir ${header_file} PATH)" << endl;
|
||||
cmLists << " get_filename_component(curr_name ${header_file} NAME)" << endl;
|
||||
cmLists << " if (curr_dir)" << endl;
|
||||
cmLists << " install( FILES ${header_file} DESTINATION \"include/schemas/" << shortName << "/${curr_dir}\" )" << endl;
|
||||
cmLists << " else (curr_dir)" << endl;
|
||||
cmLists << " install( FILES ${header_file} DESTINATION \"include/schemas/" << shortName << "\" )" << endl;
|
||||
cmLists << " endif (curr_dir)" << endl;
|
||||
cmLists << "endforeach()" << endl;
|
||||
|
||||
cmLists << "# implementation files - 3 lists" << endl << endl;
|
||||
|
||||
cmLists << "# unity build: #include small .cc files to reduce the number" << endl;
|
||||
cmLists << "# of translation units that must be compiled" << endl;
|
||||
cmLists << "if(SC_UNITY_BUILD)" << endl << " # turns off include statements within type and entity .cc's - the unity T.U.'s include a unity header" << endl;
|
||||
cmLists << " add_definitions( -DSC_SDAI_UNITY_BUILD)" << endl;
|
||||
cmLists << " set(" << shortName << "_entity_impls Sdai" << schema_upper << "_unity_entities.cc)" << endl;
|
||||
cmLists << " set(" << shortName << "_type_impls Sdai" << schema_upper << "_unity_types.cc)" << endl;
|
||||
cmLists << "else(SC_UNITY_BUILD)" << endl;
|
||||
cmLists << " set(" << shortName << "_entity_impls" << endl;
|
||||
cmLists << ei.str();
|
||||
cmLists << " )" << endl << endl;
|
||||
|
||||
cmLists << " set(" << shortName << "_type_impls" << endl;
|
||||
cmLists << ti.str();
|
||||
cmLists << " )" << endl;
|
||||
cmLists << "endif(SC_UNITY_BUILD)" << endl << endl;
|
||||
|
||||
cmLists << "set( " << shortName << "_misc_impls" << endl;
|
||||
cmLists << " SdaiAll.cc compstructs.cc schema.cc" << endl;
|
||||
cmLists << " Sdai" << schema_upper << ".cc" << endl;
|
||||
cmLists << " Sdai" << schema_upper << ".init.cc )" << endl << endl;
|
||||
|
||||
cmLists << "set(schema_target_files ${" << shortName << "_entity_impls} " << "${" << shortName << "_type_impls} " << "${" << shortName << "_misc_impls})" << endl;
|
||||
cmLists << "SCHEMA_TARGETS(\"" << input_filename << "\" \"" << schemaName << "\"" << endl;
|
||||
cmLists << " \"${schema_target_files}\")" << endl;
|
||||
|
||||
cmLists.close();
|
||||
|
||||
char pwd[BUFSIZ] = {0};
|
||||
if( getcwd( pwd, BUFSIZ ) ) {
|
||||
cout << pwd << "/" << shortName << endl;
|
||||
} else {
|
||||
cerr << "Error encountered by getcwd() for " << shortName << " - exiting. Error was ";
|
||||
perror( 0 );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
void printSchemaFilenames( Schema sch ){
|
||||
const int numColumns = 2;
|
||||
const int colWidth = 75;
|
||||
const char * tab = " ";
|
||||
|
||||
stringstream typeHeaders, typeImpls, entityHeaders, entityImpls;
|
||||
typeHeaders << tab;
|
||||
typeImpls << tab;
|
||||
entityHeaders << tab;
|
||||
entityImpls << tab;
|
||||
|
||||
int ecount = 0, tcount = 0;
|
||||
|
||||
DictionaryEntry de;
|
||||
void *x;
|
||||
filenames_t fn;
|
||||
DICTdo_init( sch->symbol_table, &de );
|
||||
while( 0 != ( x = DICTdo( &de ) ) ) {
|
||||
switch( DICT_type ) {
|
||||
case OBJ_ENTITY:
|
||||
fn = getEntityFilenames( ( Entity ) x );
|
||||
entityHeaders << std::left << std::setw( colWidth ) << fn.header << " ";
|
||||
entityImpls << std::left << std::setw( colWidth ) << fn.impl << " ";
|
||||
++ecount;
|
||||
if( ( ecount % numColumns ) == 0 ) {
|
||||
// columns
|
||||
entityHeaders << endl << tab;
|
||||
entityImpls << endl << tab;
|
||||
}
|
||||
break;
|
||||
case OBJ_TYPE: {
|
||||
Type t = ( Type ) x;
|
||||
if( TYPEis_enumeration( t ) && ( TYPEget_head( t ) ) ) {
|
||||
/* t is a renamed enum type, for which exp2cxx
|
||||
* will print a typedef in an existing file */
|
||||
break;
|
||||
}
|
||||
if( notGenerated( t ) ) {
|
||||
/* skip builtin types */
|
||||
break;
|
||||
}
|
||||
fn = getTypeFilenames( t );
|
||||
typeHeaders << std::left << std::setw( colWidth ) << fn.header << " ";
|
||||
typeImpls << std::left << std::setw( colWidth ) << fn.impl << " ";
|
||||
++tcount;
|
||||
if( ( tcount % numColumns ) == 0 ) {
|
||||
typeHeaders << endl << tab;
|
||||
typeImpls << endl << tab;
|
||||
}
|
||||
break;
|
||||
}
|
||||
/* case OBJ_FUNCTION:
|
||||
* case OBJ_PROCEDURE:
|
||||
* case OBJ_RULE: */
|
||||
default:
|
||||
/* ignore everything else */
|
||||
/* TODO: if DEBUG is defined, print the names of these to stderr */
|
||||
break;
|
||||
}
|
||||
}
|
||||
//write the CMakeLists.txt
|
||||
writeLists( sch->symbol.name, entityHeaders, entityImpls, ecount, typeHeaders, typeImpls, tcount );
|
||||
}
|
||||
|
||||
int main( int argc, char ** argv ) {
|
||||
/* TODO init globals! */
|
||||
|
||||
Schema schema;
|
||||
DictionaryEntry de;
|
||||
/* copied from fedex.c */
|
||||
Express model;
|
||||
if( ( argc != 2 ) || ( strlen( argv[1] ) < 1 ) ) {
|
||||
fprintf( stderr, "\nUsage: %s file.exp\nOutput: a CMakeLists.txt to build the schema,", argv[0] );
|
||||
fprintf( stderr, " containing file names for entities, types, etc\n" );
|
||||
fprintf( stderr, "also prints (to stdout) the absolute path to the directory CMakeLists.txt was created in\n" );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
EXPRESSprogram_name = argv[0];
|
||||
input_filename = argv[1];
|
||||
|
||||
EXPRESSinitialize();
|
||||
|
||||
model = EXPRESScreate();
|
||||
EXPRESSparse( model, ( FILE * )0, input_filename );
|
||||
if( ERRORoccurred ) {
|
||||
EXPRESSdestroy( model );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
EXPRESSresolve( model );
|
||||
if( ERRORoccurred ) {
|
||||
int result = EXPRESS_fail( model );
|
||||
EXPRESScleanup();
|
||||
EXPRESSdestroy( model );
|
||||
exit( result );
|
||||
}
|
||||
|
||||
DICTdo_type_init( model->symbol_table, &de, OBJ_SCHEMA );
|
||||
while( 0 != ( schema = ( Schema )DICTdo( &de ) ) ) {
|
||||
printSchemaFilenames( schema );
|
||||
}
|
||||
|
||||
EXPRESSdestroy( model );
|
||||
exit( EXIT_SUCCESS );
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
# this file should be included from data/CMakeLists.txt
|
||||
#
|
||||
# at configure time, this builds a small program
|
||||
# which will parse express schemas to determine
|
||||
# what files exp2cxx will create for that schema.
|
||||
#
|
||||
# The SCHEMA_CMLIST macro is to be used to run this
|
||||
# program. It will set variables for schema name(s),
|
||||
# headers, and implementation files.
|
||||
|
||||
# in a unity build, many small .cc files are #included to create a few large translation units
|
||||
# this makes compilation faster, but sometimes runs into compiler limitations
|
||||
if(NOT DEFINED SC_UNITY_BUILD)
|
||||
message( STATUS "Assuming compiler is capable of unity build. (SC_UNITY_BUILD=TRUE)")
|
||||
set(SC_UNITY_BUILD TRUE)
|
||||
message( STATUS "Override by setting SC_UNITY_BUILD; TRUE will result in faster build times but *huge* translation units and higher memory use in compilation.")
|
||||
else(NOT DEFINED SC_UNITY_BUILD)
|
||||
message( STATUS "Respecting user-defined SC_UNITY_BUILD value of ${SC_UNITY_BUILD}.")
|
||||
endif(NOT DEFINED SC_UNITY_BUILD)
|
||||
|
||||
|
||||
# --- variables ---
|
||||
# SC_ROOT: SC root dir
|
||||
# SC_BUILDDIR: SC build dir, so generated headers can be found
|
||||
# SCANNER_SRC_DIR: dir this file is in
|
||||
# SCANNER_OUT_DIR: location of binary, same dir as SC uses
|
||||
# SCANNER_BUILD_DIR: location scanner is built
|
||||
|
||||
set(SCANNER_SRC_DIR ${SC_CMAKE_DIR}/schema_scanner)
|
||||
set(SCANNER_BUILD_DIR ${SC_BINARY_DIR}/schema_scanner CACHE INTERNAL "location for scanner build, config files (copied schemas)")
|
||||
set(SCANNER_OUT_DIR ${SC_BINARY_DIR}/bin CACHE INTERNAL "location for schema_scanner executable")
|
||||
|
||||
#write a cmake file for the cache. the alternative is a very long
|
||||
# command line - and the command line can't have newlines in it
|
||||
set(initial_scanner_cache ${SCANNER_BUILD_DIR}/initial_scanner_cache.cmake)
|
||||
file(WRITE ${initial_scanner_cache} "
|
||||
set(SC_ROOT \"${SC_SOURCE_DIR}\" CACHE STRING \"root dir\")
|
||||
set(SC_BUILDDIR \"${SC_BINARY_DIR}\" CACHE PATH \"build dir\")
|
||||
set(CALLED_FROM \"STEPCODE_CMAKELISTS\" CACHE STRING \"verification\")
|
||||
set(CMAKE_BUILD_TYPE \"Debug\" CACHE STRING \"build type\")
|
||||
set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\" CACHE STRING \"compiler\")
|
||||
set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\" CACHE STRING \"compiler\")
|
||||
")
|
||||
|
||||
message( STATUS "Compiling schema scanner...")
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${SC_BINARY_DIR}/schemas)
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${SCANNER_BUILD_DIR})
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -C ${initial_scanner_cache} ${SCANNER_SRC_DIR} -G ${CMAKE_GENERATOR}
|
||||
WORKING_DIRECTORY ${SCANNER_BUILD_DIR}
|
||||
TIMEOUT 60
|
||||
OUTPUT_VARIABLE _ss_config_out
|
||||
RESULT_VARIABLE _ss_config_stat
|
||||
ERROR_VARIABLE _ss_config_err
|
||||
)
|
||||
if(NOT ${_ss_config_stat} STREQUAL "0")
|
||||
message(FATAL_ERROR "Scanner config status: ${_ss_config_stat}. stdout:\n${_ss_config_out}\nstderr:\n${_ss_config_err}")
|
||||
endif(NOT ${_ss_config_stat} STREQUAL "0")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} --build ${SCANNER_BUILD_DIR} --config Debug --clean-first
|
||||
WORKING_DIRECTORY ${SCANNER_BUILD_DIR}
|
||||
TIMEOUT 120 # should take far less than 2m
|
||||
OUTPUT_VARIABLE _ss_build_out
|
||||
RESULT_VARIABLE _ss_build_stat
|
||||
ERROR_VARIABLE _ss_build_err
|
||||
)
|
||||
if(NOT ${_ss_build_stat} STREQUAL "0")
|
||||
message(FATAL_ERROR "Scanner build status: ${_ss_build_stat}. stdout:\n${_ss_build_out}\nstderr:\n${_ss_build_err}")
|
||||
endif(NOT ${_ss_build_stat} STREQUAL "0")
|
||||
|
||||
message( STATUS "Schema scanner built. Running it...")
|
||||
|
||||
# not sure if it makes sense to install this or not...
|
||||
if(WIN32)
|
||||
install(PROGRAMS ${SCANNER_OUT_DIR}/schema_scanner.exe DESTINATION ${BIN_DIR})
|
||||
else(WIN32)
|
||||
install(PROGRAMS ${SCANNER_OUT_DIR}/schema_scanner DESTINATION ${BIN_DIR})
|
||||
endif(WIN32)
|
||||
|
||||
# macro SCHEMA_CMLIST
|
||||
# runs the schema scanner on one express file, creating a CMakeLists.txt file for each schema found. Those files are added via add_subdirectory().
|
||||
#
|
||||
# SCHEMA_FILE - path to the schema
|
||||
# TODO should we have a result variable to return schema name(s) found?
|
||||
macro(SCHEMA_CMLIST SCHEMA_FILE)
|
||||
execute_process(COMMAND ${SCANNER_OUT_DIR}/schema_scanner ${SCHEMA_FILE}
|
||||
WORKING_DIRECTORY ${SC_BINARY_DIR}/schemas
|
||||
RESULT_VARIABLE _ss_stat
|
||||
OUTPUT_VARIABLE _ss_out
|
||||
ERROR_VARIABLE _ss_err
|
||||
)
|
||||
if(NOT "${_ss_stat}" STREQUAL "0")
|
||||
#check size of output, put in file if large?
|
||||
message(FATAL_ERROR "Schema scan for '${SCHEMA_FILE}'\nexited with error code '${_ss_stat}'\nstdout:\n${_ss_out}\nstderr:\n${_ss_err}\n")
|
||||
endif(NOT "${_ss_stat}" STREQUAL "0")
|
||||
# scanner output format: each line contains an absolute path. each path is a dir containing a CMakeLists for one schema
|
||||
# there will usually be a single line of output, but it is not illegal for multiple schemas to exist in one .exp file
|
||||
string(STRIP "${_ss_out}" _ss_stripped)
|
||||
string(REGEX REPLACE "\\\n" ";" _list ${_ss_stripped})
|
||||
foreach(_dir ${_list})
|
||||
add_subdirectory(${_dir} ${_dir}) #specify source and binary dirs as the same
|
||||
endforeach(_dir ${_ss_out})
|
||||
# configure_file forces cmake to run again if the schema has been modified
|
||||
#if multiple schemas in one file, _schema is the last one printed.
|
||||
# 2e6ee669 removed _schema, does this still work?
|
||||
configure_file(${SCHEMA_FILE} ${SCANNER_BUILD_DIR}/${_schema})
|
||||
endmacro(SCHEMA_CMLIST SCHEMA_FILE)
|
||||
@@ -1,83 +0,0 @@
|
||||
# Inherit the parent CMake setting
|
||||
set(CURRENT_SOURCE_DIR @CMAKE_CURRENT_SOURCE_DIR@)
|
||||
set(CURRENT_BINARY_DIR @CMAKE_CURRENT_BINARY_DIR@)
|
||||
set(CACHED_FILES_DIR @CACHED_FILES_DIR@)
|
||||
set(LEMON_EXECUTABLE @LEMON_EXECUTABLE@)
|
||||
set(RE2C_EXECUTABLE @RE2C_EXECUTABLE@)
|
||||
set(PERPLEX_EXECUTABLE @PERPLEX_EXECUTABLE@)
|
||||
set(LOCKED_SOURCE_DIR @LOCKED_SOURCE_DIR@)
|
||||
set(DEBUGGING_GENERATED_SOURCES @DEBUGGING_GENERATED_SOURCES@)
|
||||
|
||||
if(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
# Define a variety of convenience routines
|
||||
include(@PROJECT_CMAKE_DIR@/Generated_Source_Utils.cmake)
|
||||
|
||||
# The following steps are executed to sync generated sources:
|
||||
#
|
||||
# 1. Create a new verification_info.cmake file and populate
|
||||
# it with the current versions of perplex, re2c and lemon.
|
||||
# Also add the MD5 sums for current template files.
|
||||
#
|
||||
# 2. For all files that need to be updated in the cache,
|
||||
# calculate new MD5 sums and add them to the new
|
||||
# verification_info.cmake - this is usually the input
|
||||
# files and the generated outputs.
|
||||
#
|
||||
# 3. Overwrite the original cached verification_info.cmake
|
||||
# and generated files with the new ones. If LOCKED_SOURCE_DIR
|
||||
# is ON, this step will not be carried out - instead, an
|
||||
# informational message with manual updating instructions
|
||||
# will be printed.
|
||||
|
||||
set(new_info_file "${CURRENT_BINARY_DIR}/verification_info.cmake.new")
|
||||
|
||||
|
||||
file(WRITE ${new_info_file} "# Autogenerated verification information\n")
|
||||
|
||||
# Handle generator version numbers
|
||||
GET_GENERATOR_EXEC_VERSIONS()
|
||||
file(APPEND ${new_info_file} "set(baseline_lemon_version \"${lemon_version}\")\n")
|
||||
file(APPEND ${new_info_file} "set(baseline_re2c_version \"${re2c_version}\")\n")
|
||||
file(APPEND ${new_info_file} "set(baseline_perplex_version \"${perplex_version}\")\n")
|
||||
|
||||
# Handle template files
|
||||
set(template_files "@TEMPLATE_FILELIST@")
|
||||
WRITE_MD5_SUMS("${template_files}" "${new_info_file}")
|
||||
|
||||
# Handle input files
|
||||
set(input_files "@INPUT_FILELIST@")
|
||||
WRITE_MD5_SUMS("${input_files}" "${new_info_file}")
|
||||
|
||||
# Handle generated files
|
||||
set(output_files "@BUILD_OUTPUT_FILELIST@")
|
||||
WRITE_MD5_SUMS("${output_files}" "${new_info_file}")
|
||||
|
||||
# Copy files into their final locations
|
||||
if(NOT LOCKED_SOURCE_DIR)
|
||||
configure_file(${new_info_file} "${CACHED_FILES_DIR}/verification_info.cmake" COPYONLY)
|
||||
foreach(outf ${output_files})
|
||||
get_filename_component(filecorename ${outf} NAME)
|
||||
message("copying ${outf} to ${CACHED_FILES_DIR}/${filecorename}")
|
||||
configure_file(${outf} "${CACHED_FILES_DIR}/${filecorename}" COPYONLY)
|
||||
endforeach(outf ${output_files})
|
||||
else(NOT LOCKED_SOURCE_DIR)
|
||||
message("Source directory writing is locked - LOCKED_SOURCE_DIR is set.")
|
||||
message("To update the generated files, manually copy the following to ${CACHED_FILES_DIR}:")
|
||||
message(" ${new_info_file} (rename to verification_info.cmake)")
|
||||
foreach(outf ${output_files})
|
||||
message(" ${outf}")
|
||||
endforeach(outf ${output_files})
|
||||
endif(NOT LOCKED_SOURCE_DIR)
|
||||
|
||||
else (NOT DEBUGGING_GENERATED_SOURCES)
|
||||
|
||||
message("\nNote: DEBUGGING_GENERATED_SOURCES is enabled - generated outputs will contain configuration-specific debugging information, so syncing cached output files is not possible. To restore normal behavior, disable DEBUGGING_GENERATED_SOURCES.\n")
|
||||
|
||||
endif(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,37 +0,0 @@
|
||||
# Inherit the parent CMake setting
|
||||
set(DEBUGGING_GENERATED_SOURCES @DEBUGGING_GENERATED_SOURCES@)
|
||||
set(CURRENT_SOURCE_DIR @CMAKE_CURRENT_SOURCE_DIR@)
|
||||
|
||||
# Include the file the provides the baseline against which
|
||||
# current files will be compared
|
||||
if(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
|
||||
include(@BASELINE_INFORMATION_FILE@)
|
||||
|
||||
# Define a variety of convenience routines
|
||||
include(@PROJECT_CMAKE_DIR@/Generated_Source_Utils.cmake)
|
||||
|
||||
# Individually verify all of the files in question.
|
||||
set(filelist "@CACHED_FILELIST@")
|
||||
VERIFY_FILES("${filelist}" 1 srcs_pass)
|
||||
if(NOT srcs_pass)
|
||||
message(FATAL_ERROR "Generated sources have been modified. These files should never be modified directly except when debugging faulty output from the generators - changes to lexer and parser logic should be made to the generator input files. If this is a debugging situation, set the variable DEBUGGING_GENERATED_SOURCES to ON during the CMake configure.")
|
||||
endif(NOT srcs_pass)
|
||||
|
||||
# If we got by that test, see if it looks like these
|
||||
# sources came from the current input files. It's not
|
||||
# a failure condition if they didn't, but warn about it.
|
||||
set(filelist "@INPUT_FILELIST@")
|
||||
VERIFY_FILES("${filelist}" 0 inputs_same)
|
||||
if(NOT inputs_same)
|
||||
message("Note: cached generated sources are not in sync with input files.")
|
||||
endif(NOT inputs_same)
|
||||
|
||||
endif(NOT DEBUGGING_GENERATED_SOURCES)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
+18
-10
@@ -1,11 +1,11 @@
|
||||
# run_ctest.cmake
|
||||
# `ctest -S run_ctest.cmake`
|
||||
|
||||
set( CTEST_SOURCE_DIRECTORY . )
|
||||
set( CTEST_BINARY_DIRECTORY build_matrix )
|
||||
set( CTEST_CMAKE_GENERATOR "Unix Makefiles" )
|
||||
set( CTEST_MEMORYCHECK_COMMAND /usr/bin/valgrind )
|
||||
set( CTEST_INITIAL_CACHE "
|
||||
set(CTEST_SOURCE_DIRECTORY .)
|
||||
set(CTEST_BINARY_DIRECTORY build_matrix)
|
||||
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
|
||||
set(CTEST_MEMORYCHECK_COMMAND /usr/bin/valgrind)
|
||||
set(CTEST_INITIAL_CACHE "
|
||||
SITE:STRING=${CTEST_SITE}
|
||||
BUILDNAME:STRING=${CTEST_BUILD_NAME}
|
||||
SC_ENABLE_TESTING:BOOL=ON
|
||||
@@ -15,11 +15,19 @@ SC_BUILD_TYPE:STRING=Debug
|
||||
|
||||
ctest_start(matrix)
|
||||
ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
|
||||
ctest_configure( BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS -DSC_ENABLE_TESTING=ON )
|
||||
ctest_build( BUILD "${CTEST_BINARY_DIRECTORY}" )
|
||||
ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS -DSC_ENABLE_TESTING=ON)
|
||||
ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}")
|
||||
message("running tests")
|
||||
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE_LABEL "cpp_schema_....*" )
|
||||
ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE_LABEL "cpp_schema_....*")
|
||||
|
||||
message("running python script")
|
||||
execute_process( COMMAND python ../misc/wiki-scripts/update-matrix.py
|
||||
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY} )
|
||||
execute_process(COMMAND python ../misc/wiki-scripts/update-matrix.py
|
||||
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY})
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,22 +0,0 @@
|
||||
data/ap203/README
|
||||
|
||||
The EXPRESS schema in this directory is based on ISO 10303-203, an
|
||||
international standard which is copyrighted by ISO. ISO has granted
|
||||
NIST permission to publicly distribute the EXPRESS source from ISO
|
||||
standards. The EXPRESS schema provided in this software release has
|
||||
been modified to facilitate its use with this software and is provided
|
||||
as an example schema only. This disclaimer must be included in any
|
||||
redistribution of the EXPRESS schema. This disclaimer must also be
|
||||
included in the file containing the EXPRESS schema.
|
||||
|
||||
The EXPRESS source for the modified AP 203 schema contained in the
|
||||
file 203wseds.exp has modifications to it from the standard based on
|
||||
Standard Enhancement and Discrepancy System (SEDS) reports. SEDS
|
||||
reports are an informal way for ISO TC 184/SC4 to document errors,
|
||||
ambiguities, and enhancements to the standard; and to recommend
|
||||
corrections for formal adoption via a technical corrigendum,
|
||||
amendment, or revision.
|
||||
|
||||
The data files in this directory were developed by ITI as part of the
|
||||
STEP conformance testing project. The files contain data that conform
|
||||
to the modified AP203 schema.
|
||||
@@ -1,227 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
|
||||
FILE_NAME('cube1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('41114','Solid Cube','Description for part 41114',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3333=APPLICATION_PROTOCOL_DEFINITION('status_str','config_control_design',1990,#3);
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
|
||||
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-4306',$,$,(#6));
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#2101=PRODUCT_CATEGORY_RELATIONSHIP('root-to-standard','Relate the root to the standard product category',#1098,#1109);
|
||||
#1109=PRODUCT_CATEGORY('standard_part','Identifies this as a standard part') ;
|
||||
#1101=PRODUCT_CATEGORY_RELATIONSHIP('standard-to-detail','Relate the standard to the detail product category',#1109,#9);
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Part Type for product 41114',(#1));
|
||||
#1098=PRODUCT_CATEGORY('mechanical','mechanical product category: root node');
|
||||
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
|
||||
#1100=PRODUCT_CATEGORY('structural','The structural product category');
|
||||
#1110=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined', 'Relates the structural to the machined category',#1100,#1102) ;
|
||||
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','The machined product category',(#1));
|
||||
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 41114',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,$,$,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
|
||||
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1103=PRODUCT('12345','Cube Solid','CDI''s part 12345 description',(#2));
|
||||
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
|
||||
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Cube Solid',#1103,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1111=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1112,#1115,(#1032));
|
||||
#1112=DATE_AND_TIME(#1113,#1114);
|
||||
#1113=CALENDAR_DATE(1993,1,10);
|
||||
#1114=LOCAL_TIME(9,$,$,#29);
|
||||
#1115=DATE_TIME_ROLE('declassification_date');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1017=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('D2','Description of product for part 1234',#1010,#1018, (#1116));
|
||||
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
#1116=DOCUMENT('shape1b.dwg','cube solid CAD file','CAD file for solid cube',#1117);
|
||||
#1117=DOCUMENT_TYPE('cad_filename');
|
||||
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
|
||||
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
|
||||
#1082=CONTRACT_TYPE('fixed_price');
|
||||
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
|
||||
#1084=APPROVAL(#1085,'Approved as active project under contract');
|
||||
#1085=APPROVAL_STATUS('approved');
|
||||
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
|
||||
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
|
||||
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
|
||||
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology',
|
||||
'Institute within the Department of Commerce');
|
||||
#1090=APPROVAL_ROLE('Authorized the contract');
|
||||
#1105=APPROVAL_DATE_TIME(#1106,#1084);
|
||||
#1106=DATE_AND_TIME(#1107,#1108);
|
||||
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
|
||||
#1108=LOCAL_TIME(14,21,7.0,#29);
|
||||
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
|
||||
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
|
||||
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
|
||||
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
|
||||
|
||||
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9200);
|
||||
#1201=PRODUCT_DEFINITION_SHAPE('NTSW_Shape','Shape of Solid Cube',#17);
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
|
||||
#9110 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9111 = CARTESIAN_POINT('CartPt2',(2.0,0.0,0.0));
|
||||
#9112 = CARTESIAN_POINT('CartPt3',(2.0,0.0,2.0));
|
||||
#9113 = CARTESIAN_POINT('CartPt4',(0.0,0.0,2.0));
|
||||
#9115 = CARTESIAN_POINT('CartPt5',(0.0,2.0,0.0));
|
||||
#9116 = CARTESIAN_POINT('CartPt6',(2.0,2.0,0.0));
|
||||
#9117 = CARTESIAN_POINT('CartPt7',(2.0,2.0,2.0));
|
||||
#9118 = CARTESIAN_POINT('CartPt8',(0.0,2.0,2.0));
|
||||
#9120 = POLYLINE('PolyLine2',(#9113,#9118,#9117,#9116));
|
||||
#9130 = POLYLINE('PolyLine2',(#9110,#9113,#9112,#9117));
|
||||
#9140 = POLYLINE('PolyLine3',(#9118,#9115,#9110,#9111));
|
||||
#9150 = POLYLINE('PolyLine4',(#9112,#9111,#9116,#9115));
|
||||
#9160 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9120,#9130,#9140,#9150));
|
||||
#9190 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for gbwr - simple cube','This is a 3d context using millimeters for linear dimension'));
|
||||
#9200 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('gbwsr',(#9160),#9190);
|
||||
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,219 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
|
||||
FILE_NAME('cube2.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('51114','Solid Cube with Parabola Face','Description for part 51114',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 51114',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 51114',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Cube with Parabola Face',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 51114',#1010,#1018);
|
||||
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9260);
|
||||
#1201=PRODUCT_DEFINITION_SHAPE('GBWR_Shape','Shape of Solid Cube with Parabola Face',#17);
|
||||
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
|
||||
|
||||
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
|
||||
#9102 = DIRECTION('Dir2',(0.0,1.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9105 = DIRECTION('Dir4',(0.0,-1.0,0.0));
|
||||
#9111 = CARTESIAN_POINT('CartPt2',(0.0, 1.0, 0.0));
|
||||
#9112 = CARTESIAN_POINT('CartPt3',(1.0, 1.0, 0.0));
|
||||
#9113 = CARTESIAN_POINT('CartPt4',(1.0, 2.0, 0.0));
|
||||
#9114 = CARTESIAN_POINT('CartPt5',(0.0, 2.0, 0.0));
|
||||
#9115 = CARTESIAN_POINT('CartPt6',(0.0, 1.0, 1.0));
|
||||
#9116 = CARTESIAN_POINT('CartPt7',(1.0, 1.0, 1.0));
|
||||
#9117 = CARTESIAN_POINT('CartPt8',(1.0, 2.0, 1.0));
|
||||
#9118 = CARTESIAN_POINT('CartPt9',(0.0, 2.0, 1.0));
|
||||
#9120 = CARTESIAN_POINT('CartPt10',(0.5, 1.25, 0.0));
|
||||
#9121 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9120,$,#9105);
|
||||
#9122 = PARABOLA('Parab1',#9121, 0.25);
|
||||
#9123 = TRIMMED_CURVE('TrimCur1',#9122,(#9111),(#9112),.T.,.CARTESIAN.);
|
||||
#9130 = CARTESIAN_POINT('CartPt11',(0.5, 1.25, 1.0));
|
||||
#9131 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9130,$,#9105);
|
||||
#9132 = PARABOLA('Parab2',#9131, 0.25);
|
||||
#9133 = TRIMMED_CURVE('TrimCur2',#9132,(#9115),(#9116),.F.,.CARTESIAN.);
|
||||
#9140 = VECTOR('Vec1',#9103,10.0);
|
||||
#9141 = LINE('Line1',#9111,#9140);
|
||||
#9142 = TRIMMED_CURVE('TrimCur3',#9141,(#9111,0.0),(#9115,0.1),.T.,.PARAMETER.);
|
||||
#9150 = LINE('Line2',#9112,#9140);
|
||||
#9151 = TRIMMED_CURVE('TrimCur4',#9150,(#9112,0.0),(#9116,0.1),.T.,.PARAMETER.);
|
||||
#9160 = LINE('Line3',#9113,#9140);
|
||||
#9161 = TRIMMED_CURVE('TrimCur5',#9160,(#9113,0.0),(#9117,0.1),.T.,.PARAMETER.);
|
||||
#9170 = LINE('Line4',#9114,#9140);
|
||||
#9171 = TRIMMED_CURVE('TrimCur6',#9170,(#9114,0.0),(#9116,0.1),.T.,.PARAMETER.);
|
||||
#9180 = VECTOR('Vec2',#9102,10.0);
|
||||
#9181 = LINE('Line5',#9111,#9180);
|
||||
#9182 = TRIMMED_CURVE('TrimCur7',#9181,(#9111,0.0),(#9114,0.1),.T.,.PARAMETER.);
|
||||
#9190 = LINE('Line6',#9112,#9180);
|
||||
#9191 = TRIMMED_CURVE('TrimCur8',#9190,(#9112,0.0),(#9113,0.1),.T.,.PARAMETER.);
|
||||
#9200 = LINE('Line7',#9116,#9180);
|
||||
#9201 = TRIMMED_CURVE('TrimCur9',#9200,(#9116,0.0),(#9117,0.1),.T.,.PARAMETER.);
|
||||
#9210 = LINE('Line8',#9115,#9180);
|
||||
#9211 = TRIMMED_CURVE('TrimCur10',#9210,(#9115,0.0),(#9118,0.1),.T.,.PARAMETER.);
|
||||
#9220 = VECTOR('Vec3',#9101,10.0);
|
||||
#9221 = LINE('Line9',#9114,#9220);
|
||||
#9222 = TRIMMED_CURVE('TrimCur11',#9221,(#9114,0.0),(#9113,0.1),.T.,.PARAMETER.);
|
||||
#9230 = LINE('Line10',#9118,#9220);
|
||||
#9231 = TRIMMED_CURVE('TrimCur12',#9230,(#9118,0.0),(#9117,0.1),.T.,.PARAMETER.);
|
||||
#9240 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9123,#9133,#9142,#9151,#9161,#9171,#9182,#9191,#9201,#9211,#9222,#9231));
|
||||
#9250 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for gbwr test case cube with parabolic face','This is a 3d context using centimeters for linear dimension'));
|
||||
#9260 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('xx',(#9240),#9250);
|
||||
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,699 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - abr'),'1');
|
||||
FILE_NAME('g_r_assembly1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('55555','Gasket Rod Assembly','Description for part 55555',(#2));
|
||||
#2=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','Part Type for product 55555',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 55555',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#1251=CONFIGURATION_DESIGN(#1252,#10);
|
||||
#1252=CONFIGURATION_ITEM('LX','name',$,#1253,'Concept Development');
|
||||
#1350=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#1351,(#1252));
|
||||
#1351=PERSON_AND_ORGANIZATION_ROLE('configuration_manager');
|
||||
#1253=PRODUCT_CONCEPT('Super Gasket','The Super Gasket machined standard part','The Super Gasket Line',#1254);
|
||||
#1254=PRODUCT_CONCEPT_CONTEXT('structural gasket',#3,'market segment type');
|
||||
#1255=CC_DESIGN_APPROVAL(#1256,(#1252));
|
||||
#1256=APPROVAL(#1257,'Not yet approved product configuration');
|
||||
#1257=APPROVAL_STATUS('not_yet_approved');
|
||||
#1258=APPROVAL_PERSON_ORGANIZATION(#70,#1256,#1259);
|
||||
#1259=APPROVAL_ROLE('approval for configuration item');
|
||||
#1260=APPROVAL_DATE_TIME(#1261,#1256);
|
||||
#1261=DATE_AND_TIME(#1264,#1263);
|
||||
#1263=LOCAL_TIME(11,56,19.0,#29);
|
||||
#1264=ORDINAL_DATE(1993,202) ;
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for STEP conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('assembly specification',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Gasket Rod Assembly',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Detailed drawing',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('assembly specification',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as assembly specification');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
#3265=ASSEMBLY_COMPONENT_USAGE('1993-A1','component assembly relationship','assembly relationship of gasket rod assembly to flat ring gasket with holes',#17,#2017,$);
|
||||
#3281=CC_DESIGN_SECURITY_CLASSIFICATION(#3282,(#3265));
|
||||
#3282=SECURITY_CLASSIFICATION('1993-C5','open availability of STEP test data',#3283);
|
||||
#3283=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#3284=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3285,#3289,(#3282));
|
||||
#3285=DATE_AND_TIME(#3286,#3287);
|
||||
#3286=CALENDAR_DATE(1993,19,7);
|
||||
#3287=LOCAL_TIME(10,45,20.0,#29);
|
||||
#3289=DATE_TIME_ROLE('classification_date');
|
||||
#3290=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#3292,(#3282));
|
||||
#3292=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#3293=CC_DESIGN_APPROVAL(#3294,(#3282));
|
||||
#3294=APPROVAL(#3295,'Approved as unclassified step test data');
|
||||
#3295=APPROVAL_STATUS('approved');
|
||||
#3296=APPROVAL_DATE_TIME(#3297,#3294);
|
||||
#3297=DATE_AND_TIME(#3298,#3299);
|
||||
#3298=CALENDAR_DATE(1993,19,7);
|
||||
#3299=LOCAL_TIME(10,47,28.0,#29);
|
||||
#3300=APPROVAL_PERSON_ORGANIZATION(#74,#3294,#3301);
|
||||
#3301=APPROVAL_ROLE('Authorize the security code');
|
||||
#2001=PRODUCT('21113','Flat Ring Gasket with Holes','Description for part 21113',(#2002));
|
||||
#2002=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
|
||||
#2004=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#2008,(#2001));
|
||||
#2008=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','Part Type for product 21113',(#2001));
|
||||
#2010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('B','Description of version with specified source for part 21113',#2001,.BOUGHT.);
|
||||
#2011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#2015,(#2010));
|
||||
#2015=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#2044=CC_DESIGN_APPROVAL(#2045,(#2010));
|
||||
#2045=APPROVAL(#2046,'Approved as initial STEP test case part');
|
||||
#2046=APPROVAL_STATUS('approved');
|
||||
#2047=APPROVAL_DATE_TIME(#2048,#2045);
|
||||
#2048=DATE_AND_TIME(#2050,#2051);
|
||||
#2050=CALENDAR_DATE(1993,17,7);
|
||||
#2051=LOCAL_TIME(13,29,52.0,#29);
|
||||
#2069=APPROVAL_PERSON_ORGANIZATION(#70,#2045,#2072);
|
||||
#2072=APPROVAL_ROLE('Authorize part release');
|
||||
#2031=CC_DESIGN_SECURITY_CLASSIFICATION(#2032,(#2010));
|
||||
#2032=SECURITY_CLASSIFICATION('1993-C3','open availability of STEP test data',#2033);
|
||||
#2033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#2034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2035,#2039,(#2032));
|
||||
#2035=DATE_AND_TIME(#2036,#2037);
|
||||
#2036=CALENDAR_DATE(1993,17,7);
|
||||
#2037=LOCAL_TIME(13,45,20.0,#29);
|
||||
#2039=DATE_TIME_ROLE('classification_date');
|
||||
#2040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#2043,(#2032));
|
||||
#2043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#2053=CC_DESIGN_APPROVAL(#2054,(#2032));
|
||||
#2054=APPROVAL(#2055,'Approved as unclassified step test data');
|
||||
#2055=APPROVAL_STATUS('approved');
|
||||
#2056=APPROVAL_DATE_TIME(#2057,#2054);
|
||||
#2057=DATE_AND_TIME(#2058,#2059);
|
||||
#2058=CALENDAR_DATE(1993,17,7);
|
||||
#2059=LOCAL_TIME(13,47,28.0,#29);
|
||||
#2073=APPROVAL_PERSON_ORGANIZATION(#74,#2054,#2076);
|
||||
#2076=APPROVAL_ROLE('Authorize the security code');
|
||||
#2017=PRODUCT_DEFINITION('D3','Detailed drawing as planned for STEP conformance testing',#2010,#2018);
|
||||
#2018=DESIGN_CONTEXT('assembly specification',#3,'design');
|
||||
#2019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#2023,(#2017));
|
||||
#2023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#2024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2025,#2030,(#2017));
|
||||
#2025=DATE_AND_TIME(#2027,#2028);
|
||||
#2027=CALENDAR_DATE(1993,19,7);
|
||||
#2028=LOCAL_TIME(19,46,55.0,#29);
|
||||
#2030=DATE_TIME_ROLE('creation_date');
|
||||
#2061=CC_DESIGN_APPROVAL(#2062,(#2017));
|
||||
#2062=APPROVAL(#2063,'Approved as STEP conformance testing drawing');
|
||||
#2063=APPROVAL_STATUS('approved');
|
||||
#2064=APPROVAL_DATE_TIME(#2065,#2062);
|
||||
#2065=DATE_AND_TIME(#2066,#2067);
|
||||
#2066=CALENDAR_DATE(1993,19,7);
|
||||
#2067=LOCAL_TIME(19,47,51.0,#29);
|
||||
#2077=APPROVAL_PERSON_ORGANIZATION(#70,#2062,#2079);
|
||||
#2079=APPROVAL_ROLE('Authorize product definition');
|
||||
#2080=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#2084,(#2010,#3010));
|
||||
#2084=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#2088=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides assembly specification',#2017,#3017);
|
||||
#2085=CC_DESIGN_CERTIFICATION(#2086,(#2088));
|
||||
#2086=CERTIFICATION('ISO-9000 certified design supplier','quality control',#2087);
|
||||
#2087=CERTIFICATION_TYPE('design_supplier');
|
||||
#2089=CC_DESIGN_APPROVAL(#2090,(#2086));
|
||||
#2090=APPROVAL(#2091,'Approved as ISO-9000 certified supplier');
|
||||
#2091=APPROVAL_STATUS('approved');
|
||||
#2092=APPROVAL_PERSON_ORGANIZATION(#70,#2090,#2093);
|
||||
#2093=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#2094=DATE_AND_TIME(#2095,#2096);
|
||||
#2095=CALENDAR_DATE(1993,20,4);
|
||||
#2096=LOCAL_TIME(15,47,51.0,#29);
|
||||
#2097=APPROVAL_DATE_TIME(#2094,#2090);
|
||||
#2098=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2100,#2102,(#2086));
|
||||
#2099=CALENDAR_DATE(1993,19,4);
|
||||
#2100=DATE_AND_TIME(#2099,#2101);
|
||||
#2101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#2102=DATE_TIME_ROLE('certification_date');
|
||||
#3010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Square',#2001,.MADE.);
|
||||
#3011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#3016,(#3010));
|
||||
#3016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#3044=CC_DESIGN_APPROVAL(#3045,(#3010));
|
||||
#3045=APPROVAL(#3046,'Approved as test part design');
|
||||
#3046=APPROVAL_STATUS('approved');
|
||||
#3047=APPROVAL_DATE_TIME(#3048,#3045);
|
||||
#3048=DATE_AND_TIME(#3050,#3051);
|
||||
#3050=CALENDAR_DATE(1993,19,7);
|
||||
#3051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#3069=APPROVAL_PERSON_ORGANIZATION(#1070,#3045,#3072);
|
||||
#3072=APPROVAL_ROLE('Authorize part version');
|
||||
#3031=CC_DESIGN_SECURITY_CLASSIFICATION(#3032,(#3010));
|
||||
#3032=SECURITY_CLASSIFICATION('1993-C4','open availability of test part designs',#3033);
|
||||
#3033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#3034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3035,#3039,(#3032));
|
||||
#3035=DATE_AND_TIME(#3036,#3037);
|
||||
#3036=CALENDAR_DATE(1993,19,7);
|
||||
#3037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#3039=DATE_TIME_ROLE('classification_date');
|
||||
#3040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#3043,(#3032));
|
||||
#3043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#3053=CC_DESIGN_APPROVAL(#3054,(#3032));
|
||||
#3054=APPROVAL(#3055,'Approved as unclassified part design');
|
||||
#3055=APPROVAL_STATUS('approved');
|
||||
#3056=APPROVAL_DATE_TIME(#3057,#3054);
|
||||
#3057=DATE_AND_TIME(#3058,#3059);
|
||||
#3058=CALENDAR_DATE(1993,19,7);
|
||||
#3059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#3073=APPROVAL_PERSON_ORGANIZATION(#81,#3054,#3076);
|
||||
#3076=APPROVAL_ROLE('Authorize the security code');
|
||||
#3017=PRODUCT_DEFINITION('D4','Detailed drawing',#3010,#3018);
|
||||
#3018=DESIGN_CONTEXT('assembly specification',#3,'design');
|
||||
#3019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#3023,(#3017));
|
||||
#3023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#3024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3025,#3030,(#3017));
|
||||
#3025=DATE_AND_TIME(#3027,#3028);
|
||||
#3027=CALENDAR_DATE(1993,18,7);
|
||||
#3028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#3030=DATE_TIME_ROLE('creation_date');
|
||||
#3061=CC_DESIGN_APPROVAL(#3062,(#3017));
|
||||
#3062=APPROVAL(#3063,'Approved as assembly specification');
|
||||
#3063=APPROVAL_STATUS('approved');
|
||||
#3064=APPROVAL_DATE_TIME(#3065,#3062);
|
||||
#3065=DATE_AND_TIME(#3066,#3067);
|
||||
#3066=CALENDAR_DATE(1993,19,7);
|
||||
#3067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#3077=APPROVAL_PERSON_ORGANIZATION(#81,#3062,#3079);
|
||||
#3079=APPROVAL_ROLE('Authorize product definition');
|
||||
#5265=(ASSEMBLY_COMPONENT_USAGE('designator 5')
|
||||
NEXT_ASSEMBLY_USAGE_OCCURRENCE()
|
||||
PRODUCT_DEFINITION_RELATIONSHIP('1993-N2','next assembly relationship','next occurance assembly relationship of flat ring gasket with holes to rod with conical tip',#2017,#4017)
|
||||
PRODUCT_DEFINITION_USAGE()
|
||||
QUANTIFIED_ASSEMBLY_COMPONENT_USAGE(#5305));
|
||||
#5305=MEASURE_WITH_UNIT(COUNT_MEASURE(4),#5306);
|
||||
#5306=CONTEXT_DEPENDENT_UNIT(#5307,'parts');
|
||||
#5307=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
|
||||
#5281=CC_DESIGN_SECURITY_CLASSIFICATION(#5282,(#5265));
|
||||
#5282=SECURITY_CLASSIFICATION('1993-C8','open availability of STEP test data',#5283);
|
||||
#5283=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#5284=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5285,#5289,(#5282));
|
||||
#5285=DATE_AND_TIME(#5286,#5287);
|
||||
#5286=CALENDAR_DATE(1993,19,7);
|
||||
#5287=LOCAL_TIME(10,45,20.0,#29);
|
||||
#5289=DATE_TIME_ROLE('classification_date');
|
||||
#5290=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#5292,(#5282));
|
||||
#5292=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#5293=CC_DESIGN_APPROVAL(#5294,(#5282));
|
||||
#5294=APPROVAL(#5295,'Approved as unclassified step test data');
|
||||
#5295=APPROVAL_STATUS('approved');
|
||||
#5296=APPROVAL_DATE_TIME(#5297,#5294);
|
||||
#5297=DATE_AND_TIME(#5298,#5299);
|
||||
#5298=CALENDAR_DATE(1993,19,7);
|
||||
#5299=LOCAL_TIME(10,47,28.0,#29);
|
||||
#5300=APPROVAL_PERSON_ORGANIZATION(#74,#5294,#5301);
|
||||
#5301=APPROVAL_ROLE('Authorize the security code');
|
||||
#4001=PRODUCT('41113','Rod with Conical Tip','Description for part 41113',(#4002));
|
||||
#4002=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
|
||||
#4004=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#4008,(#4001));
|
||||
#4008=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#4009=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 41113',(#4001));
|
||||
#4010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('B','Description of version with specified source for part 41113',#4001,.BOUGHT.);
|
||||
#4011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#4015,(#4010));
|
||||
#4015=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#4044=CC_DESIGN_APPROVAL(#4045,(#4010));
|
||||
#4045=APPROVAL(#4046,'Approved as initial STEP test case part');
|
||||
#4046=APPROVAL_STATUS('approved');
|
||||
#4047=APPROVAL_DATE_TIME(#4048,#4045);
|
||||
#4048=DATE_AND_TIME(#4050,#4051);
|
||||
#4050=CALENDAR_DATE(1993,17,7);
|
||||
#4051=LOCAL_TIME(13,29,52.0,#29);
|
||||
#4069=APPROVAL_PERSON_ORGANIZATION(#70,#4045,#4072);
|
||||
#4072=APPROVAL_ROLE('Authorize part release');
|
||||
#4031=CC_DESIGN_SECURITY_CLASSIFICATION(#4032,(#4010));
|
||||
#4032=SECURITY_CLASSIFICATION('1993-C6','open availability of STEP test data',#4033);
|
||||
#4033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#4034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4035,#4039,(#4032));
|
||||
#4035=DATE_AND_TIME(#4036,#4037);
|
||||
#4036=CALENDAR_DATE(1993,17,7);
|
||||
#4037=LOCAL_TIME(13,45,20.0,#29);
|
||||
#4039=DATE_TIME_ROLE('classification_date');
|
||||
#4040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#4043,(#4032));
|
||||
#4043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#4053=CC_DESIGN_APPROVAL(#4054,(#4032));
|
||||
#4054=APPROVAL(#4055,'Approved as unclassified step test data');
|
||||
#4055=APPROVAL_STATUS('approved');
|
||||
#4056=APPROVAL_DATE_TIME(#4057,#4054);
|
||||
#4057=DATE_AND_TIME(#4058,#4059);
|
||||
#4058=CALENDAR_DATE(1993,17,7);
|
||||
#4059=LOCAL_TIME(13,47,28.0,#29);
|
||||
#4073=APPROVAL_PERSON_ORGANIZATION(#74,#4054,#4076);
|
||||
#4076=APPROVAL_ROLE('Authorize the security code');
|
||||
#4017=PRODUCT_DEFINITION('D5','Detailed drawing as planned for STEP conformance testing',#4010,#4018);
|
||||
#4018=DESIGN_CONTEXT('assembly specification',#3,'design');
|
||||
#4019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#4023,(#4017));
|
||||
#4023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#4024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4025,#4030,(#4017));
|
||||
#4025=DATE_AND_TIME(#4027,#4028);
|
||||
#4027=CALENDAR_DATE(1993,19,7);
|
||||
#4028=LOCAL_TIME(19,46,55.0,#29);
|
||||
#4030=DATE_TIME_ROLE('creation_date');
|
||||
#4061=CC_DESIGN_APPROVAL(#4062,(#4017));
|
||||
#4062=APPROVAL(#4063,'Approved as STEP conformance testing drawing');
|
||||
#4063=APPROVAL_STATUS('approved');
|
||||
#4064=APPROVAL_DATE_TIME(#4065,#4062);
|
||||
#4065=DATE_AND_TIME(#4066,#4067);
|
||||
#4066=CALENDAR_DATE(1993,19,7);
|
||||
#4067=LOCAL_TIME(19,47,51.0,#29);
|
||||
#4077=APPROVAL_PERSON_ORGANIZATION(#70,#4062,#4079);
|
||||
#4079=APPROVAL_ROLE('Authorize product definition');
|
||||
#4080=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#4084,(#4010,#5010));
|
||||
#4084=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#4088=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides assembly specification',#4017,#5017);
|
||||
#4085=CC_DESIGN_CERTIFICATION(#4086,(#4088));
|
||||
#4086=CERTIFICATION('ISO-9000 certified design supplier','quality control',#4087);
|
||||
#4087=CERTIFICATION_TYPE('design_supplier');
|
||||
#4089=CC_DESIGN_APPROVAL(#4090,(#4086));
|
||||
#4090=APPROVAL(#4091,'Approved as ISO-9000 certified supplier');
|
||||
#4091=APPROVAL_STATUS('approved');
|
||||
#4092=APPROVAL_PERSON_ORGANIZATION(#70,#4090,#4093);
|
||||
#4093=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#4094=DATE_AND_TIME(#4095,#4096);
|
||||
#4095=CALENDAR_DATE(1993,20,4);
|
||||
#4096=LOCAL_TIME(15,47,51.0,#29);
|
||||
#4097=APPROVAL_DATE_TIME(#4094,#4090);
|
||||
#4098=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4100,#4102,(#4086));
|
||||
#4099=CALENDAR_DATE(1993,19,4);
|
||||
#4100=DATE_AND_TIME(#4099,#4101);
|
||||
#4101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#4102=DATE_TIME_ROLE('certification_date');
|
||||
#5010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Rod with Conical Tip',#4001,.MADE.);
|
||||
#5011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#5016,(#5010));
|
||||
#5016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#5044=CC_DESIGN_APPROVAL(#5045,(#5010));
|
||||
#5045=APPROVAL(#5046,'Approved as test part design');
|
||||
#5046=APPROVAL_STATUS('approved');
|
||||
#5047=APPROVAL_DATE_TIME(#5048,#5045);
|
||||
#5048=DATE_AND_TIME(#5050,#5051);
|
||||
#5050=CALENDAR_DATE(1993,19,7);
|
||||
#5051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#5069=APPROVAL_PERSON_ORGANIZATION(#1070,#5045,#5072);
|
||||
#5072=APPROVAL_ROLE('Authorize part version');
|
||||
#5031=CC_DESIGN_SECURITY_CLASSIFICATION(#5032,(#5010));
|
||||
#5032=SECURITY_CLASSIFICATION('1993-C7','open availability of test part designs',#5033);
|
||||
#5033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#5034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5035,#5039,(#5032));
|
||||
#5035=DATE_AND_TIME(#5036,#5037);
|
||||
#5036=CALENDAR_DATE(1993,19,7);
|
||||
#5037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#5039=DATE_TIME_ROLE('classification_date');
|
||||
#5040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#5043,(#5032));
|
||||
#5043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#5053=CC_DESIGN_APPROVAL(#5054,(#5032));
|
||||
#5054=APPROVAL(#5055,'Approved as unclassified part design');
|
||||
#5055=APPROVAL_STATUS('approved');
|
||||
#5056=APPROVAL_DATE_TIME(#5057,#5054);
|
||||
#5057=DATE_AND_TIME(#5058,#5059);
|
||||
#5058=CALENDAR_DATE(1993,19,7);
|
||||
#5059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#5073=APPROVAL_PERSON_ORGANIZATION(#81,#5054,#5076);
|
||||
#5076=APPROVAL_ROLE('Authorize the security code');
|
||||
#5017=PRODUCT_DEFINITION('D6','Detailed drawing',#5010,#5018);
|
||||
#5018=DESIGN_CONTEXT('assembly specification',#3,'design');
|
||||
#5019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#5023,(#5017));
|
||||
#5023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#5024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5025,#5030,(#5017));
|
||||
#5025=DATE_AND_TIME(#5027,#5028);
|
||||
#5027=CALENDAR_DATE(1993,18,7);
|
||||
#5028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#5030=DATE_TIME_ROLE('creation_date');
|
||||
#5061=CC_DESIGN_APPROVAL(#5062,(#5017));
|
||||
#5062=APPROVAL(#5063,'Approved as assembly specification');
|
||||
#5063=APPROVAL_STATUS('approved');
|
||||
#5064=APPROVAL_DATE_TIME(#5065,#5062);
|
||||
#5065=DATE_AND_TIME(#5066,#5067);
|
||||
#5066=CALENDAR_DATE(1993,19,7);
|
||||
#5067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#5077=APPROVAL_PERSON_ORGANIZATION(#81,#5062,#5079);
|
||||
#5079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
/* component assembly position : method 1 */
|
||||
|
||||
#1211=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape relationship between gasket and rod',#5265);
|
||||
#1210=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1212,#1211);
|
||||
#1212=( REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
|
||||
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1213)
|
||||
SHAPE_REPRESENTATION_RELATIONSHIP());
|
||||
#1213=ITEM_DEFINED_TRANSFORMATION('name','description',#9211,#9120);
|
||||
|
||||
#1214=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1216,#1211);
|
||||
#1216=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
|
||||
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1217)
|
||||
SHAPE_REPRESENTATION_RELATIONSHIP());
|
||||
#1217=ITEM_DEFINED_TRANSFORMATION('name','description',#9241,#9120);
|
||||
|
||||
#1218=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1220,#1211);
|
||||
#1220=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
|
||||
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1221)
|
||||
SHAPE_REPRESENTATION_RELATIONSHIP());
|
||||
#1221=ITEM_DEFINED_TRANSFORMATION('name','description',#9271,#9120);
|
||||
|
||||
#1222=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1224,#1211);
|
||||
#1224=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
|
||||
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1225)
|
||||
SHAPE_REPRESENTATION_RELATIONSHIP());
|
||||
#1225=ITEM_DEFINED_TRANSFORMATION('name','description',#9301,#9120);
|
||||
|
||||
/* component assembly position : method 2 */
|
||||
|
||||
#1230=MAPPED_ITEM('MapPath1',#1234,#9211);
|
||||
#1231=MAPPED_ITEM('MapPath2',#1234,#9241);
|
||||
#1232=MAPPED_ITEM('MapPath3',#1234,#9271);
|
||||
#1233=MAPPED_ITEM('MapPath4',#1234,#9301);
|
||||
#1234=REPRESENTATION_MAP(#9120,#10370);
|
||||
|
||||
#9020=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
|
||||
#9021=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = CIRCLE('Circ1',#9120,40.0);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(40.0,0.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
|
||||
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
|
||||
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
|
||||
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
|
||||
#9130 = CIRCLE('Circ2',#9120,25.0);
|
||||
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
|
||||
#9132 = VERTEX_POINT('VertPt2',#9131);
|
||||
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
|
||||
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
|
||||
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
|
||||
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
|
||||
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9142 = PLANE('Plane2',#9141);
|
||||
#9143 = CIRCLE('Circ3',#9141,40.0);
|
||||
#9144 = CARTESIAN_POINT('CartPt5',(40.0,0.0,5.0));
|
||||
#9145 = VERTEX_POINT('VertPt3',#9144);
|
||||
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
|
||||
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
|
||||
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
|
||||
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
|
||||
#9160 = CIRCLE('Circ4',#9141,25.0);
|
||||
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
|
||||
#9162 = VERTEX_POINT('VertPt4',#9161);
|
||||
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
|
||||
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
|
||||
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
|
||||
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
|
||||
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,40.0);
|
||||
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
|
||||
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
|
||||
#9192 = ADVANCED_FACE('AdvFace1',(#9190,#9191),#9180,.T.);
|
||||
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
|
||||
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
|
||||
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
|
||||
#9203 = ADVANCED_FACE('AdvFace2',(#9201,#9202),#9200,.F.);
|
||||
#9210 = CARTESIAN_POINT('CartPt7',(0.0,32.5,0.0));
|
||||
#9211 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9210,#9103,#9101);
|
||||
#9212 = CIRCLE('Circ5',#9211,2.5);
|
||||
#9213 = CARTESIAN_POINT('CartPt8',(2.5,32.5,0.0));
|
||||
#9214 = VERTEX_POINT('VertPt5',#9213);
|
||||
#9215 = EDGE_CURVE('EdgeCur5',#9214,#9214,#9212,.T.);
|
||||
#9216 = ORIENTED_EDGE('OriEdge5',*,*,#9215,.T.);
|
||||
#9217 = EDGE_LOOP('EdgeLoop5',(#9216));
|
||||
#9218 = FACE_BOUND('FaceBnd9',#9217,.F.);
|
||||
#9219 = FACE_BOUND('FaceBnd10',#9217,.T.);
|
||||
#9220 = CARTESIAN_POINT('CartPt9',(0.0,32.5,5.0));
|
||||
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9220,#9103,#9101);
|
||||
#9222 = CIRCLE('Circ6',#9221,5.0);
|
||||
#9223 = CARTESIAN_POINT('CartPt10',(5.0,32.5,5.0));
|
||||
#9224 = VERTEX_POINT('VertPt6',#9223);
|
||||
#9225 = EDGE_CURVE('EdgeCur6',#9224,#9224,#9222,.T.);
|
||||
#9226 = ORIENTED_EDGE('OriEdge6',*,*,#9225,.T.);
|
||||
#9227 = EDGE_LOOP('EdgeLoop6',(#9226));
|
||||
#9228 = FACE_BOUND('FaceBnd11',#9227,.T.);
|
||||
#9229 = FACE_BOUND('FaceBnd12',#9227,.F.);
|
||||
#9230 = CONICAL_SURFACE('ConSur1',#9211,2.5,0.46364761);
|
||||
#9231 = ADVANCED_FACE('AdvFace3',(#9218,#9228),#9230,.F.);
|
||||
#9240 = CARTESIAN_POINT('CartPt11',(32.5,0.0,0.0));
|
||||
#9241 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9240,#9103,#9101);
|
||||
#9242 = CIRCLE('Circ7',#9241,2.5);
|
||||
#9243 = CARTESIAN_POINT('CartPt12',(35.0,0.0,0.0));
|
||||
#9244 = VERTEX_POINT('VertPt7',#9243);
|
||||
#9245 = EDGE_CURVE('EdgeCur7',#9244,#9244,#9242,.T.);
|
||||
#9246 = ORIENTED_EDGE('OriEdge7',*,*,#9245,.T.);
|
||||
#9247 = EDGE_LOOP('EdgeLoop7',(#9246));
|
||||
#9248 = FACE_BOUND('FaceBnd13',#9247,.F.);
|
||||
#9249 = FACE_BOUND('FaceBnd14',#9247,.T.);
|
||||
#9250 = CARTESIAN_POINT('CartPt13',(32.5,0.0,5.0));
|
||||
#9251 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9250,#9103,#9101);
|
||||
#9252 = CIRCLE('Circ8',#9251,5.0);
|
||||
#9253 = CARTESIAN_POINT('CartPt14',(37.5,0.0,5.0));
|
||||
#9254 = VERTEX_POINT('VertPt8',#9253);
|
||||
#9255 = EDGE_CURVE('EdgeCur8',#9254,#9254,#9252,.T.);
|
||||
#9256 = ORIENTED_EDGE('OriEdge8',*,*,#9255,.T.);
|
||||
#9257 = EDGE_LOOP('EdgeLoop8',(#9256));
|
||||
#9258 = FACE_BOUND('FaceBnd15',#9257,.T.);
|
||||
#9259 = FACE_BOUND('FaceBnd16',#9257,.F.);
|
||||
#9260 = CONICAL_SURFACE('ConSur2',#9241,2.5,0.46364761);
|
||||
#9261 = ADVANCED_FACE('AdvFace4',(#9248,#9258),#9260,.F.);
|
||||
#9270 = CARTESIAN_POINT('CartPt15',(0.0,-32.5,0.0));
|
||||
#9271 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9270,#9103,#9101);
|
||||
#9272 = CIRCLE('Circ9',#9271,2.5);
|
||||
#9273 = CARTESIAN_POINT('CartPt16',(2.5,-32.5,0.0));
|
||||
#9274 = VERTEX_POINT('VertPt9',#9273);
|
||||
#9275 = EDGE_CURVE('EdgeCur9',#9274,#9274,#9272,.T.);
|
||||
#9276 = ORIENTED_EDGE('OriEdge9',*,*,#9275,.T.);
|
||||
#9277 = EDGE_LOOP('EdgeLoop9',(#9276));
|
||||
#9278 = FACE_BOUND('FaceBnd17',#9277,.F.);
|
||||
#9279 = FACE_BOUND('FaceBnd18',#9277,.T.);
|
||||
#9280 = CARTESIAN_POINT('CartPt17',(0.0,-32.5,5.0));
|
||||
#9281 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9280,#9103,#9101);
|
||||
#9282 = CIRCLE('Circ10',#9281,5.0);
|
||||
#9283 = CARTESIAN_POINT('CartPt18',(5.0,-32.5,5.0));
|
||||
#9284 = VERTEX_POINT('VertPt10',#9283);
|
||||
#9285 = EDGE_CURVE('EdgeCur10',#9284,#9284,#9282,.T.);
|
||||
#9286 = ORIENTED_EDGE('OriEdge10',*,*,#9285,.T.);
|
||||
#9287 = EDGE_LOOP('EdgeLoop10',(#9286));
|
||||
#9288 = FACE_BOUND('FaceBnd19',#9287,.T.);
|
||||
#9289 = FACE_BOUND('FaceBnd20',#9287,.F.);
|
||||
#9290 = CONICAL_SURFACE('ConSur3',#9271,2.5,0.46364761);
|
||||
#9291 = ADVANCED_FACE('AdvFace5',(#9278,#9288),#9290,.F.);
|
||||
#9300 = CARTESIAN_POINT('CartPt19',(-32.5,0.0,0.0));
|
||||
#9301 = AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9103,#9101);
|
||||
#9302 = CIRCLE('Circ11',#9301,2.5);
|
||||
#9303 = CARTESIAN_POINT('CartPt20',(-30.0,0.0,0.0));
|
||||
#9304 = VERTEX_POINT('VertPt11',#9303);
|
||||
#9305 = EDGE_CURVE('EdgeCur11',#9304,#9304,#9302,.T.);
|
||||
#9306 = ORIENTED_EDGE('OriEdge11',*,*,#9305,.T.);
|
||||
#9307 = EDGE_LOOP('EdgeLoop11',(#9306));
|
||||
#9308 = FACE_BOUND('FaceBnd21',#9307,.F.);
|
||||
#9309 = FACE_BOUND('FaceBnd22',#9307,.T.);
|
||||
#9310 = CARTESIAN_POINT('CartPt21',(-32.5,0.0,5.0));
|
||||
#9311 = AXIS2_PLACEMENT_3D('Ax2P3D10',#9310,#9103,#9101);
|
||||
#9312 = CIRCLE('Circ12',#9311,5.0);
|
||||
#9313 = CARTESIAN_POINT('CartPt22',(37.5,0.0,5.0));
|
||||
#9314 = VERTEX_POINT('VertPt12',#9313);
|
||||
#9315 = EDGE_CURVE('EdgeCur12',#9314,#9314,#9312,.T.);
|
||||
#9316 = ORIENTED_EDGE('OriEdge12',*,*,#9315,.T.);
|
||||
#9317 = EDGE_LOOP('EdgeLoop12',(#9316));
|
||||
#9318 = FACE_BOUND('FaceBnd23',#9317,.T.);
|
||||
#9319 = FACE_BOUND('FaceBnd24',#9317,.F.);
|
||||
#9320 = CONICAL_SURFACE('ConSur4',#9301,2.5,0.46364761);
|
||||
#9321 = ADVANCED_FACE('AdvFace6',(#9308,#9318),#9320,.F.);
|
||||
#9325 = ADVANCED_FACE('AdvFace7',(#9128,#9136,#9219,#9249,#9279,#9309),#9121,.F.);
|
||||
#9326 = ADVANCED_FACE('AdvFace8',(#9149,#9166,#9229,#9259,#9289,#9319),#9142,.T.);
|
||||
#9350 = CLOSED_SHELL('CloseSh1',(#9192,#9203,#9231,#9261,#9291,#9321,#9325,#9326));
|
||||
#9351 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9350);
|
||||
|
||||
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket with conical holes','This is a 3d context using millimeters for linear dimension'));
|
||||
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9351,#1230,#1231,#1232,#1233),#9360);
|
||||
|
||||
#10121 = PLANE('Plane3',#9120);
|
||||
#10122 = CIRCLE('Circ13',#9120,2.5);
|
||||
#10123 = CARTESIAN_POINT('CartPt23',(2.5,0.0,0.0));
|
||||
#10124 = VERTEX_POINT('VertPt13',#10123);
|
||||
#10125 = EDGE_CURVE('EdgeCur13',#10124,#10124,#10122,.T.);
|
||||
#10126 = ORIENTED_EDGE('OriEdge13',*,*,#10125,.T.);
|
||||
#10127 = EDGE_LOOP('EdgeLoop13',(#10126));
|
||||
#10128 = FACE_BOUND('FaceBnd25',#10127,.F.);
|
||||
#10130 = ADVANCED_FACE('AdvFace9',(#10128),#10121,.F.);
|
||||
#10140 = CARTESIAN_POINT('CartPt24',(0.0,0.0,5.0));
|
||||
#10141 = AXIS2_PLACEMENT_3D('Ax2P3D11',#10140,#9103,#9101);
|
||||
#10143 = CIRCLE('Circ14',#10141,5.0);
|
||||
#10144 = CARTESIAN_POINT('CartPt25',(5.0,0.0,5.0));
|
||||
#10145 = VERTEX_POINT('VertPt14',#10144);
|
||||
#10146 = EDGE_CURVE('EdgeCur14',#10145,#10145,#10143,.T.);
|
||||
#10147 = ORIENTED_EDGE('OriEdge14',*,*,#10146,.F.);
|
||||
#10148 = EDGE_LOOP('EdgeLoop14',(#10147));
|
||||
#10149 = FACE_BOUND('FaceBnd26',#10148,.T.);
|
||||
#10150 = FACE_BOUND('FaceBnd27',#10127,.T.);
|
||||
#10160 = CONICAL_SURFACE('ConSur5',#9120,2.5,0.46364761);
|
||||
#10170 = ADVANCED_FACE('AdvFace10',(#10149,#10150),#10160,.T.);
|
||||
#10180 = CARTESIAN_POINT('CartPt26',(0.0,0.0,50.0));
|
||||
#10181 = AXIS2_PLACEMENT_3D('Ax2P3D12',#10180,#9103,#9101);
|
||||
#10182 = CIRCLE('Circ15',#10181,5.0);
|
||||
#10183 = CARTESIAN_POINT('CartPt27',(5.0,0.0,50.0));
|
||||
#10184 = VERTEX_POINT('VertPt15',#10183);
|
||||
#10185 = EDGE_CURVE('EdgeCur15',#10184,#10184,#10182,.T.);
|
||||
#10186 = ORIENTED_EDGE('OriEdge15',*,*,#10185,.F.);
|
||||
#10187 = EDGE_LOOP('EdgeLoop15',(#10186));
|
||||
#10188 = FACE_BOUND('FaceBnd28',#10187,.T.);
|
||||
#10190 = FACE_BOUND('FaceBnd29',#10148,.F.);
|
||||
#10200 = CYLINDRICAL_SURFACE('CylSur3',#10141,5.0);
|
||||
#10210 = ADVANCED_FACE('AdvFace11',(#10188,#10190),#10200,.T.);
|
||||
#10211 = PLANE('Plane4',#10181);
|
||||
#10212 = FACE_BOUND('FaceBnd30',#10187,.F.);
|
||||
#10213 = ADVANCED_FACE('AdvFace12',(#10212),#10211,.T.);
|
||||
#10230 = PLANE('Plane5',#10141);
|
||||
#10232 = ADVANCED_FACE('AdvFace13',(#10190),#10230,.T.);
|
||||
#10233 = ADVANCED_FACE('AdvFace14',(#10149),#10230,.F.);
|
||||
#10240 = CLOSED_SHELL('CloseSh2',(#10130,#10170,#10232));
|
||||
#10250 = CLOSED_SHELL('CloseSh3',(#10233,#10210,#10213));
|
||||
#10260 = MANIFOLD_SOLID_BREP('ManSolBrep2',#10240);
|
||||
#10270 = MANIFOLD_SOLID_BREP('ManSolBrep3',#10250);
|
||||
#10360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case rod with conical tip aspect','This is a 3d context using millimeters for linear dimension'));
|
||||
#10370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep2',(#10260,#10270),#10360);
|
||||
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,220 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
|
||||
FILE_NAME('gasket1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('11113','Flat Ring Gasket','Description for part 11113',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11113',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11113',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Flat Ring Gasket',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11113',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9240);
|
||||
#1081=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of Flat Ring Gasket',#17);
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = CIRCLE('Circ1',#9120,30.0);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(30.0,0.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
|
||||
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
|
||||
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
|
||||
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
|
||||
#9130 = CIRCLE('Circ2',#9120,25.0);
|
||||
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
|
||||
#9132 = VERTEX_POINT('VertPt2',#9131);
|
||||
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
|
||||
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
|
||||
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
|
||||
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
|
||||
#9137 = ADVANCED_FACE('AdvFace1',(#9136,#9128),#9121,.F.);
|
||||
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9142 = PLANE('Plane2',#9141);
|
||||
#9143 = CIRCLE('Circ3',#9141,30.0);
|
||||
#9144 = CARTESIAN_POINT('CartPt5',(30.0,0.0,5.0));
|
||||
#9145 = VERTEX_POINT('VertPt3',#9144);
|
||||
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
|
||||
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
|
||||
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
|
||||
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
|
||||
#9160 = CIRCLE('Circ4',#9141,25.0);
|
||||
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
|
||||
#9162 = VERTEX_POINT('VertPt4',#9161);
|
||||
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
|
||||
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
|
||||
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
|
||||
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
|
||||
#9167 = ADVANCED_FACE('AdvFace2',(#9149,#9166),#9142,.T.);
|
||||
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,30.0);
|
||||
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
|
||||
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
|
||||
#9192 = ADVANCED_FACE('AdvFace3',(#9190,#9191),#9180,.T.);
|
||||
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
|
||||
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
|
||||
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
|
||||
#9203 = ADVANCED_FACE('AdvFace4',(#9201,#9202),#9200,.F.);
|
||||
#9210 = CLOSED_SHELL('CloseSh1',(#9137,#9167,#9192,#9203));
|
||||
#9220 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9210);
|
||||
#9230 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket','This is a 3d context using millimeters for linear dimension'));
|
||||
#9240 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9220),#9230);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,340 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
|
||||
FILE_NAME('gasket2.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('21113','Flat Ring Gasket with Holes','Description for part 21113',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-1234',$,$,(#6));
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 21113',(#1));
|
||||
#1098=PRODUCT_CATEGORY('mechanical','root node');
|
||||
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
|
||||
#1100=PRODUCT_CATEGORY('structural','The structural product category');
|
||||
#1101=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined','Relate the structural to the machined product categories',#1100,#1102);
|
||||
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Machined category',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 21113',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
|
||||
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard',$,'Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1103=PRODUCT('12345','Ring Gasket - Flat with Holes','CDI''s part 12345 description',(#2));
|
||||
#1109=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
|
||||
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Ring Gasket - Flat with Holes ',#1103,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 12345',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
|
||||
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
|
||||
#1082=CONTRACT_TYPE('fixed_price');
|
||||
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
|
||||
#1084=APPROVAL(#1085,'Approved as active project under contract');
|
||||
#1085=APPROVAL_STATUS('approved');
|
||||
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
|
||||
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
|
||||
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
|
||||
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
|
||||
#1090=APPROVAL_ROLE('Authorized the contract');
|
||||
#1105=APPROVAL_DATE_TIME(#1106,#1084);
|
||||
#1106=DATE_AND_TIME(#1107,#1108);
|
||||
#1107=CALENDAR_DATE(1993,3,5);
|
||||
#1108=LOCAL_TIME(10,47,28.0,#29);
|
||||
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
|
||||
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
|
||||
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
|
||||
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
|
||||
|
||||
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9370);
|
||||
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of flat ring gasket with conical holes',#17);
|
||||
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
|
||||
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = CIRCLE('Circ1',#9120,40.0);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(40.0,0.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
|
||||
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
|
||||
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
|
||||
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
|
||||
#9130 = CIRCLE('Circ2',#9120,25.0);
|
||||
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
|
||||
#9132 = VERTEX_POINT('VertPt2',#9131);
|
||||
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
|
||||
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
|
||||
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
|
||||
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
|
||||
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9142 = PLANE('Plane2',#9141);
|
||||
#9143 = CIRCLE('Circ3',#9141,40.0);
|
||||
#9144 = CARTESIAN_POINT('CartPt5',(40.0,0.0,5.0));
|
||||
#9145 = VERTEX_POINT('VertPt3',#9144);
|
||||
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
|
||||
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
|
||||
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
|
||||
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
|
||||
#9160 = CIRCLE('Circ4',#9141,25.0);
|
||||
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
|
||||
#9162 = VERTEX_POINT('VertPt4',#9161);
|
||||
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
|
||||
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
|
||||
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
|
||||
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
|
||||
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,40.0);
|
||||
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
|
||||
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
|
||||
#9192 = ADVANCED_FACE('AdvFace1',(#9190,#9191),#9180,.T.);
|
||||
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
|
||||
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
|
||||
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
|
||||
#9203 = ADVANCED_FACE('AdvFace2',(#9201,#9202),#9200,.F.);
|
||||
#9210 = CARTESIAN_POINT('CartPt7',(0.0,32.5,0.0));
|
||||
#9211 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9210,#9103,#9101);
|
||||
#9212 = CIRCLE('Circ5',#9211,2.5);
|
||||
#9213 = CARTESIAN_POINT('CartPt8',(2.5,32.5,0.0));
|
||||
#9214 = VERTEX_POINT('VertPt5',#9213);
|
||||
#9215 = EDGE_CURVE('EdgeCur5',#9214,#9214,#9212,.T.);
|
||||
#9216 = ORIENTED_EDGE('OriEdge5',*,*,#9215,.T.);
|
||||
#9217 = EDGE_LOOP('EdgeLoop5',(#9216));
|
||||
#9218 = FACE_BOUND('FaceBnd9',#9217,.F.);
|
||||
#9219 = FACE_BOUND('FaceBnd10',#9217,.T.);
|
||||
#9220 = CARTESIAN_POINT('CartPt9',(0.0,32.5,5.0));
|
||||
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9220,#9103,#9101);
|
||||
#9222 = CIRCLE('Circ6',#9221,5.0);
|
||||
#9223 = CARTESIAN_POINT('CartPt10',(5.0,32.5,5.0));
|
||||
#9224 = VERTEX_POINT('VertPt6',#9223);
|
||||
#9225 = EDGE_CURVE('EdgeCur6',#9224,#9224,#9222,.T.);
|
||||
#9226 = ORIENTED_EDGE('OriEdge6',*,*,#9225,.T.);
|
||||
#9227 = EDGE_LOOP('EdgeLoop6',(#9226));
|
||||
#9228 = FACE_BOUND('FaceBnd11',#9227,.T.);
|
||||
#9229 = FACE_BOUND('FaceBnd12',#9227,.F.);
|
||||
#9230 = CONICAL_SURFACE('ConSur1',#9211,2.5,0.46364761);
|
||||
#9231 = ADVANCED_FACE('AdvFace3',(#9218,#9228),#9230,.F.);
|
||||
#9240 = CARTESIAN_POINT('CartPt11',(32.5,0.0,0.0));
|
||||
#9241 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9240,#9103,#9101);
|
||||
#9242 = CIRCLE('Circ7',#9241,2.5);
|
||||
#9243 = CARTESIAN_POINT('CartPt12',(35.0,0.0,0.0));
|
||||
#9244 = VERTEX_POINT('VertPt7',#9243);
|
||||
#9245 = EDGE_CURVE('EdgeCur7',#9244,#9244,#9242,.T.);
|
||||
#9246 = ORIENTED_EDGE('OriEdge7',*,*,#9245,.T.);
|
||||
#9247 = EDGE_LOOP('EdgeLoop7',(#9246));
|
||||
#9248 = FACE_BOUND('FaceBnd13',#9247,.F.);
|
||||
#9249 = FACE_BOUND('FaceBnd14',#9247,.T.);
|
||||
#9250 = CARTESIAN_POINT('CartPt13',(32.5,0.0,5.0));
|
||||
#9251 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9250,#9103,#9101);
|
||||
#9252 = CIRCLE('Circ8',#9251,5.0);
|
||||
#9253 = CARTESIAN_POINT('CartPt14',(37.5,0.0,5.0));
|
||||
#9254 = VERTEX_POINT('VertPt8',#9253);
|
||||
#9255 = EDGE_CURVE('EdgeCur8',#9254,#9254,#9252,.T.);
|
||||
#9256 = ORIENTED_EDGE('OriEdge8',*,*,#9255,.T.);
|
||||
#9257 = EDGE_LOOP('EdgeLoop8',(#9256));
|
||||
#9258 = FACE_BOUND('FaceBnd15',#9257,.T.);
|
||||
#9259 = FACE_BOUND('FaceBnd16',#9257,.F.);
|
||||
#9260 = CONICAL_SURFACE('ConSur2',#9241,2.5,0.46364761);
|
||||
#9261 = ADVANCED_FACE('AdvFace4',(#9248,#9258),#9260,.F.);
|
||||
#9270 = CARTESIAN_POINT('CartPt15',(0.0,-32.5,0.0));
|
||||
#9271 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9270,#9103,#9101);
|
||||
#9272 = CIRCLE('Circ9',#9271,2.5);
|
||||
#9273 = CARTESIAN_POINT('CartPt16',(2.5,-32.5,0.0));
|
||||
#9274 = VERTEX_POINT('VertPt9',#9273);
|
||||
#9275 = EDGE_CURVE('EdgeCur9',#9274,#9274,#9272,.T.);
|
||||
#9276 = ORIENTED_EDGE('OriEdge9',*,*,#9275,.T.);
|
||||
#9277 = EDGE_LOOP('EdgeLoop9',(#9276));
|
||||
#9278 = FACE_BOUND('FaceBnd17',#9277,.F.);
|
||||
#9279 = FACE_BOUND('FaceBnd18',#9277,.T.);
|
||||
#9280 = CARTESIAN_POINT('CartPt17',(0.0,-32.5,5.0));
|
||||
#9281 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9280,#9103,#9101);
|
||||
#9282 = CIRCLE('Circ10',#9281,5.0);
|
||||
#9283 = CARTESIAN_POINT('CartPt18',(5.0,-32.5,5.0));
|
||||
#9284 = VERTEX_POINT('VertPt10',#9283);
|
||||
#9285 = EDGE_CURVE('EdgeCur10',#9284,#9284,#9282,.T.);
|
||||
#9286 = ORIENTED_EDGE('OriEdge10',*,*,#9285,.T.);
|
||||
#9287 = EDGE_LOOP('EdgeLoop10',(#9286));
|
||||
#9288 = FACE_BOUND('FaceBnd19',#9287,.T.);
|
||||
#9289 = FACE_BOUND('FaceBnd20',#9287,.F.);
|
||||
#9290 = CONICAL_SURFACE('ConSur3',#9271,2.5,0.46364761);
|
||||
#9291 = ADVANCED_FACE('AdvFace5',(#9278,#9288),#9290,.F.);
|
||||
#9300 = CARTESIAN_POINT('CartPt19',(-32.5,0.0,0.0));
|
||||
#9301 = AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9103,#9101);
|
||||
#9302 = CIRCLE('Circ11',#9301,2.5);
|
||||
#9303 = CARTESIAN_POINT('CartPt20',(-30.0,0.0,0.0));
|
||||
#9304 = VERTEX_POINT('VertPt11',#9303);
|
||||
#9305 = EDGE_CURVE('EdgeCur11',#9304,#9304,#9302,.T.);
|
||||
#9306 = ORIENTED_EDGE('OriEdge11',*,*,#9305,.T.);
|
||||
#9307 = EDGE_LOOP('EdgeLoop11',(#9306));
|
||||
#9308 = FACE_BOUND('FaceBnd21',#9307,.F.);
|
||||
#9309 = FACE_BOUND('FaceBnd22',#9307,.T.);
|
||||
#9310 = CARTESIAN_POINT('CartPt21',(-32.5,0.0,5.0));
|
||||
#9311 = AXIS2_PLACEMENT_3D('Ax2P3D10',#9310,#9103,#9101);
|
||||
#9312 = CIRCLE('Circ12',#9311,5.0);
|
||||
#9313 = CARTESIAN_POINT('CartPt22',(37.5,0.0,5.0));
|
||||
#9314 = VERTEX_POINT('VertPt12',#9313);
|
||||
#9315 = EDGE_CURVE('EdgeCur12',#9314,#9314,#9312,.T.);
|
||||
#9316 = ORIENTED_EDGE('OriEdge12',*,*,#9315,.T.);
|
||||
#9317 = EDGE_LOOP('EdgeLoop12',(#9316));
|
||||
#9318 = FACE_BOUND('FaceBnd23',#9317,.T.);
|
||||
#9319 = FACE_BOUND('FaceBnd24',#9317,.F.);
|
||||
#9320 = CONICAL_SURFACE('ConSur4',#9301,2.5,0.46364761);
|
||||
#9321 = ADVANCED_FACE('AdvFace6',(#9308,#9318),#9320,.F.);
|
||||
#9325 = ADVANCED_FACE('AdvFace7',(#9128,#9136,#9219,#9249,#9279,#9309),#9121,.F.);
|
||||
#9326 = ADVANCED_FACE('AdvFace8',(#9149,#9166,#9229,#9259,#9289,#9319),#9142,.T.);
|
||||
#9350 = CLOSED_SHELL('CloseSh1',(#9192,#9203,#9231,#9261,#9291,#9321,#9325,#9326));
|
||||
#9351 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9350);
|
||||
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket with conical holes','This is a 3d context using millimeters for linear dimension'));
|
||||
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9351),#9360);
|
||||
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,315 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
|
||||
FILE_NAME('gasket3.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('31113','Flat Semi-elliptical Gasket','Description for part 31113',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
|
||||
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-1234',$,$,(#6));
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 31113',(#1));
|
||||
#1098=PRODUCT_CATEGORY('mechanical','root node');
|
||||
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
|
||||
#1100=PRODUCT_CATEGORY('structural','The structural product category');
|
||||
#1101=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined','Relate the structural to the machined product categories',#1100,#1102);
|
||||
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Machined category',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 31113',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,$,$,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
|
||||
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1103=PRODUCT('12345','Cube Solid','CDI''s part 12345 description',(#2));
|
||||
#1109=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
|
||||
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Cube Solid',#1103,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 12345',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
|
||||
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
|
||||
#1082=CONTRACT_TYPE('fixed_price');
|
||||
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
|
||||
#1084=APPROVAL(#1085,'Approved as active project under contract');
|
||||
#1085=APPROVAL_STATUS('approved');
|
||||
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
|
||||
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
|
||||
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
|
||||
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
|
||||
#1090=APPROVAL_ROLE('Authorized the contract');
|
||||
#1105=APPROVAL_DATE_TIME(#1106,#1084);
|
||||
#1106=DATE_AND_TIME(#1107,#1108);
|
||||
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
|
||||
#1108=LOCAL_TIME(14,21,7.0,#29);
|
||||
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
|
||||
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
|
||||
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
|
||||
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
|
||||
|
||||
|
||||
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9430);
|
||||
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of semi-elliptical gasket',#17);
|
||||
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
|
||||
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
|
||||
#9102 = DIRECTION('Dir2',(0.0,1.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9104 = DIRECTION('Dir4',(0.0,0.0,-1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = ELLIPSE('Ellip1',#9120,40.0,25.0);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(0.0,25.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = CARTESIAN_POINT('CartPt3',(0.0,-25.0,0.0));
|
||||
#9126 = VERTEX_POINT('VertPt2',#9125);
|
||||
#9127 = EDGE_CURVE('EdgeCur1',#9124,#9126,#9122,.T.);
|
||||
#9128 = ORIENTED_EDGE('OriEdge1',*,*,#9127,.F.);
|
||||
#9130 = VECTOR('Vec1',#9102,50.0);
|
||||
#9131 = LINE('Line1',#9125,#9130);
|
||||
#9132 = EDGE_CURVE('EdgeCur2',#9126,#9124,#9131,.T.);
|
||||
#9133 = ORIENTED_EDGE('OriEdge2',*,*,#9132,.F.);
|
||||
#9134 = EDGE_LOOP('EdgeLoop1',(#9128,#9133));
|
||||
#9135 = FACE_BOUND('FaceBnd1',#9134,.T.);
|
||||
#9140 = CARTESIAN_POINT('CartPt4',(-5.0,0.0,0.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9142 = ELLIPSE('Ellip2',#9141,30.0,20.0);
|
||||
#9143 = CARTESIAN_POINT('CartPt5',(-5.0,20.0,0.0));
|
||||
#9144 = VERTEX_POINT('VertPt3',#9143);
|
||||
#9145 = CARTESIAN_POINT('CartPt6',(-5.0,-20.0,0.0));
|
||||
#9146 = VERTEX_POINT('VertPt4',#9145);
|
||||
#9147 = EDGE_CURVE('EdgeCur3',#9144,#9146,#9142,.T.);
|
||||
#9148 = ORIENTED_EDGE('OriEdge3',*,*,#9147,.T.);
|
||||
#9150 = VECTOR('Vec2',#9102,40.0);
|
||||
#9151 = LINE('Line2',#9145,#9150);
|
||||
#9152 = EDGE_CURVE('EdgeCur4',#9146,#9144,#9151,.T.);
|
||||
#9153 = ORIENTED_EDGE('OriEdge4',*,*,#9152,.T.);
|
||||
#9154 = EDGE_LOOP('EdgeLoop2',(#9148,#9153));
|
||||
#9155 = FACE_BOUND('FaceBnd2',#9154,.T.);
|
||||
#9156 = ADVANCED_FACE('AdvFace1',(#9155,#9135),#9121,.F.);
|
||||
#9160 = CARTESIAN_POINT('CartPt7',(0.0,0.0,5.0));
|
||||
#9161 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9160,#9103,#9101);
|
||||
#9162 = PLANE('Plane2',#9161);
|
||||
#9163 = ELLIPSE('Ellip3',#9161,40.0,25.0);
|
||||
#9164 = CARTESIAN_POINT('CartPt8',(0.0,25.0,5.0));
|
||||
#9165 = VERTEX_POINT('VertPt5',#9164);
|
||||
#9166 = CARTESIAN_POINT('CartPt9',(0.0,-25.0,5.0));
|
||||
#9167 = VERTEX_POINT('VertPt6',#9166);
|
||||
#9168 = EDGE_CURVE('EdgeCur5',#9165,#9167,#9163,.T.);
|
||||
#9169 = ORIENTED_EDGE('OriEdge5',*,*,#9168,.T.);
|
||||
#9170 = LINE('Line3',#9166,#9130);
|
||||
#9171 = EDGE_CURVE('EdgeCur6',#9167,#9165,#9170,.T.);
|
||||
#9172 = ORIENTED_EDGE('OriEdge6',*,*,#9171,.T.);
|
||||
#9173 = EDGE_LOOP('EdgeLoop3',(#9169,#9172));
|
||||
#9174 = FACE_BOUND('FaceBnd3',#9173,.T.);
|
||||
#9180 = CARTESIAN_POINT('CartPt10',(-5.0,0.0,5.0));
|
||||
#9181 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9180,#9103,#9101);
|
||||
#9182 = ELLIPSE('Ellip4',#9181,30.0,20.0);
|
||||
#9183 = CARTESIAN_POINT('CartPt11',(-5.0,20.0,5.0));
|
||||
#9184 = VERTEX_POINT('VertPt7',#9183);
|
||||
#9185 = CARTESIAN_POINT('CartPt12',(-5.0,-20.0,5.0));
|
||||
#9186 = VERTEX_POINT('VertPt8',#9185);
|
||||
#9187 = EDGE_CURVE('EdgeCur7',#9184,#9186,#9182,.T.);
|
||||
#9188 = ORIENTED_EDGE('OriEdge7',*,*,#9187,.F.);
|
||||
#9190 = LINE('Line4',#9185,#9150);
|
||||
#9191 = EDGE_CURVE('EdgeCur8',#9186,#9184,#9190,.T.);
|
||||
#9192 = ORIENTED_EDGE('OriEdge8',*,*,#9191,.F.);
|
||||
#9193 = EDGE_LOOP('EdgeLoop4',(#9188,#9192));
|
||||
#9194 = FACE_BOUND('FaceBnd4',#9193,.T.);
|
||||
#9195 = ADVANCED_FACE('AdvFace2',(#9174,#9194),#9162,.T.);
|
||||
#9200 = VECTOR('Vec3',#9103,5.0);
|
||||
#9201 = SURFACE_OF_LINEAR_EXTRUSION('SurLExt1',#9122,#9200);
|
||||
#9210 = ORIENTED_EDGE('OriEdge9',*,*,#9127,.T.);
|
||||
#9220 = LINE('Line5',#9125,#9200);
|
||||
#9221 = EDGE_CURVE('EdgeCur9',#9126,#9167,#9220,.T.);
|
||||
#9222 = ORIENTED_EDGE('OriEdge10',*,*,#9221,.T.);
|
||||
#9230 = ORIENTED_EDGE('OriEdge11',*,*,#9168,.F.);
|
||||
#9240 = LINE('Line6',#9123,#9200);
|
||||
#9241 = EDGE_CURVE('EdgeCur10',#9165,#9124,#9240,.F.);
|
||||
#9242 = ORIENTED_EDGE('OriEdge12',*,*,#9241,.T.);
|
||||
#9250 = EDGE_LOOP('EdgeLoop5',(#9210,#9222,#9230,#9242));
|
||||
#9251 = FACE_BOUND('FaceBnd5',#9250,.T.);
|
||||
#9252 = ADVANCED_FACE('AdvFace3',(#9251),#9201,.T.);
|
||||
#9260 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9100,#9101,#9104);
|
||||
#9261 = PLANE('Plane3',#9260);
|
||||
#9270 = ORIENTED_EDGE('OriEdge13',*,*,#9221,.F.);
|
||||
#9280 = ORIENTED_EDGE('OriEdge14',*,*,#9132,.T.);
|
||||
#9290 = ORIENTED_EDGE('OriEdge15',*,*,#9241,.F.);
|
||||
#9300 = ORIENTED_EDGE('OriEdge16',*,*,#9171,.F.);
|
||||
#9301 = EDGE_LOOP('EdgeLoop6',(#9270,#9280,#9290,#9300));
|
||||
#9302 = FACE_BOUND('FaceBnd6',#9301,.T.);
|
||||
#9303 = ADVANCED_FACE('AdvFace4',(#9302),#9261,.T.);
|
||||
#9310 = SURFACE_OF_LINEAR_EXTRUSION('SurLExt2',#9142,#9200);
|
||||
#9320 = ORIENTED_EDGE('OriEdge17',*,*,#9147,.F.);
|
||||
#9330 = LINE('Line7',#9143,#9200);
|
||||
#9331 = EDGE_CURVE('EdgeCur11',#9144,#9184,#9330,.T.);
|
||||
#9332 = ORIENTED_EDGE('OriEdge18',*,*,#9331,.T.);
|
||||
#9340 = ORIENTED_EDGE('OriEdge19',*,*,#9187,.T.);
|
||||
#9350 = LINE('Line8',#9145,#9200);
|
||||
#9351 = EDGE_CURVE('EdgeCur12',#9146,#9186,#9350,.F.);
|
||||
#9352 = ORIENTED_EDGE('OriEdge20',*,*,#9351,.F.);
|
||||
#9353 = EDGE_LOOP('EdgeLoop7',(#9320,#9332,#9340,#9352));
|
||||
#9354 = FACE_BOUND('FaceBnd7',#9353,.T.);
|
||||
#9355 = ADVANCED_FACE('AdvFace5',(#9354),#9310,.F.);
|
||||
#9360 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9140,#9101,#9104);
|
||||
#9361 = PLANE('Plane4',#9360);
|
||||
#9370 = ORIENTED_EDGE('OriEdge21',*,*,#9152,.F.);
|
||||
#9380 = ORIENTED_EDGE('OriEdge22',*,*,#9351,.T.);
|
||||
#9390 = ORIENTED_EDGE('OriEdge23',*,*,#9191,.T.);
|
||||
#9400 = ORIENTED_EDGE('OriEdge24',*,*,#9331,.F.);
|
||||
#9401 = EDGE_LOOP('EdgeLoop8',(#9370,#9380,#9390,#9400));
|
||||
#9402 = FACE_BOUND('FaceBnd8',#9401,.T.);
|
||||
#9403 = ADVANCED_FACE('AdvFace6',(#9402),#9361,.F.);
|
||||
#9410 = CLOSED_SHELL('CloseSh1',(#9156,#9195,#9252,#9303,#9355,#9403));
|
||||
#9411 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9410);
|
||||
#9420 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case semi-elliptical gasket','This is a 3d context using millimeters for linear dimension'));
|
||||
#9430 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9411),#9420);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,239 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 5 - facetted brep'),'1');
|
||||
FILE_NAME('hex_prism1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('11112','Solid Hexagonal Cylinder','Description for part 11112',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11112',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11112',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Hexagonal Cylinder',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11112',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
|
||||
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9280);
|
||||
#1081=PRODUCT_DEFINITION_SHAPE('FBR_Shape','Shape of Solid Hexagonal Cylinder',#17);
|
||||
#9010 = DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
|
||||
#9040 = (LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.CENTI.,.METRE.));
|
||||
#9041 = LENGTH_MEASURE_WITH_UNIT(POSITIVE_LENGTH_MEASURE(2.54),#9040);
|
||||
#9042 = (CONVERSION_BASED_UNIT('inch',#9041)LENGTH_UNIT()NAMED_UNIT(#9010));
|
||||
#9043 = (NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9044 = (NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9045 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9042,'xx','yy');
|
||||
#9100 = DIRECTION('Dir1',(0.0,0.0,1.0));
|
||||
#9101 = DIRECTION('Dir2',(1.0,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir4',(0.0,0.0,-1.0));
|
||||
#9104 = DIRECTION('Dir5',(-1.0,0.0,0.0));
|
||||
#9120 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9121 = CARTESIAN_POINT('CartPt2',(0.0,2.0,0.0));
|
||||
#9122 = CARTESIAN_POINT('CartPt3',(1.7320508,3.0,0.0));
|
||||
#9123 = CARTESIAN_POINT('CartPt4',(3.4641016,2.0,0.0));
|
||||
#9124 = CARTESIAN_POINT('CartPt5',(3.4641016,0.0,0.0));
|
||||
#9125 = CARTESIAN_POINT('CartPt6',(1.7320508,-1.0,0.0));
|
||||
#9126 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9120,#9100,#9101);
|
||||
#9127 = PLANE('Plane1',#9126);
|
||||
#9128 = POLY_LOOP('PolyLoop1',(#9120,#9121,#9122,#9123,#9124,#9125));
|
||||
#9129 = FACE_BOUND('FaceBnd1',#9128,.T.);
|
||||
#9130 = FACE_SURFACE('FaceSurf1',(#9129),#9127,.F.);
|
||||
#9150 = CARTESIAN_POINT('CartPt7',(0.0,0.0,8.0));
|
||||
#9151 = CARTESIAN_POINT('CartPt8',(0.0,2.0,8.0));
|
||||
#9152 = CARTESIAN_POINT('CartPt9',(1.7320508,3.0,8.0));
|
||||
#9153 = CARTESIAN_POINT('CartPt10',(3.4641016,2.0,8.0));
|
||||
#9154 = CARTESIAN_POINT('CartPt11',(3.4641016,0.0,8.0));
|
||||
#9155 = CARTESIAN_POINT('CartPt12',(1.7320508,-1.0,8.0));
|
||||
#9156 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9150,#9100,#9101);
|
||||
#9157 = PLANE('Plane2',#9156);
|
||||
#9158 = POLY_LOOP('PolyLoop2',(#9150,#9151,#9152,#9153,#9154,#9155));
|
||||
#9159 = FACE_BOUND('FaceBnd2',#9158,.F.);
|
||||
#9160 = FACE_SURFACE('FaceSurf2',(#9159),#9157,.T.);
|
||||
#9180 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9120,#9101,#9103);
|
||||
#9181 = PLANE('Plane3',#9180);
|
||||
#9182 = POLY_LOOP('PolyLoop3',(#9120,#9121,#9151,#9150));
|
||||
#9183 = FACE_BOUND('FaceBnd3',#9182,.F.);
|
||||
#9184 = FACE_SURFACE('FaceSurf3',(#9183),#9181,.F.);
|
||||
#9190 = DIRECTION('Dir6',(0.5,-0.8660254,0.0));
|
||||
#9191 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9121,#9190,#9103);
|
||||
#9192 = PLANE('Plane4',#9191);
|
||||
#9193 = POLY_LOOP('PolyLoop4',(#9121,#9122,#9152,#9151));
|
||||
#9194 = FACE_BOUND('FaceBnd4',#9193,.F.);
|
||||
#9195 = FACE_SURFACE('FaceSurf4',(#9194),#9192,.F.);
|
||||
#9200 = DIRECTION('Dir7',(-0.5,-0.8660254,0.0));
|
||||
#9201 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9122,#9200,#9103);
|
||||
#9202 = PLANE('Plane5',#9201);
|
||||
#9203 = POLY_LOOP('PolyLoop5',(#9122,#9123,#9153,#9152));
|
||||
#9204 = FACE_BOUND('FaceBnd5',#9203,.F.);
|
||||
#9205 = FACE_SURFACE('FaceSurf5',(#9204),#9202,.F.);
|
||||
#9210 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9123,#9104,#9100);
|
||||
#9211 = PLANE('Plane6',#9210);
|
||||
#9212 = POLY_LOOP('PolyLoop6',(#9123,#9124,#9154,#9153));
|
||||
#9213 = FACE_BOUND('FaceBnd6',#9212,.F.);
|
||||
#9214 = FACE_SURFACE('FaceSurf6',(#9213),#9211,.F.);
|
||||
#9220 = DIRECTION('Dir8',(-0.5,0.8660254,0.0));
|
||||
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9124,#9220,#9100);
|
||||
#9222 = PLANE('Plane7',#9221);
|
||||
#9223 = POLY_LOOP('PolyLoop7',(#9124,#9154,#9155,#9125));
|
||||
#9224 = FACE_BOUND('FaceBnd7',#9223,.T.);
|
||||
#9225 = FACE_SURFACE('FaceSurf7',(#9224),#9222,.F.);
|
||||
#9230 = DIRECTION('Dir9',(0.5,0.8660254,0.0));
|
||||
#9231 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9125,#9230,#9100);
|
||||
#9232 = PLANE('Plane8',#9231);
|
||||
#9233 = POLY_LOOP('PolyLoop8',(#9125,#9120,#9150,#9155));
|
||||
#9234 = FACE_BOUND('FaceBnd8',#9233,.F.);
|
||||
#9235 = FACE_SURFACE('FaceSurf8',(#9234),#9232,.F.);
|
||||
#9250 = CLOSED_SHELL('CloseSh1',(#9130,#9160,#9184,#9195,#9205,#9214,#9225,#9235));
|
||||
#9260 = FACETED_BREP('FacedBrep1',#9250);
|
||||
#9270 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9045))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9042,#9043,#9044))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for facetted brep test case','This is a 3d context using inches for linear dimension'));
|
||||
#9280 = FACETED_BREP_SHAPE_REPRESENTATION('FBShapeRep1',(#9260),#9270);
|
||||
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,264 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
|
||||
FILE_NAME('rod_aspect1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('41113','Rod with Conical Tip','Description for part 41113',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
|
||||
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-4306',$,$,(#6));
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#2101=PRODUCT_CATEGORY_RELATIONSHIP('root-to-standard','Relate the root to the standard product category',#1098,#1109);
|
||||
#1109=PRODUCT_CATEGORY('standard_part','Identifies this as a standard part') ;
|
||||
#1101=PRODUCT_CATEGORY_RELATIONSHIP('standard-to-detail','Relate the standard to the detail product category',#1109,#9);
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 41113',(#1));
|
||||
#1098=PRODUCT_CATEGORY('mechanical','mechanical product category: root node');
|
||||
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
|
||||
#1100=PRODUCT_CATEGORY('structural','The structural product category');
|
||||
#1110=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined', 'Relates the structural to the machined category',#1100,#1102) ;
|
||||
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','The machined product category',(#1));
|
||||
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 41113',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,$,$,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
|
||||
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1103=PRODUCT('12345','Conical Tip Rod','CDI''s part 12345 description',(#2));
|
||||
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
|
||||
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Conical Tip Rod ',#1103,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1111=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1112,#1115,(#1032));
|
||||
#1112=DATE_AND_TIME(#1113,#1114);
|
||||
#1113=CALENDAR_DATE(1993,1,10);
|
||||
#1114=LOCAL_TIME(9,$,$,#29);
|
||||
#1115=DATE_TIME_ROLE('declassification_date');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1017=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('D2','Description of product for part 1234',#1010,#1018, (#1116));
|
||||
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
#1116=DOCUMENT('rod_aspectA.dhc','Conical Tip Rod CAD file','CAD file for Rod with Conical Tip',#1117);
|
||||
#1117=DOCUMENT_TYPE('cad_filename');
|
||||
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
|
||||
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
|
||||
#1082=CONTRACT_TYPE('fixed_price');
|
||||
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
|
||||
#1084=APPROVAL(#1085,'Approved as active project under contract');
|
||||
#1085=APPROVAL_STATUS('approved');
|
||||
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
|
||||
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
|
||||
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
|
||||
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
|
||||
#1090=APPROVAL_ROLE('Authorized the contract');
|
||||
#1105=APPROVAL_DATE_TIME(#1106,#1084);
|
||||
#1106=DATE_AND_TIME(#1107,#1108);
|
||||
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
|
||||
#1108=LOCAL_TIME(14,21,7.0,#29);
|
||||
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
|
||||
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
|
||||
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
|
||||
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
|
||||
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9370);
|
||||
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of rod with conical tip',#17);
|
||||
#1202=SHAPE_DEFINITION_REPRESENTATION(#1201,#9390);
|
||||
#9020=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = CIRCLE('Circ1',#9120,2.5);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(2.5,0.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
|
||||
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
|
||||
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
|
||||
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
|
||||
#9130 = ADVANCED_FACE('AdvFace1',(#9128),#9121,.F.);
|
||||
#9140 = CARTESIAN_POINT('CartPt3',(0.0,0.0,5.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9143 = CIRCLE('Circ2',#9141,5.0);
|
||||
#9144 = CARTESIAN_POINT('CartPt4',(5.0,0.0,5.0));
|
||||
#9145 = VERTEX_POINT('VertPt2',#9144);
|
||||
#9146 = EDGE_CURVE('EdgeCur2',#9145,#9145,#9143,.T.);
|
||||
#9147 = ORIENTED_EDGE('OriEdge2',*,*,#9146,.F.);
|
||||
#9148 = EDGE_LOOP('EdgeLoop2',(#9147));
|
||||
#9149 = FACE_BOUND('FaceBnd2',#9148,.T.);
|
||||
#9150 = FACE_BOUND('FaceBnd3',#9127,.T.);
|
||||
#9160 = CONICAL_SURFACE('ConSur1',#9120,2.5,0.46364761);
|
||||
#9170 = ADVANCED_FACE('AdvFace2',(#9149,#9150),#9160,.T.);
|
||||
#9180 = CARTESIAN_POINT('CartPt5',(0.0,0.0,50.0));
|
||||
#9181 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9180,#9103,#9101);
|
||||
#9182 = CIRCLE('Circ3',#9181,5.0);
|
||||
#9183 = CARTESIAN_POINT('CartPt6',(5.0,0.0,50.0));
|
||||
#9184 = VERTEX_POINT('VertPt3',#9183);
|
||||
#9185 = EDGE_CURVE('EdgeCur3',#9184,#9184,#9182,.T.);
|
||||
#9186 = ORIENTED_EDGE('OriEdge3',*,*,#9185,.F.);
|
||||
#9187 = EDGE_LOOP('EdgeLoop3',(#9186));
|
||||
#9188 = FACE_BOUND('FaceBnd4',#9187,.T.);
|
||||
#9190 = FACE_BOUND('FaceBnd5',#9148,.F.);
|
||||
#9200 = CYLINDRICAL_SURFACE('CylSur1',#9141,5.0);
|
||||
#9210 = ADVANCED_FACE('AdvFace3',(#9188,#9190),#9200,.T.);
|
||||
#9211 = PLANE('Plane2',#9181);
|
||||
#9212 = FACE_BOUND('FaceBnd6',#9187,.F.);
|
||||
#9213 = ADVANCED_FACE('AdvFace4',(#9212),#9211,.T.);
|
||||
#9230 = PLANE('Plane3',#9141);
|
||||
#9232 = ADVANCED_FACE('AdvFace5',(#9190),#9230,.T.);
|
||||
#9233 = ADVANCED_FACE('AdvFace6',(#9149),#9230,.F.);
|
||||
#9240 = CLOSED_SHELL('CloseSh1',(#9130,#9170,#9232));
|
||||
#9250 = CLOSED_SHELL('CloseSh2',(#9233,#9210,#9213));
|
||||
#9260 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9240);
|
||||
#9270 = MANIFOLD_SOLID_BREP('ManSolBrep2',#9250);
|
||||
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9260,#9270),#9360);
|
||||
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case rod with conical tip aspect','This is a 3d context using millimeters for linear dimension'));
|
||||
#9390 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep2',(#9260),#9380);
|
||||
#9380 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case conical tip aspect of rod','This is a 3d context using millimeters for linear dimension'));
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,467 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
|
||||
FILE_NAME('star1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('11114','Star Cog','Description for part 11114',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11114',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11114',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Star Cog ',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11114',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9810);
|
||||
#1201=PRODUCT_DEFINITION_SHAPE('GBWR_Shape','Shape of Star Cog',#17);
|
||||
#9101=CARTESIAN_POINT('CartPt1',(0.0, 0.0, 0.5));
|
||||
#9102=CARTESIAN_POINT('CartPt2',(0.125, 0.4841, 0.5));
|
||||
#9103=CARTESIAN_POINT('CartPt3',(0.125, 0.7500, 0.5));
|
||||
#9104=CARTESIAN_POINT('CartPt4',(-0.125, 0.4841, 0.5));
|
||||
#9105=CARTESIAN_POINT('CartPt5',(-0.125, 0.7500, 0.5));
|
||||
#9107=DIRECTION('Dir1',(0.0, 0.0, 1.0));
|
||||
#9108=AXIS2_PLACEMENT_3D('Ax2P3D1',#9101,#9107, $);
|
||||
#9109=CIRCLE('Circ1',#9108, 0.500);
|
||||
#9110=TRIMMED_CURVE('TrimCur1',#9109, (#9102), (#9104), .F., .CARTESIAN.);
|
||||
#9111=POLYLINE('PolyLine1',(#9102,#9103,#9105,#9104));
|
||||
#9120=CARTESIAN_POINT('CartPt6',(0.0, 0.0, 0.0));
|
||||
#9121=CARTESIAN_POINT('CartPt7',(0.125, 0.4841, 0.0));
|
||||
#9122=CARTESIAN_POINT('CartPt8',(0.125, 0.7500, 0.0));
|
||||
#9123=CARTESIAN_POINT('CartPt9',(-0.125, 0.4841, 0.0));
|
||||
#9124=CARTESIAN_POINT('CartPt10',(-0.125, 0.7500, 0.0));
|
||||
#9128=AXIS2_PLACEMENT_3D('Ax2P3D2',#9120,#9107, $);
|
||||
#9129=CIRCLE('Circ2',#9128, 0.500);
|
||||
#9130=TRIMMED_CURVE('TrimCur2',#9129, (#9121), (#9123), .F., .UNSPECIFIED.);
|
||||
#9131=POLYLINE('PolyLine2',(#9121,#9122,#9124,#9123));
|
||||
#9140=CIRCLE('Circ3',#9108, 2.880);
|
||||
#9141=CIRCLE('Circ4',#9128, 2.880);
|
||||
#9145=CARTESIAN_POINT('CartPt11',(0.25, 1.5, 0.5));
|
||||
#9146=CARTESIAN_POINT('CartPt12',(0.25, 1.5, 0.0));
|
||||
#9150=CARTESIAN_POINT('CartPt13',(0.25, 2.8691, 0.5));
|
||||
#9151=CARTESIAN_POINT('CartPt14',(0.25, 2.8691, 0.0));
|
||||
#9153=POLYLINE('PolyLine3',(#9150,#9145,#9146,#9151));
|
||||
#9155=CARTESIAN_POINT('CartPt15',(0.6013, 2.8165, 0.5));
|
||||
#9156=CARTESIAN_POINT('CartPt16',(0.6013, 2.8165, 0.0));
|
||||
#9158=TRIMMED_CURVE('TrimCur3',#9140, (#9150), (#9155), .F., .CARTESIAN.);
|
||||
#9159=TRIMMED_CURVE('TrimCur4',#9141, (#9151), (#9156), .F., .CARTESIAN.);
|
||||
#9160=CARTESIAN_POINT('CartPt17',(2.1386, 1.9290, 0.5));
|
||||
#9161=CARTESIAN_POINT('CartPt18',(2.1386, 1.9290, 0.0));
|
||||
#9170=CARTESIAN_POINT('CartPt19',(1.81, 3.1350, 0.5));
|
||||
#9171=AXIS2_PLACEMENT_3D('Ax2P3D3',#9170,#9107, $);
|
||||
#9172=CIRCLE('Circ5',#9171, 1.25);
|
||||
#9173=TRIMMED_CURVE('TrimCur5',#9172, (#9155), (#9160), .T., .CARTESIAN.);
|
||||
#9175=CARTESIAN_POINT('CartPt20',(1.81, 3.1350, 0.0));
|
||||
#9176=AXIS2_PLACEMENT_3D('Ax2P3D4',#9175,#9107, $);
|
||||
#9177=CIRCLE('Circ6',#9176, 1.25);
|
||||
#9178=TRIMMED_CURVE('TrimCur6',#9177, (#9156), (#9161), .T., .CARTESIAN.);
|
||||
#9180=CARTESIAN_POINT('CartPt21',(2.3579, 1.6511, 0.5));
|
||||
#9181=CARTESIAN_POINT('CartPt22',(2.3579, 1.6511, 0.0));
|
||||
#9183=CARTESIAN_POINT('CartPt23',(1.1740, 0.9665, 0.5));
|
||||
#9184=CARTESIAN_POINT('CartPt24',(1.1740, 0.9665, 0.0));
|
||||
#9185=POLYLINE('PolyLine4',(#9180,#9183,#9184,#9181));
|
||||
#9186=CARTESIAN_POINT('CartPt25',(1.0825, 0.625, 0.5));
|
||||
#9187=CARTESIAN_POINT('CartPt26',(1.0825, 0.625, 0.0));
|
||||
#9190=CARTESIAN_POINT('CartPt27',(1.4240, 0.5335, 0.5));
|
||||
#9191=CARTESIAN_POINT('CartPt28',(1.4240, 0.5335, 0.0));
|
||||
#9194=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot1',1, (#9183,#9186,#9190), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9195=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot2',1, (#9184,#9187,#9191), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9196=CARTESIAN_POINT('CartPt29',(2.6097, 1.2181, 0.5));
|
||||
#9197=CARTESIAN_POINT('CartPt30',(2.6097, 1.2181, 0.0));
|
||||
#9198=POLYLINE('PolyLine5',(#9190,#9196,#9197,#9191));
|
||||
#9200=CARTESIAN_POINT('CartPt31',(2.7398, 0.8876, 0.5));
|
||||
#9201=CARTESIAN_POINT('CartPt32',(2.7398, 0.8876, 0.0));
|
||||
#9205=CARTESIAN_POINT('CartPt33',(2.7398, -0.8876, 0.5));
|
||||
#9206=CARTESIAN_POINT('CartPt34',(2.7398, -0.8876, 0.0));
|
||||
#9208=CARTESIAN_POINT('CartPt35',(3.62, 0.0, 0.5));
|
||||
#9209=AXIS2_PLACEMENT_3D('Ax2P3D5',#9208,#9107, $);
|
||||
#9210=CIRCLE('Circ7',#9209, 1.25);
|
||||
#9211=TRIMMED_CURVE('TrimCur7',#9210, (#9200), (#9205), .T., .CARTESIAN.);
|
||||
#9212=CARTESIAN_POINT('CartPt36',(3.62, 0.0, 0.0));
|
||||
#9213=AXIS2_PLACEMENT_3D('Ax2P3D6',#9212,#9107, $);
|
||||
#9214=CIRCLE('Circ8',#9213, 1.25);
|
||||
#9215=TRIMMED_CURVE('TrimCur8',#9214, (#9201), (#9206), .T., .CARTESIAN.);
|
||||
#9220=CARTESIAN_POINT('CartPt37',(2.6097, -1.2181, 0.5));
|
||||
#9221=CARTESIAN_POINT('CartPt38',(2.6097, -1.2181, 0.0));
|
||||
#9225=CARTESIAN_POINT('CartPt39',(1.4240, -0.5335, 0.5));
|
||||
#9226=CARTESIAN_POINT('CartPt40',(1.4240, -0.5335, 0.0));
|
||||
#9227=POLYLINE('PolyLine6',(#9220,#9225,#9226,#9221));
|
||||
#9230=CARTESIAN_POINT('CartPt41',(1.0825, -0.625, 0.5));
|
||||
#9231=CARTESIAN_POINT('CartPt42',(1.0825, -0.625, 0.0));
|
||||
#9235=CARTESIAN_POINT('CartPt43',(1.1740, -0.9665, 0.5));
|
||||
#9236=CARTESIAN_POINT('CartPt44',(1.1740, -0.9665, 0.0));
|
||||
#9238=QUASI_UNIFORM_CURVE('QUnifCur1',1, (#9225,#9230,#9235), .POLYLINE_FORM., .F., .F.);
|
||||
#9239=QUASI_UNIFORM_CURVE('QUnifCur2',1, (#9226,#9231,#9236),.UNSPECIFIED., .U., .U.);
|
||||
#9240=CARTESIAN_POINT('CartPt45',(2.3579, -1.6511, 0.5));
|
||||
#9241=CARTESIAN_POINT('CartPt46',(2.3579, -1.6511, 0.0));
|
||||
#9242=POLYLINE('PolyLine7',(#9235,#9240,#9241,#9236));
|
||||
#9245=CARTESIAN_POINT('CartPt47',(2.1386, -1.9290, 0.5));
|
||||
#9246=CARTESIAN_POINT('CartPt48',(2.1386, -1.9290, 0.0));
|
||||
#9250=CARTESIAN_POINT('CartPt49',(0.6013, -2.8165, 0.5));
|
||||
#9251=CARTESIAN_POINT('CartPt50',(0.6013, -2.8165, 0.0));
|
||||
#9255=CARTESIAN_POINT('CartPt51',(1.81, -3.1350, 0.5));
|
||||
#9256=AXIS2_PLACEMENT_3D('Ax2P3D7',#9255,#9107, $);
|
||||
#9257=CIRCLE('Circ9',#9256, 1.25);
|
||||
#9258=TRIMMED_CURVE('TrimCur9',#9257, (#9245), (#9250), .T., .CARTESIAN.);
|
||||
#9260=CARTESIAN_POINT('CartPt52',(1.81, -3.1350, 0.0));
|
||||
#9261=AXIS2_PLACEMENT_3D('Ax2P3D8',#9260,#9107, $);
|
||||
#9262=CIRCLE('Circ10',#9261, 1.25);
|
||||
#9263=TRIMMED_CURVE('TrimCur10',#9262, (#9246), (#9251), .T., .CARTESIAN.);
|
||||
#9265=CARTESIAN_POINT('CartPt53',(0.25, -2.8691, 0.5));
|
||||
#9266=CARTESIAN_POINT('CartPt54',(0.25, -2.8691, 0.0));
|
||||
#9270=CARTESIAN_POINT('CartPt55',(0.25, -1.5, 0.5));
|
||||
#9271=CARTESIAN_POINT('CartPt56',(0.25, -1.5, 0.0));
|
||||
#9272=POLYLINE('PolyLine8',(#9265,#9270,#9271,#9266));
|
||||
#9275=CARTESIAN_POINT('CartPt57',(0.0, -1.25, 0.5));
|
||||
#9276=CARTESIAN_POINT('CartPt58',(0.0, -1.25, 0.0));
|
||||
#9280=CARTESIAN_POINT('CartPt59',(-0.25, -1.5, 0.5));
|
||||
#9281=CARTESIAN_POINT('CartPt60',(-0.25, -1.5, 0.0));
|
||||
#9283=QUASI_UNIFORM_CURVE('QUnifCur3',1, (#9270,#9275,#9280), .POLYLINE_FORM., .U., .U.);
|
||||
#9284=QUASI_UNIFORM_CURVE('QUnifCur4',1, (#9271,#9276,#9281), .UNSPECIFIED., .F., .F.);
|
||||
#9285=CARTESIAN_POINT('CartPt61',(-0.25, -2.8691, 0.5));
|
||||
#9286=CARTESIAN_POINT('CartPt62',(-0.25, -2.8691, 0.0));
|
||||
#9287=POLYLINE('PolyLine9',(#9280,#9285,#9286,#9281));
|
||||
#9290=CARTESIAN_POINT('CartPt63',(-0.6013, -2.8165, 0.5));
|
||||
#9291=CARTESIAN_POINT('CartPt64',(-0.6013, -2.8165, 0.0));
|
||||
#9295=CARTESIAN_POINT('CartPt65',(-2.1386, -1.9290, 0.5));
|
||||
#9296=CARTESIAN_POINT('CartPt66',(-2.1386, -1.9290, 0.0));
|
||||
#9300=CARTESIAN_POINT('CartPt67',(-1.81, -3.1350, 0.5));
|
||||
#9301=AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9107, $);
|
||||
#9302=CIRCLE('Circ11',#9301, 1.25);
|
||||
#9303=TRIMMED_CURVE('TrimCur11',#9302, (#9290), (#9295), .T., .CARTESIAN.);
|
||||
#9305=CARTESIAN_POINT('CartPt68',(-1.81, -3.1350, 0.0));
|
||||
#9306=AXIS2_PLACEMENT_3D('Ax2P3D10',#9305,#9107, $);
|
||||
#9307=CIRCLE('Circ12',#9306, 1.25);
|
||||
#9308=TRIMMED_CURVE('TrimCur12',#9307, (#9291), (#9296), .T., .CARTESIAN.);
|
||||
#9310=CARTESIAN_POINT('CartPt69',(-2.3579, -1.6511, 0.5));
|
||||
#9311=CARTESIAN_POINT('CartPt70',(-2.3579, -1.6511, 0.0));
|
||||
#9315=CARTESIAN_POINT('CartPt71',(-1.1740, -0.9665, 0.5));
|
||||
#9316=CARTESIAN_POINT('CartPt72',(-1.1740, -0.9665, 0.0));
|
||||
#9317=POLYLINE('PolyLine10',(#9310,#9315,#9316,#9311));
|
||||
#9320=CARTESIAN_POINT('CartPt73',(-1.0825, -0.625, 0.5));
|
||||
#9321=CARTESIAN_POINT('CartPt74',(-1.0825, -0.625, 0.0));
|
||||
#9325=CARTESIAN_POINT('CartPt75',(-1.4240, -0.5335, 0.5));
|
||||
#9326=CARTESIAN_POINT('CartPt76',(-1.4240, -0.5335, 0.0));
|
||||
#9328=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot3',1, (#9315,#9320,#9325), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9329=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot4',1, (#9316,#9321,#9326), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9330=CARTESIAN_POINT('CartPt77',(-2.6097, -1.2181, 0.5));
|
||||
#9331=CARTESIAN_POINT('CartPt78',(-2.6097, -1.2181, 0.0));
|
||||
#9332=POLYLINE('PolyLine11',(#9325,#9330,#9331,#9326));
|
||||
#9335=CARTESIAN_POINT('CartPt79',(-2.7398, -0.8876, 0.5));
|
||||
#9336=CARTESIAN_POINT('CartPt80',(-2.7398, -0.8876, 0.0));
|
||||
#9340=CARTESIAN_POINT('CartPt81',(-2.7398, 0.8876, 0.5));
|
||||
#9341=CARTESIAN_POINT('CartPt82',(-2.7398, 0.8876, 0.0));
|
||||
#9345=CARTESIAN_POINT('CartPt83',(-3.62, 0.0, 0.5));
|
||||
#9346=AXIS2_PLACEMENT_3D('Ax2P3D11',#9345,#9107, $);
|
||||
#9347=CIRCLE('Circ13',#9346, 1.25);
|
||||
#9348=TRIMMED_CURVE('TrimCur13',#9347, (#9335), (#9340), .T., .CARTESIAN.);
|
||||
#9350=CARTESIAN_POINT('CartPt84',(-3.62, 0.0, 0.0));
|
||||
#9351=AXIS2_PLACEMENT_3D('Ax2P3D12',#9350,#9107, $);
|
||||
#9352=CIRCLE('Circ14',#9351, 1.25);
|
||||
#9353=TRIMMED_CURVE('TrimCur14',#9352, (#9336), (#9341), .T., .CARTESIAN.);
|
||||
#9355=CARTESIAN_POINT('CartPt85',(-2.6097, 1.2181, 0.5));
|
||||
#9356=CARTESIAN_POINT('CartPt86',(-2.6097, 1.2181, 0.0));
|
||||
#9360=CARTESIAN_POINT('CartPt87',(-1.4240, 0.5335, 0.5));
|
||||
#9361=CARTESIAN_POINT('CartPt88',(-1.4240, 0.5335, 0.0));
|
||||
#9362=POLYLINE('PolyLine12',(#9355,#9360,#9361,#9356));
|
||||
#9365=CARTESIAN_POINT('CartPt89',(-1.0825, 0.625, 0.5));
|
||||
#9366=CARTESIAN_POINT('CartPt90',(-1.0825, 0.625, 0.0));
|
||||
#9370=CARTESIAN_POINT('CartPt91',(-1.1740, 0.9665, 0.5));
|
||||
#9371=CARTESIAN_POINT('CartPt92',(-1.1740, 0.9665, 0.0));
|
||||
#9373=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot5',1, (#9360,#9365,#9370), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9374=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot6',1, (#9361,#9366,#9371), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9375=CARTESIAN_POINT('CartPt93',(-2.3579, 1.6511, 0.5));
|
||||
#9376=CARTESIAN_POINT('CartPt94',(-2.3579, 1.6511, 0.0));
|
||||
#9377=POLYLINE('PolyLine13',(#9370,#9375,#9376,#9371));
|
||||
#9380=CARTESIAN_POINT('CartPt95',(-2.1386, 1.9290, 0.5));
|
||||
#9381=CARTESIAN_POINT('CartPt96',(-2.1386, 1.9290, 0.0));
|
||||
#9385=CARTESIAN_POINT('CartPt97',(-0.6013, 2.8165, 0.5));
|
||||
#9386=CARTESIAN_POINT('CartPt98',(-0.6013, 2.8165, 0.0));
|
||||
#9390=CARTESIAN_POINT('CartPt99',(-1.81, 3.1350, 0.5));
|
||||
#9391=AXIS2_PLACEMENT_3D('Ax2P3D13',#9390,#9107, $);
|
||||
#9392=CIRCLE('Circ15',#9391, 1.25);
|
||||
#9393=TRIMMED_CURVE('TrimCur15',#9392, (#9380), (#9385), .T., .CARTESIAN.);
|
||||
#9395=CARTESIAN_POINT('CartPt100',(-1.81, 3.1350, 0.0));
|
||||
#9396=AXIS2_PLACEMENT_3D('Ax2P3D14',#9395,#9107, $);
|
||||
#9397=CIRCLE('Circ16',#9396, 1.25);
|
||||
#9398=TRIMMED_CURVE('TrimCur16',#9397, (#9381), (#9386), .T., .CARTESIAN.);
|
||||
#9400=CARTESIAN_POINT('CartPt101',(-0.25, 2.8691, 0.5));
|
||||
#9401=CARTESIAN_POINT('CartPt102',(-0.25, 2.8691, 0.0));
|
||||
|
||||
#9405=CARTESIAN_POINT('CartPt103',(-0.25, 1.50, 0.5));
|
||||
#9406=CARTESIAN_POINT('CartPt104',(-0.25, 1.50, 0.0));
|
||||
#9407=POLYLINE('PolyLine14',(#9400,#9405,#9406,#9401));
|
||||
|
||||
#9410=CARTESIAN_POINT('CartPt105',(0.0, 1.25, 0.5));
|
||||
#9411=CARTESIAN_POINT('CartPt106',(0.0, 1.25, 0.0));
|
||||
#9413=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot7',1, (#9405,#9410,#9145), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9414=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot8',1, (#9406,#9411,#9146), .POLYLINE_FORM., .F.,
|
||||
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
|
||||
#9450=TRIMMED_CURVE('TrimCur17',#9140, (#9160), (#9180), .F., .CARTESIAN.);
|
||||
#9451=TRIMMED_CURVE('TrimCur18',#9141, (#9161), (#9181), .F., .CARTESIAN.);
|
||||
#9460=TRIMMED_CURVE('TrimCur19',#9140, (#9196), (#9200), .F., .CARTESIAN.);
|
||||
#9461=TRIMMED_CURVE('TrimCur20',#9141, (#9197), (#9201), .F., .CARTESIAN.);
|
||||
#9470=TRIMMED_CURVE('TrimCur21',#9140, (#9205), (#9220), .F., .CARTESIAN.);
|
||||
#9471=TRIMMED_CURVE('TrimCur22',#9141, (#9206), (#9221), .F., .CARTESIAN.);
|
||||
#9480=TRIMMED_CURVE('TrimCur23',#9140, (#9240), (#9245), .F., .CARTESIAN.);
|
||||
#9481=TRIMMED_CURVE('TrimCur24',#9141, (#9241), (#9246), .F., .CARTESIAN.);
|
||||
#9490=TRIMMED_CURVE('TrimCur25',#9140, (#9250), (#9265), .F., .CARTESIAN.);
|
||||
#9491=TRIMMED_CURVE('TrimCur26',#9141, (#9251), (#9266), .F., .CARTESIAN.);
|
||||
#9500=TRIMMED_CURVE('TrimCur27',#9140, (#9285), (#9290), .F., .CARTESIAN.);
|
||||
#9501=TRIMMED_CURVE('TrimCur28',#9141, (#9286), (#9291), .F., .CARTESIAN.);
|
||||
#9510=TRIMMED_CURVE('TrimCur29',#9140, (#9295), (#9310), .F., .CARTESIAN.);
|
||||
#9511=TRIMMED_CURVE('TrimCur30',#9141, (#9296), (#9311), .F., .CARTESIAN.);
|
||||
#9520=TRIMMED_CURVE('TrimCur31',#9140, (#9330), (#9335), .F., .CARTESIAN.);
|
||||
#9521=TRIMMED_CURVE('TrimCur32',#9141, (#9331), (#9336), .F., .CARTESIAN.);
|
||||
#9530=TRIMMED_CURVE('TrimCur33',#9140, (#9340), (#9355), .F., .CARTESIAN.);
|
||||
#9531=TRIMMED_CURVE('TrimCur34',#9141, (#9341), (#9356), .F., .CARTESIAN.);
|
||||
#9540=TRIMMED_CURVE('TrimCur35',#9140, (#9375), (#9380), .F., .CARTESIAN.);
|
||||
#9541=TRIMMED_CURVE('TrimCur36',#9141, (#9376), (#9381), .F., .CARTESIAN.);
|
||||
#9550=TRIMMED_CURVE('TrimCur37',#9140, (#9385), (#9400), .F., .CARTESIAN.);
|
||||
#9551=TRIMMED_CURVE('TrimCur38',#9141, (#9386), (#9401), .F., .CARTESIAN.);
|
||||
#9560 = VECTOR('Vec1',#9107,1.0);
|
||||
#9561 = LINE('Line1',#9121,#9560);
|
||||
#9562 = TRIMMED_CURVE('TrimCur39',#9561,(#9121),(#9102),.T.,.CARTESIAN.);
|
||||
#9565 = LINE('Line2',#9122,#9560);
|
||||
#9566 = TRIMMED_CURVE('TrimCur40',#9565,(#9121),(#9103),.T.,.CARTESIAN.);
|
||||
#9570 = LINE('Line3',#9124,#9560);
|
||||
#9571 = TRIMMED_CURVE('TrimCur41',#9570,(#9124),(#9105),.T.,.CARTESIAN.);
|
||||
#9575 = LINE('Line4',#9123,#9560);
|
||||
#9576 = TRIMMED_CURVE('TrimCur42',#9575,(#9123),(#9104),.T.,.CARTESIAN.);
|
||||
#9580 = LINE('Line5',#9151,#9560);
|
||||
#9581 = TRIMMED_CURVE('TrimCur43',#9580,(#9151),(#9150),.T.,.CARTESIAN.);
|
||||
#9585 = LINE('Line6',#9156,#9560);
|
||||
#9586 = TRIMMED_CURVE('TrimCur44',#9585,(#9156),(#9155),.T.,.CARTESIAN.);
|
||||
#9590 = LINE('Line7',#9161,#9560);
|
||||
#9591 = TRIMMED_CURVE('TrimCur45',#9590,(#9161),(#9160),.T.,.CARTESIAN.);
|
||||
#9595 = LINE('Line8',#9181,#9560);
|
||||
#9596 = TRIMMED_CURVE('TrimCur46',#9595,(#9181),(#9180),.T.,.CARTESIAN.);
|
||||
#9600 = LINE('Line9',#9187,#9560);
|
||||
#9601 = TRIMMED_CURVE('TrimCur47',#9600,(#9187),(#9186),.T.,.CARTESIAN.);
|
||||
#9605 = LINE('Line10',#9191,#9560);
|
||||
#9606 = TRIMMED_CURVE('TrimCur48',#9605,(#9191),(#9190),.T.,.CARTESIAN.);
|
||||
#9610 = LINE('Line11',#9201,#9560);
|
||||
#9611 = TRIMMED_CURVE('TrimCur49',#9610,(#9201),(#9200),.T.,.CARTESIAN.);
|
||||
#9615 = LINE('Line12',#9206,#9560);
|
||||
#9616 = TRIMMED_CURVE('TrimCur50',#9615,(#9206),(#9205),.T.,.CARTESIAN.);
|
||||
#9620 = LINE('Line13',#9221,#9560);
|
||||
#9621 = TRIMMED_CURVE('TrimCur51',#9620,(#9221),(#9220),.T.,.CARTESIAN.);
|
||||
#9625 = LINE('Line14',#9231,#9560);
|
||||
#9626 = TRIMMED_CURVE('TrimCur52',#9625,(#9231),(#9230),.T.,.CARTESIAN.);
|
||||
#9630 = LINE('Line15',#9236,#9560);
|
||||
#9631 = TRIMMED_CURVE('TrimCur53',#9630,(#9236),(#9235),.T.,.CARTESIAN.);
|
||||
#9635 = LINE('Line16',#9246,#9560);
|
||||
#9636 = TRIMMED_CURVE('TrimCur54',#9635,(#9246),(#9245),.T.,.CARTESIAN.);
|
||||
#9640 = LINE('Line17',#9251,#9560);
|
||||
#9641 = TRIMMED_CURVE('TrimCur55',#9640,(#9251),(#9250),.T.,.CARTESIAN.);
|
||||
#9645 = LINE('Line18',#9266,#9560);
|
||||
#9646 = TRIMMED_CURVE('TrimCur56',#9645,(#9266),(#9265),.T.,.CARTESIAN.);
|
||||
#9650 = LINE('Line19',#9276,#9560);
|
||||
#9651 = TRIMMED_CURVE('TrimCur57',#9650,(#9276),(#9275),.T.,.CARTESIAN.);
|
||||
#9655 = LINE('Line20',#9281,#9560);
|
||||
#9656 = TRIMMED_CURVE('TrimCur58',#9655,(#9281),(#9280),.T.,.CARTESIAN.);
|
||||
#9660 = LINE('Line21',#9291,#9560);
|
||||
#9661 = TRIMMED_CURVE('TrimCur59',#9660,(#9291),(#9290),.T.,.CARTESIAN.);
|
||||
#9665 = LINE('Line22',#9296,#9560);
|
||||
#9666 = TRIMMED_CURVE('TrimCur60',#9665,(#9296),(#9295),.T.,.CARTESIAN.);
|
||||
#9670 = LINE('Line23',#9311,#9560);
|
||||
#9671 = TRIMMED_CURVE('TrimCur61',#9670,(#9311),(#9310),.T.,.CARTESIAN.);
|
||||
#9675 = LINE('Line24',#9321,#9560);
|
||||
#9676 = TRIMMED_CURVE('TrimCur62',#9675,(#9321),(#9320),.T.,.CARTESIAN.);
|
||||
#9680 = LINE('Line25',#9326,#9560);
|
||||
#9681 = TRIMMED_CURVE('TrimCur63',#9680,(#9326),(#9325),.T.,.CARTESIAN.);
|
||||
#9685 = LINE('Line26',#9336,#9560);
|
||||
#9686 = TRIMMED_CURVE('TrimCur64',#9685,(#9336),(#9335),.T.,.CARTESIAN.);
|
||||
#9690 = LINE('Line27',#9341,#9560);
|
||||
#9691 = TRIMMED_CURVE('TrimCur65',#9690,(#9341),(#9340),.T.,.CARTESIAN.);
|
||||
#9695 = LINE('Line28',#9356,#9560);
|
||||
#9696 = TRIMMED_CURVE('TrimCur66',#9695,(#9356),(#9355),.T.,.CARTESIAN.);
|
||||
#9700 = LINE('Line29',#9366,#9560);
|
||||
#9701 = TRIMMED_CURVE('TrimCur67',#9700,(#9366),(#9365),.T.,.CARTESIAN.);
|
||||
#9705 = LINE('Line30',#9371,#9560);
|
||||
#9706 = TRIMMED_CURVE('TrimCur68',#9705,(#9371),(#9370),.T.,.CARTESIAN.);
|
||||
#9710 = LINE('Line31',#9381,#9560);
|
||||
#9711 = TRIMMED_CURVE('TrimCur69',#9710,(#9381),(#9380),.T.,.CARTESIAN.);
|
||||
#9715 = LINE('Line32',#9386,#9560);
|
||||
#9716 = TRIMMED_CURVE('TrimCur70',#9715,(#9386),(#9385),.T.,.CARTESIAN.);
|
||||
#9720 = LINE('Line33',#9401,#9560);
|
||||
#9721 = TRIMMED_CURVE('TrimCur71',#9720,(#9401),(#9400),.T.,.CARTESIAN.);
|
||||
#9725 = LINE('Line34',#9411,#9560);
|
||||
#9726 = TRIMMED_CURVE('TrimCur72',#9725,(#9411),(#9410),.T.,.CARTESIAN.);
|
||||
#9800 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9110,#9111,#9130,#9131,
|
||||
#9562,#9566,#9571,#9576,#9581,#9153, #9586,#9158,#9159,#9591,#9173,
|
||||
#9178,#9596,#9185, #9601,#9606,#9194,#9195,#9198,#9611,
|
||||
#9616,#9211,#9215, #9621,#9227,#9626,#9631,#9238,
|
||||
#9239,#9242,#9636,#9641, #9258,#9263,#9646,#9272,
|
||||
#9651,#9656,#9283,#9284,#9287, #9661,#9666,#9303,
|
||||
#9308,#9671,#9317,#9676, #9681,#9328,#9329,#9332,#9686,#9691,
|
||||
#9348,#9353,#9696, #9362,#9701,#9706,#9373,#9374,
|
||||
#9377,#9711,#9716,#9393, #9398,#9721,#9407,#9726,
|
||||
#9413,#9414,#9450,#9451,#9460,#9461,#9470,#9471,#9480,#9481,#9490,#9491,
|
||||
#9500,#9501,#9510,#9511,#9520,#9521,#9530,#9531,#9540,#9541,#9550,#9551));
|
||||
#9815=DIMENSIONAL_EXPONENTS(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
|
||||
#9822=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.CENTI.,.METRE.));
|
||||
#9824=LENGTH_MEASURE_WITH_UNIT(POSITIVE_LENGTH_MEASURE(2.54),#9822);
|
||||
#9825=(CONVERSION_BASED_UNIT('inch',#9824)LENGTH_UNIT()NAMED_UNIT(#9815));
|
||||
#9826=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9827=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9828 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9829))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9825,#9826,#9827))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for gbwr test case star','This is a 3d context using inches for linear dimension'));
|
||||
#9829 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9825,'xx','yy');
|
||||
#9810=GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('gbwsr',(#9800),#9828);
|
||||
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
+31
-169
@@ -1,174 +1,36 @@
|
||||
# To build one or more schemas, configure with
|
||||
# 'cmake -DSC_BUILD_SCHEMAS="path/to/schema.exp;path/to/schema2.exp"
|
||||
# you can specify a schema in 3 ways:
|
||||
# * path relative to build dir
|
||||
# * path relative to sc/data (this dir)
|
||||
# * absolute path
|
||||
#
|
||||
# cmake goes through the above options in order until it finds one
|
||||
# that exists. if ${path} is a dir, cmake expects to find a single
|
||||
# .exp file inside, which it uses. otherwise, ${path} is assumed to
|
||||
# be an express file.
|
||||
|
||||
MACRO(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path)
|
||||
string(REPLACE "${SC_SOURCE_DIR}" "" subpath "${current_dir}")
|
||||
string(REGEX REPLACE "^/" "" subpath "${subpath}")
|
||||
string(LENGTH "${subpath}" PATH_LENGTH)
|
||||
if(PATH_LENGTH GREATER 0)
|
||||
set(${rel_path} "..")
|
||||
get_filename_component(subpath "${subpath}" PATH)
|
||||
string(LENGTH "${subpath}" PATH_LENGTH)
|
||||
while(PATH_LENGTH GREATER 0)
|
||||
set(${rel_path} "${${rel_path}}/..")
|
||||
get_filename_component(subpath "${subpath}" PATH)
|
||||
string(LENGTH "${subpath}" PATH_LENGTH)
|
||||
endwhile(PATH_LENGTH GREATER 0)
|
||||
endif(PATH_LENGTH GREATER 0)
|
||||
ENDMACRO(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path)
|
||||
if(NOT "${SC_BUILD_EXPRESS_ONLY}" AND NOT "${SC_BUILD_SCHEMAS}" STREQUAL "")
|
||||
include(${SC_CMAKE_DIR}/schema_scanner/schemaScanner.cmake)
|
||||
foreach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
|
||||
get_filename_component(name ${src} NAME_WE)
|
||||
message(STATUS "Additional SDAI executable: ${name}")
|
||||
endforeach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
|
||||
|
||||
# This function runs fedex on one express file. The generated source goes in a dir
|
||||
# in the build dir, and it is compiled into a library. A p21read executable is
|
||||
# compiled and linked to the lib. p21read is used to test the lib.
|
||||
FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
|
||||
if( EXISTS "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}" ) #is it a path relative to build dir?
|
||||
set( SCHEMA_FILE "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}" )
|
||||
elseif( EXISTS "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}" ) # path relative to STEPcode/data?
|
||||
set( SCHEMA_FILE "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}" )
|
||||
elseif( NOT EXISTS ${SCHEMA_FILE} ) # absolute path
|
||||
message( FATAL_ERROR "Cannot find ${CMAKE_BINARY_DIR}/${SCHEMA_FILE} or ${SC_SOURCE_DIR}/data/${SCHEMA_FILE} or ${SCHEMA_FILE}" )
|
||||
endif()
|
||||
|
||||
if( IS_DIRECTORY ${SCHEMA_FILE} ) #if it is a dir, look for one .exp file inside
|
||||
file(GLOB SCHEMA_FILE ${SCHEMA_FILE}/*.exp )
|
||||
endif()
|
||||
|
||||
if( NOT EXISTS ${SCHEMA_FILE} )
|
||||
message(FATAL_ERROR "Expected one express file. Found '${SCHEMA_FILE}' instead.")
|
||||
endif()
|
||||
|
||||
# read the schema name from a line like 'SCHEMA AUTOMOTIVE_DESIGN;'
|
||||
file(STRINGS ${SCHEMA_FILE} SCHEMA_STATEMENT LIMIT_COUNT 1 REGEX "^SCHEMA .*")
|
||||
string(REGEX REPLACE "^SCHEMA \(.*\)\;$" "\\1" SCHEMA_N ${SCHEMA_STATEMENT} )
|
||||
string(TOUPPER ${SCHEMA_N} SCHEMA_LONG_NAME) #fedex_plus always uses upper case for file names
|
||||
get_filename_component( SCHEMA_SN ${SCHEMA_FILE} NAME )
|
||||
string( REGEX REPLACE "\(.*\).[Ee][Xx][Pp]" "\\1" SCHEMA_SHORT_NAME ${SCHEMA_SN} )
|
||||
|
||||
project( sdai_${SCHEMA_SHORT_NAME} )
|
||||
message( STATUS "Generating code for ${SCHEMA_SHORT_NAME}.")
|
||||
set( SCHEMA_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${SCHEMA_SHORT_NAME} )
|
||||
|
||||
#the names of the files that will be generated
|
||||
set( FEDEX_OUT ${SCHEMA_OUTPUT_DIR}/compstructs.cc ${SCHEMA_OUTPUT_DIR}/Sdaiclasses.h
|
||||
${SCHEMA_OUTPUT_DIR}/schema.cc ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.cc
|
||||
${SCHEMA_OUTPUT_DIR}/schema.h ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.h
|
||||
${SCHEMA_OUTPUT_DIR}/SdaiAll.cc ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.init.cc )
|
||||
|
||||
# *cannot* use include_directories() because the includes keep piling up - if building
|
||||
# multiple schemas, each one will use the include dirs from all previous schemas. Since
|
||||
# one header (schema.h) is always named the same, this will not work. only workaround
|
||||
# seems to be set_target_properties( <target> PROPERTIES COMPILE_FLAGS <flags> )
|
||||
set( ${PROJECT_NAME}_COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR} -I${SC_SOURCE_DIR}/src/cldai -I${SC_SOURCE_DIR}/src/cleditor -I${SC_SOURCE_DIR}/src/clutils -I${SCHEMA_OUTPUT_DIR} -I${SC_SOURCE_DIR}/src/clstepcore -I${SC_SOURCE_DIR}/src/base" )
|
||||
|
||||
add_custom_target( generate_cpp_${SCHEMA_SHORT_NAME} SOURCES ${FEDEX_OUT} )
|
||||
add_custom_command( OUTPUT ${SCHEMA_OUTPUT_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${SCHEMA_OUTPUT_DIR}
|
||||
COMMENT "Creating ${SCHEMA_OUTPUT_DIR} for schema ${SCHEMA_SHORT_NAME}")
|
||||
add_custom_command( OUTPUT ${FEDEX_OUT}
|
||||
COMMAND fedex_plus ARGS ${SCHEMA_FILE}
|
||||
DEPENDS ${SCHEMA_FILE} ${SCHEMA_OUTPUT_DIR}
|
||||
WORKING_DIRECTORY ${SCHEMA_OUTPUT_DIR}
|
||||
COMMENT "Running fedex_plus for ${SCHEMA_SHORT_NAME}..."
|
||||
VERBATIM )
|
||||
|
||||
if( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
|
||||
# Coverage will always be sparse on schema libs. Compiling the libs with the -fprofile-arcs and
|
||||
# -ftest-coverage is extremely slow. We can avoid that by temporarily changing build type to release.
|
||||
set( PREV_BUILD_TYPE ${CMAKE_BUILD_TYPE} )
|
||||
set( CMAKE_BUILD_TYPE "Release" )
|
||||
endif( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
|
||||
|
||||
# if testing is enabled, "TESTABLE" sets property EXCLUDE_FROM_ALL and prevents installation
|
||||
SC_ADDLIB( ${PROJECT_NAME} "${FEDEX_OUT}" "stepdai;stepcore;express;stepeditor;steputils;base" "TESTABLE" )
|
||||
add_dependencies( ${PROJECT_NAME} generate_cpp_${SCHEMA_SHORT_NAME} )
|
||||
set_target_properties( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
|
||||
${${PROJECT_NAME}_COMPILE_FLAGS} )
|
||||
|
||||
if( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
|
||||
set( CMAKE_BUILD_TYPE ${PREV_BUILD_TYPE} )
|
||||
endif( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
|
||||
|
||||
add_test( NAME generate_cpp_${SCHEMA_SHORT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} --build .
|
||||
--target generate_cpp_${SCHEMA_SHORT_NAME}
|
||||
--config $<CONFIGURATION> )
|
||||
add_test( NAME build_cpp_${PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} --build .
|
||||
--target p21read_${PROJECT_NAME}
|
||||
--config $<CONFIGURATION> )
|
||||
if(NOT WIN32)
|
||||
add_test( NAME build_lazy_cpp_${PROJECT_NAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} --build .
|
||||
--target lazy_${PROJECT_NAME}
|
||||
--config $<CONFIGURATION> )
|
||||
endif(NOT WIN32)
|
||||
|
||||
# label the tests and set dependencies
|
||||
set_tests_properties( generate_cpp_${SCHEMA_SHORT_NAME} PROPERTIES LABELS cpp_schema_gen )
|
||||
if(NOT WIN32)
|
||||
set_tests_properties( build_lazy_cpp_${PROJECT_NAME} build_cpp_${PROJECT_NAME} PROPERTIES DEPENDS generate_cpp_${SCHEMA_SHORT_NAME} LABELS cpp_schema_build )
|
||||
endif(NOT WIN32)
|
||||
|
||||
RELATIVE_PATH_TO_TOPLEVEL(${CMAKE_CURRENT_SOURCE_DIR} RELATIVE_PATH_COMPONENT)
|
||||
SC_ADDEXEC( p21read_${PROJECT_NAME} "${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc" "${PROJECT_NAME};base" "TESTABLE" )
|
||||
if(NOT WIN32)
|
||||
SC_ADDEXEC( lazy_${PROJECT_NAME} "${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc" "${PROJECT_NAME};steplazyfile;stepeditor" "TESTABLE" )
|
||||
endif(NOT WIN32)
|
||||
add_dependencies( p21read_${PROJECT_NAME} version_string )
|
||||
if(NOT WIN32)
|
||||
add_dependencies( lazy_${PROJECT_NAME} version_string )
|
||||
endif(NOT WIN32)
|
||||
set_target_properties( p21read_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
|
||||
${${PROJECT_NAME}_COMPILE_FLAGS} )
|
||||
if(NOT WIN32)
|
||||
set_target_properties( lazy_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${${PROJECT_NAME}_COMPILE_FLAGS} -I${SC_SOURCE_DIR}/src/base/judy/src" )
|
||||
endif(NOT WIN32)
|
||||
|
||||
|
||||
#add user-defined executables
|
||||
foreach( src ${SC_SDAI_ADDITIONAL_EXES_SRCS} )
|
||||
get_filename_component( name ${src} NAME_WE )
|
||||
get_filename_component( path ${src} ABSOLUTE )
|
||||
SC_ADDEXEC( ${name}_${PROJECT_NAME} "${src}" "${PROJECT_NAME};base" "TESTABLE" )
|
||||
add_dependencies( ${name}_${PROJECT_NAME} version_string )
|
||||
set_target_properties( ${name}_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
|
||||
"${${PROJECT_NAME}_COMPILE_FLAGS} -I${path}" )
|
||||
endforeach( src ${SC_SDAI_ADDITIONAL_EXES_SRCS} )
|
||||
|
||||
#find all part 21 files in schema dir, add a test for each one
|
||||
get_filename_component( SCHEMA_DIR ${SCHEMA_FILE} PATH )
|
||||
file( GLOB_RECURSE P21_FILES ${SCHEMA_DIR}/*.stp ${SCHEMA_DIR}/*.step ${SCHEMA_DIR}/*.p21 ${SCHEMA_DIR}/*.ifc )
|
||||
foreach( TEST_FILE ${P21_FILES} )
|
||||
get_filename_component( FNAME ${TEST_FILE} NAME_WE )
|
||||
add_test( NAME read_write_cpp_${SCHEMA_SHORT_NAME}_${FNAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND p21read_${PROJECT_NAME} ${TEST_FILE} )
|
||||
set_tests_properties( read_write_cpp_${SCHEMA_SHORT_NAME}_${FNAME} PROPERTIES DEPENDS build_cpp_${PROJECT_NAME} LABELS cpp_schema_rw )
|
||||
if(NOT WIN32)
|
||||
add_test( NAME read_lazy_cpp_${SCHEMA_SHORT_NAME}_${FNAME}
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND lazy_${PROJECT_NAME} ${TEST_FILE} )
|
||||
set_tests_properties( read_lazy_cpp_${SCHEMA_SHORT_NAME}_${FNAME} PROPERTIES DEPENDS build_lazy_cpp_${PROJECT_NAME} LABELS cpp_schema_rw )
|
||||
endif(NOT WIN32)
|
||||
endforeach()
|
||||
|
||||
ENDFUNCTION(BUILD_A_SCHEMA)
|
||||
|
||||
#----------------------------------------------------------------------------------------------------
|
||||
|
||||
if( DEFINED SC_BUILD_SCHEMAS )
|
||||
foreach( src ${SC_SDAI_ADDITIONAL_EXES_SRCS} )
|
||||
get_filename_component( name ${src} NAME_WE )
|
||||
message( STATUS "Additional SDAI executable: ${name}" )
|
||||
endforeach( src ${SC_SDAI_ADDITIONAL_EXES_SRCS} )
|
||||
|
||||
if( SC_BUILD_SCHEMAS STREQUAL "ALL" )
|
||||
file( GLOB_RECURSE SC_BUILD_SCHEMAS ${SC_SOURCE_DIR}/data/*.exp )
|
||||
endif()
|
||||
foreach( ap ${SC_BUILD_SCHEMAS} )
|
||||
BUILD_A_SCHEMA( ${ap} )
|
||||
endforeach()
|
||||
if(SC_BUILD_SCHEMAS STREQUAL "ALL")
|
||||
file(GLOB_RECURSE SC_BUILD_SCHEMAS ${SC_SOURCE_DIR}/data/*.exp)
|
||||
endif()
|
||||
foreach(FILE ${SC_BUILD_SCHEMAS})
|
||||
# figure out an absolute path to the file
|
||||
LOCATE_SCHEMA(${FILE} abspath)
|
||||
SCHEMA_CMLIST(${abspath})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
(* This is a MODIFIED version of AP203 Amd. 1.
|
||||
The change was to remove a useless IF...ELSE...ENDIF statement that always evaluated
|
||||
the same way. Statements in the branch that was never executed caused problems with
|
||||
the same way. Statements in the branch that were never executed caused problems with
|
||||
libexpress, and it was easier to modify the schema than to come up with a generic
|
||||
fix for libexpress. This change does *not* affect the behavior of the schema.
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
SCHEMA config_control_design;
|
||||
|
||||
CONSTANT
|
||||
(* FIXME: gcc error on next statement with c99/POSIX:
|
||||
Syntax error: "(" unexpected
|
||||
*)
|
||||
dummy_gri : geometric_representation_item := representation_item('') ||
|
||||
geometric_representation_item();
|
||||
dummy_tri : topological_representation_item := representation_item('')
|
||||
|
||||
@@ -217,7 +217,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
|
||||
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_CURVE.CROD',((
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CROD',((
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.))));
|
||||
#637538443= CURVE_3D_ELEMENT_PROPERTY('PROD.1','',(#637538445),(
|
||||
@@ -784,7 +784,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
);
|
||||
#637539490= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539494= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_WEDGE.CPENTA',
|
||||
#637539494= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_WEDGE.CPENTA',
|
||||
(ENUMERATED_VOLUME_ELEMENT_PURPOSE(.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637539496= VOLUME_3D_ELEMENT_REPRESENTATION('367',(#637539489),
|
||||
#637539490,(#637539284,#637539280,#637539252,#637539424,#637539420,
|
||||
@@ -1074,7 +1074,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539781= VOLUME_3D_ELEMENT_REPRESENTATION('272',(#637539489),
|
||||
#637539490,(#637538832,#637538864,#637539000,#637538976),#637538282,
|
||||
#637539784,#637539460);
|
||||
#637539784= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637539784= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637539786= VOLUME_3D_ELEMENT_REPRESENTATION('271',(#637539489),
|
||||
@@ -1797,7 +1797,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637540503= VOLUME_3D_ELEMENT_REPRESENTATION('32',(#637539489),
|
||||
#637539490,(#637538500,#637538504,#637538524,#637538520,#637538560,
|
||||
#637538564,#637538584,#637538580),#637538282,#637540506,#637539460);
|
||||
#637540506= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637540506= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637540508= VOLUME_3D_ELEMENT_REPRESENTATION('31',(#637539489),
|
||||
@@ -784,7 +784,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
);
|
||||
#637539488= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539492= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_WEDGE.CPENTA',
|
||||
#637539492= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_WEDGE.CPENTA',
|
||||
(ENUMERATED_VOLUME_ELEMENT_PURPOSE(.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637539494= VOLUME_3D_ELEMENT_REPRESENTATION('367',(#637539487),
|
||||
#637539488,(#637539282,#637539278,#637539250,#637539422,#637539418,
|
||||
@@ -1074,7 +1074,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539779= VOLUME_3D_ELEMENT_REPRESENTATION('272',(#637539487),
|
||||
#637539488,(#637538830,#637538862,#637538998,#637538974),#637538280,
|
||||
#637539782,#637539458);
|
||||
#637539782= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637539782= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637539784= VOLUME_3D_ELEMENT_REPRESENTATION('271',(#637539487),
|
||||
@@ -1797,7 +1797,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637540501= VOLUME_3D_ELEMENT_REPRESENTATION('32',(#637539487),
|
||||
#637539488,(#637538498,#637538502,#637538522,#637538518,#637538558,
|
||||
#637538562,#637538582,#637538578),#637538280,#637540504,#637539458);
|
||||
#637540504= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637540504= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637540506= VOLUME_3D_ELEMENT_REPRESENTATION('31',(#637539487),
|
||||
@@ -784,7 +784,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
);
|
||||
#637539490= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539494= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_WEDGE.CPENTA',
|
||||
#637539494= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_WEDGE.CPENTA',
|
||||
(ENUMERATED_VOLUME_ELEMENT_PURPOSE(.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637539496= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637539497,
|
||||
#637539487,.F.,(#637539499,#637539504,#637539509,#637539514,#637539519,
|
||||
@@ -5698,7 +5698,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((3.419102,7.558704,4.948215,-9.982081,
|
||||
#637542876= VOLUME_3D_ELEMENT_REPRESENTATION('272',(#637539489),
|
||||
#637539490,(#637538832,#637538864,#637539000,#637538976),#637538282,
|
||||
#637542879,#637539460);
|
||||
#637542879= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637542879= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637542881= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637539497,
|
||||
@@ -15071,7 +15071,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((167.411,-189.9718,-234.8069,113.0858,
|
||||
#637549373= VOLUME_3D_ELEMENT_REPRESENTATION('32',(#637539489),
|
||||
#637539490,(#637538500,#637538504,#637538524,#637538520,#637538560,
|
||||
#637538564,#637538584,#637538580),#637538282,#637549376,#637539460);
|
||||
#637549376= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637549376= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637549378= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637539497,
|
||||
@@ -217,7 +217,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538431= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
|
||||
#637538433= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538437= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_CURVE.CROD',((
|
||||
#637538437= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CROD',((
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.))));
|
||||
#637538441= CURVE_3D_ELEMENT_PROPERTY('PROD.1','',(#637538443),(
|
||||
@@ -217,7 +217,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
|
||||
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_CURVE.CROD',((
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CROD',((
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.))));
|
||||
#637538443= CURVE_3D_ELEMENT_PROPERTY('PROD.1','',(#637538445),(
|
||||
@@ -217,7 +217,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
|
||||
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_CURVE.CBAR*',((
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CBAR*',((
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Y_Y_BENDING.),
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Z_Z_BENDING.)),(
|
||||
@@ -217,7 +217,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538431= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
|
||||
#637538433= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538437= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_CURVE.CBAR*',((
|
||||
#637538437= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CBAR*',((
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Y_Y_BENDING.),
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Z_Z_BENDING.)),(
|
||||
@@ -217,7 +217,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
|
||||
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_CURVE.CBAR*',((
|
||||
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CBAR*',((
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Y_Y_BENDING.),
|
||||
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Z_Z_BENDING.)),(
|
||||
@@ -346,7 +346,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538689= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637538690= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538694= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637538694= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TRIANGLE.CTRIA3',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -503,7 +503,7 @@ UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.));
|
||||
#637538690,(#637538456,#637538460,#637538504,#637538500),#637538282,
|
||||
#637538847,#637538699,#637538660);
|
||||
#637538845= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637538847= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637538847= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_QUADRILATERAL.CQUAD4',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -346,7 +346,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538687= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637538688= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538692= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637538692= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TRIANGLE.CTRIA3',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -503,7 +503,7 @@ UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.));
|
||||
#637538688,(#637538454,#637538458,#637538502,#637538498),#637538280,
|
||||
#637538845,#637538697,#637538658);
|
||||
#637538843= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637538845= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637538845= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_QUADRILATERAL.CQUAD4',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -346,7 +346,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637538689= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637538690= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637538694= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637538694= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TRIANGLE.CTRIA3',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -1375,7 +1375,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((-500.0138,-127.7892,0.,25.74217,0.,0.)
|
||||
#637538690,(#637538456,#637538460,#637538504,#637538500),#637538282,
|
||||
#637539434,#637538699,#637538660);
|
||||
#637539432= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637539434= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637539434= SURFACE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_QUADRILATERAL.CQUAD4',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -719,7 +719,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
);
|
||||
#637539370= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539374= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_WEDGE.CPENTA',
|
||||
#637539374= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_WEDGE.CPENTA',
|
||||
(ENUMERATED_VOLUME_ELEMENT_PURPOSE(.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637539376= VOLUME_3D_ELEMENT_REPRESENTATION('367',(#637539369),
|
||||
#637539370,(#637538804,#637539184,#637539160,#637538924,#637539304,
|
||||
@@ -1009,7 +1009,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539661= VOLUME_3D_ELEMENT_REPRESENTATION('272',(#637539369),
|
||||
#637539370,(#637538800,#637538548,#637538944,#637538572),#637538282,
|
||||
#637539664,#637539340);
|
||||
#637539664= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637539664= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637539666= VOLUME_3D_ELEMENT_REPRESENTATION('271',(#637539369),
|
||||
@@ -1732,7 +1732,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637540383= VOLUME_3D_ELEMENT_REPRESENTATION('32',(#637539369),
|
||||
#637539370,(#637538500,#637538504,#637538524,#637538520,#637538560,
|
||||
#637538564,#637538584,#637538580),#637538282,#637540386,#637539340);
|
||||
#637540386= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637540386= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637540388= VOLUME_3D_ELEMENT_REPRESENTATION('31',(#637539369),
|
||||
@@ -719,7 +719,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
);
|
||||
#637539368= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539372= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_WEDGE.CPENTA',
|
||||
#637539372= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_WEDGE.CPENTA',
|
||||
(ENUMERATED_VOLUME_ELEMENT_PURPOSE(.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637539374= VOLUME_3D_ELEMENT_REPRESENTATION('367',(#637539367),
|
||||
#637539368,(#637538802,#637539182,#637539158,#637538922,#637539302,
|
||||
@@ -1009,7 +1009,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539659= VOLUME_3D_ELEMENT_REPRESENTATION('272',(#637539367),
|
||||
#637539368,(#637538798,#637538546,#637538942,#637538570),#637538280,
|
||||
#637539662,#637539338);
|
||||
#637539662= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637539662= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637539664= VOLUME_3D_ELEMENT_REPRESENTATION('271',(#637539367),
|
||||
@@ -1732,7 +1732,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637540381= VOLUME_3D_ELEMENT_REPRESENTATION('32',(#637539367),
|
||||
#637539368,(#637538498,#637538502,#637538522,#637538518,#637538558,
|
||||
#637538562,#637538582,#637538578),#637538280,#637540384,#637539338);
|
||||
#637540384= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637540384= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637540386= VOLUME_3D_ELEMENT_REPRESENTATION('31',(#637539367),
|
||||
@@ -719,7 +719,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
);
|
||||
#637539370= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539374= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,'LINEAR_WEDGE.CPENTA',
|
||||
#637539374= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_WEDGE.CPENTA',
|
||||
(ENUMERATED_VOLUME_ELEMENT_PURPOSE(.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637539376= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637539377,
|
||||
#637539367,.F.,(#637539379,#637539384,#637539389,#637539394,#637539399,
|
||||
@@ -5633,7 +5633,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((3.419102,7.558704,4.948215,-9.982081,
|
||||
#637542756= VOLUME_3D_ELEMENT_REPRESENTATION('272',(#637539369),
|
||||
#637539370,(#637538800,#637538548,#637538944,#637538572),#637538282,
|
||||
#637542759,#637539340);
|
||||
#637542759= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637542759= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637542761= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637539377,
|
||||
@@ -15006,7 +15006,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((167.411,-189.9718,-234.8069,113.0858,
|
||||
#637549253= VOLUME_3D_ELEMENT_REPRESENTATION('32',(#637539369),
|
||||
#637539370,(#637538500,#637538504,#637538524,#637538520,#637538560,
|
||||
#637538564,#637538584,#637538580),#637538282,#637549256,#637539340);
|
||||
#637549256= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR.,
|
||||
#637549256= VOLUME_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,
|
||||
'LINEAR_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637549258= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637539377,
|
||||
@@ -687,7 +687,7 @@ SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
|
||||
#637539350= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637539351= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539355= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637539355= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_QUADRILATERAL.CQUAD8',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -896,7 +896,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539351,(#637538532,#637538372,#637538328,#637539004,#637538744,
|
||||
#637539008),#637538282,#637539515,#637539360,#637539363);
|
||||
#637539513= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637539515= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637539515= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_TRIANGLE.CTRIA6',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -687,7 +687,7 @@ SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
|
||||
#637539348= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637539349= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539353= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637539353= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_QUADRILATERAL.CQUAD8',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -896,7 +896,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539349,(#637538530,#637538370,#637538326,#637539002,#637538742,
|
||||
#637539006),#637538280,#637539513,#637539358,#637539361);
|
||||
#637539511= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637539513= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637539513= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_TRIANGLE.CTRIA6',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -687,7 +687,7 @@ SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
|
||||
#637539350= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637539351= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637539355= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637539355= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_QUADRILATERAL.CQUAD8',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -3640,7 +3640,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((-783.8278,3524.98,0.,-750.8163,0.,0.))
|
||||
#637539351,(#637538532,#637538372,#637538328,#637539004,#637538744,
|
||||
#637539008),#637538282,#637541306,#637539360,#637539363);
|
||||
#637541304= PARAMETRIC_SURFACE_3D_ELEMENT_COORDINATE_SYSTEM('',1,0.);
|
||||
#637541306= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637541306= SURFACE_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_TRIANGLE.CTRIA6',((ENUMERATED_SURFACE_ELEMENT_PURPOSE(
|
||||
.MEMBRANE_DIRECT.),ENUMERATED_SURFACE_ELEMENT_PURPOSE(.MEMBRANE_SHEAR.))
|
||||
,(ENUMERATED_SURFACE_ELEMENT_PURPOSE(.BENDING_DIRECT.),
|
||||
@@ -2587,7 +2587,7 @@ SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
|
||||
);
|
||||
#637542839= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637542843= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637542843= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_WEDGE.CPENTA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637542845= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637542847,
|
||||
@@ -3104,7 +3104,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539964,#637539780,#637539832,#637539836,#637539820,#637539928,
|
||||
#637539980,#637539984,#637539968,#637542834,#637542834,#637542834,
|
||||
#637542834,#637542834,#637542834),#637538282,#637543160,#637542845);
|
||||
#637543160= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637543160= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637543162= VOLUME_3D_ELEMENT_REPRESENTATION('31',(#637542838),
|
||||
@@ -3301,7 +3301,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637542839,(#637538588,#637538612,#637538708,#637538592,#637540000,
|
||||
#637540004,#637540008,#637539988,#637539992,#637539996),#637538282,
|
||||
#637543262,#637542845);
|
||||
#637543262= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637543262= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637543264= VOLUME_3D_ELEMENT_REPRESENTATION('34',(#637542838),
|
||||
@@ -2587,7 +2587,7 @@ SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
|
||||
);
|
||||
#637542837= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637542841= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637542841= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_WEDGE.CPENTA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637542843= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637542845,
|
||||
@@ -3104,7 +3104,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637539962,#637539778,#637539830,#637539834,#637539818,#637539926,
|
||||
#637539978,#637539982,#637539966,#637542832,#637542832,#637542832,
|
||||
#637542832,#637542832,#637542832),#637538280,#637543158,#637542843);
|
||||
#637543158= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637543158= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637543160= VOLUME_3D_ELEMENT_REPRESENTATION('31',(#637542836),
|
||||
@@ -3301,7 +3301,7 @@ ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
|
||||
#637542837,(#637538586,#637538610,#637538706,#637538590,#637539998,
|
||||
#637540002,#637540006,#637539986,#637539990,#637539994),#637538280,
|
||||
#637543260,#637542843);
|
||||
#637543260= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637543260= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637543262= VOLUME_3D_ELEMENT_REPRESENTATION('34',(#637542836),
|
||||
@@ -2587,7 +2587,7 @@ SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
|
||||
);
|
||||
#637542839= PARAMETRIC_REPRESENTATION_CONTEXT(
|
||||
'parametric_representation_context','parametric');
|
||||
#637542843= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637542843= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_WEDGE.CPENTA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.WEDGE.);
|
||||
#637542845= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637542847,
|
||||
@@ -7728,7 +7728,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((-11.57079,-8.150762,34.35221,-7.068575
|
||||
#637539964,#637539780,#637539832,#637539836,#637539820,#637539928,
|
||||
#637539980,#637539984,#637539968,#637542834,#637542834,#637542834,
|
||||
#637542834,#637542834,#637542834),#637538282,#637546255,#637542845);
|
||||
#637546255= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637546255= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_HEXAHEDRON.CHEXA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.HEXAHEDRON.);
|
||||
#637546257= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637542873,
|
||||
@@ -9927,7 +9927,7 @@ ANISOTROPIC_SYMMETRIC_TENSOR2_3D((-2814.943,159.5768,445.0004,-196.6884,
|
||||
#637542839,(#637538588,#637538612,#637538708,#637538592,#637540000,
|
||||
#637540004,#637540008,#637539988,#637539992,#637539996),#637538282,
|
||||
#637547664,#637542845);
|
||||
#637547664= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC.,
|
||||
#637547664= VOLUME_3D_ELEMENT_DESCRIPTOR(.QUADRATIC_ORDER.,
|
||||
'QUADRATIC_TETRAHEDRON.CTETRA',(ENUMERATED_VOLUME_ELEMENT_PURPOSE(
|
||||
.STRESS_DISPLACEMENT.)),.TETRAHEDRON.);
|
||||
#637547666= VOLUME_3D_ELEMENT_LOCATION_POINT_VARIABLE_VALUES(#637542873,
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,300 +0,0 @@
|
||||
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION((''), '1');
|
||||
FILE_NAME('MITRE ',
|
||||
'1998-08-31T15:05:58+02:00',
|
||||
(''),
|
||||
(''),
|
||||
'CATIA.STEP INTERFACE',
|
||||
'CATIA SOLUTIONS V4 RELEASE 2.1 FR 4.2.1',
|
||||
'');
|
||||
FILE_SCHEMA(('PLANT_SPATIAL_CONFIGURATION'));
|
||||
ENDSEC;
|
||||
|
||||
DATA;
|
||||
#1=APPLICATION_CONTEXT('process plants');
|
||||
#2=APPLICATION_PROTOCOL_DEFINITION('CD','plant_spatial_configuration',1995,#1);
|
||||
#3=PRODUCT_CONTEXT('plant design',#1,'process plant');
|
||||
#4=PRODUCT_DEFINITION_CONTEXT('physical definition',#1,'physical design');
|
||||
#5=PRODUCT_DEFINITION_CONTEXT('physical occurrence',#1,'physical design');
|
||||
#6=PRODUCT_DEFINITION_CONTEXT('functional definition',#1,'functional design');
|
||||
#7=PRODUCT_DEFINITION_CONTEXT('functional occurrence',#1,'functional design');
|
||||
#8=PRODUCT_DEFINITION_CONTEXT('catalogue definition',#1,'???? design');
|
||||
#9=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
|
||||
#10=DIMENSIONAL_EXPONENTS(0.00000000000,1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
|
||||
#11=(MASS_UNIT()NAMED_UNIT(#10)SI_UNIT(.KILO.,.GRAM.));
|
||||
#12=DIMENSIONAL_EXPONENTS(1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
|
||||
#13=(LENGTH_UNIT()NAMED_UNIT(#12)SI_UNIT(.MILLI.,.METRE.));
|
||||
#14=GLOBAL_UNIT_ASSIGNED_CONTEXT($,$,(#13));
|
||||
#15=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','in');
|
||||
#16=REPRESENTATION($,(#15),#14);
|
||||
#17=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','out');
|
||||
#18=REPRESENTATION($,(#17),#14);
|
||||
#19=PLANT_LINE_DEFINITION('U1-P100-10"-CS150R-FG',$,$,#6,$);
|
||||
#20=PLANT_LINE_SEGMENT_DEFINITION('en_dur',$,$,#6);
|
||||
#21=PRODUCT_DEFINITION_RELATIONSHIP($,'',$,#19,#20);
|
||||
#22=PRODUCT_DEFINITION_SHAPE($,$,#20);
|
||||
#23=SHAPE_DIMENSION_REPRESENTATION($,(#25),$);
|
||||
#24=SHAPE_DEFINITION_REPRESENTATION(#22,#23);
|
||||
#25=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('line size'));
|
||||
#26=DOCUMENT('CS150R',$,$,#28);
|
||||
#27=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#26,$,(#20));
|
||||
#28=DOCUMENT_TYPE('piping specification');
|
||||
#29=DOCUMENT_USAGE_CONSTRAINT(#26,'service description',$);
|
||||
#30=PRODUCT('',$,$,(#3));
|
||||
#31=PRODUCT_DEFINITION_FORMATION($,$,#30);
|
||||
#32=PIPING_COMPONENT_DEFINITION($,$,#31,#4);
|
||||
#33=PRODUCT_DEFINITION_SHAPE($,$,#32);
|
||||
#34=PIPING_COMPONENT_DEFINITION($,$,#31,#5);
|
||||
#35=PRODUCT_DEFINITION_SHAPE($,$,#34);
|
||||
#36=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#32,#34);
|
||||
#37=PIPE_CLASSIFICATION('straight pipe',$);
|
||||
#38=CLASSIFICATION_ASSIGNMENT(#37,(#32,#34,#88,#90));
|
||||
#39=PRODUCT_RELATED_PRODUCT_CATEGORY('pipe',$,(#30,#86,#135));
|
||||
#40=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#34);
|
||||
#41=PLANT_ITEM_CONNECTOR($,'end 1',#33,$);
|
||||
#42=PLANT_ITEM_CONNECTOR($,'end 1',#35,$);
|
||||
#43=SHAPE_ASPECT_RELATIONSHIP('usage',$,#41,#42);
|
||||
#44=REPRESENTATION($,(#45,#49),$);
|
||||
#45=CARTESIAN_POINT('location',(1000.00000000,0.00000000000,0.00000000000));
|
||||
#46=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#47=DIRECTION($,(0.101600309323,0.00000000000,0.00000000000));
|
||||
#48=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
|
||||
#49=AXIS2_PLACEMENT_3D('connector orientation',#46,#47,#48);
|
||||
#50=PROPERTY_DEFINITION($,$,#42);
|
||||
#51=PROPERTY_DEFINITION_REPRESENTATION(#50,#44);
|
||||
#52=PLANT_ITEM_CONNECTOR($,'end 2',#33,$);
|
||||
#53=PLANT_ITEM_CONNECTOR($,'end 2',#35,$);
|
||||
#54=SHAPE_ASPECT_RELATIONSHIP('usage',$,#52,#53);
|
||||
#55=REPRESENTATION($,(#56,#60),$);
|
||||
#56=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#57=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#58=DIRECTION($,(-0.101600309323,-0.00000000000,-0.00000000000));
|
||||
#59=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
|
||||
#60=AXIS2_PLACEMENT_3D('connector orientation',#57,#58,#59);
|
||||
#61=PROPERTY_DEFINITION($,$,#53);
|
||||
#62=PROPERTY_DEFINITION_REPRESENTATION(#61,#55);
|
||||
#63=PROPERTY_DEFINITION($,$,#32);
|
||||
#64=REPRESENTATION('piping component size',(#69),$);
|
||||
#65=PROPERTY_DEFINITION_REPRESENTATION(#63,#64);
|
||||
#66=PROPERTY_DEFINITION($,$,#32);
|
||||
#67=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#70),$);
|
||||
#68=PROPERTY_DEFINITION_REPRESENTATION(#66,#67);
|
||||
#69=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
|
||||
#70=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
|
||||
#71=DOCUMENT($,$,$,#73);
|
||||
#72=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#71,$,(#64));
|
||||
#73=DOCUMENT_TYPE('dimensional standard');
|
||||
#74=DOCUMENT_USAGE_CONSTRAINT(#71,'pipe schedule','STANDARD');
|
||||
#75=PRODUCT_DEFINITION($,$,$,$);
|
||||
#76=MATERIAL_PROPERTY($,$,#75);
|
||||
#77=PRODUCT_DEFINITION_USAGE($,$,$,#32,#75);
|
||||
#78=DOCUMENT_TYPE('material specification');
|
||||
#79=DOCUMENT('ASTM A 53',$,$,#78);
|
||||
#80=DOCUMENT_USAGE_CONSTRAINT(#79,$,'Carbon steel');
|
||||
#81=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#79,$,(#75,#128,#179));
|
||||
#82=DIMENSIONAL_LOCATION($,$,#42,#53);
|
||||
#83=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
|
||||
#84=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#83),#14);
|
||||
#85=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#82,#84);
|
||||
#86=PRODUCT('',$,$,(#3));
|
||||
#87=PRODUCT_DEFINITION_FORMATION($,$,#86);
|
||||
#88=PIPING_COMPONENT_DEFINITION($,$,#87,#4);
|
||||
#89=PRODUCT_DEFINITION_SHAPE($,$,#88);
|
||||
#90=PIPING_COMPONENT_DEFINITION($,$,#87,#5);
|
||||
#91=PRODUCT_DEFINITION_SHAPE($,$,#90);
|
||||
#92=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#88,#90);
|
||||
#93=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#90);
|
||||
#94=PLANT_ITEM_CONNECTOR($,'end 1',#89,$);
|
||||
#95=PLANT_ITEM_CONNECTOR($,'end 1',#91,$);
|
||||
#96=SHAPE_ASPECT_RELATIONSHIP('usage',$,#94,#95);
|
||||
#97=REPRESENTATION($,(#98,#102),$);
|
||||
#98=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
|
||||
#99=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
|
||||
#100=DIRECTION($,(-0.00000000000,-0.101600309323,-0.00000000000));
|
||||
#101=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
|
||||
#102=AXIS2_PLACEMENT_3D('connector orientation',#99,#100,#101);
|
||||
#103=PROPERTY_DEFINITION($,$,#95);
|
||||
#104=PROPERTY_DEFINITION_REPRESENTATION(#103,#97);
|
||||
#105=PLANT_ITEM_CONNECTOR($,'end 2',#89,$);
|
||||
#106=PLANT_ITEM_CONNECTOR($,'end 2',#91,$);
|
||||
#107=SHAPE_ASPECT_RELATIONSHIP('usage',$,#105,#106);
|
||||
#108=REPRESENTATION($,(#109,#113),$);
|
||||
#109=CARTESIAN_POINT('location',(0.00000000000,1000.00000000,0.00000000000));
|
||||
#110=CARTESIAN_POINT($,(0.00000000000,1000.00000000,0.00000000000));
|
||||
#111=DIRECTION($,(0.00000000000,0.101600309323,0.00000000000));
|
||||
#112=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
|
||||
#113=AXIS2_PLACEMENT_3D('connector orientation',#110,#111,#112);
|
||||
#114=PROPERTY_DEFINITION($,$,#106);
|
||||
#115=PROPERTY_DEFINITION_REPRESENTATION(#114,#108);
|
||||
#116=PROPERTY_DEFINITION($,$,#88);
|
||||
#117=REPRESENTATION('piping component size',(#122),$);
|
||||
#118=PROPERTY_DEFINITION_REPRESENTATION(#116,#117);
|
||||
#119=PROPERTY_DEFINITION($,$,#88);
|
||||
#120=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#123),$);
|
||||
#121=PROPERTY_DEFINITION_REPRESENTATION(#119,#120);
|
||||
#122=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
|
||||
#123=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
|
||||
#124=DOCUMENT($,$,$,#126);
|
||||
#125=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#124,$,(#117));
|
||||
#126=DOCUMENT_TYPE('dimensional standard');
|
||||
#127=DOCUMENT_USAGE_CONSTRAINT(#124,'pipe schedule','STANDARD');
|
||||
#128=PRODUCT_DEFINITION($,$,$,$);
|
||||
#129=MATERIAL_PROPERTY($,$,#128);
|
||||
#130=PRODUCT_DEFINITION_USAGE($,$,$,#88,#128);
|
||||
#131=DIMENSIONAL_LOCATION($,$,#95,#106);
|
||||
#132=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
|
||||
#133=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#132),#14);
|
||||
#134=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#131,#133);
|
||||
#135=PRODUCT('',$,$,(#3));
|
||||
#136=PRODUCT_DEFINITION_FORMATION($,$,#135);
|
||||
#137=PIPING_COMPONENT_DEFINITION($,$,#136,#4);
|
||||
#138=PRODUCT_DEFINITION_SHAPE($,$,#137);
|
||||
#139=PIPING_COMPONENT_DEFINITION($,$,#136,#5);
|
||||
#140=PRODUCT_DEFINITION_SHAPE($,$,#139);
|
||||
#141=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#137,#139);
|
||||
#142=PIPE_CLASSIFICATION('mitre bend pipe',$);
|
||||
#143=CLASSIFICATION_ASSIGNMENT(#142,(#137,#139));
|
||||
#144=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#139);
|
||||
#145=PLANT_ITEM_CONNECTOR($,'end 1',#138,$);
|
||||
#146=PLANT_ITEM_CONNECTOR($,'end 1',#140,$);
|
||||
#147=SHAPE_ASPECT_RELATIONSHIP('usage',$,#145,#146);
|
||||
#148=REPRESENTATION($,(#149,#153),$);
|
||||
#149=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#150=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#151=DIRECTION($,(1.00000000000,-1.31340794006E-16,0.00000000000));
|
||||
#152=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#153=AXIS2_PLACEMENT_3D('connector orientation',#150,#151,#152);
|
||||
#154=PROPERTY_DEFINITION($,$,#146);
|
||||
#155=PROPERTY_DEFINITION_REPRESENTATION(#154,#148);
|
||||
#156=PLANT_ITEM_CONNECTOR($,'end 2',#138,$);
|
||||
#157=PLANT_ITEM_CONNECTOR($,'end 2',#140,$);
|
||||
#158=SHAPE_ASPECT_RELATIONSHIP('usage',$,#156,#157);
|
||||
#159=REPRESENTATION($,(#160,#164),$);
|
||||
#160=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
|
||||
#161=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
|
||||
#162=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#163=DIRECTION($,(1.00000000000,0.00000000000,0.00000000000));
|
||||
#164=AXIS2_PLACEMENT_3D('connector orientation',#161,#162,#163);
|
||||
#165=PROPERTY_DEFINITION($,$,#157);
|
||||
#166=PROPERTY_DEFINITION_REPRESENTATION(#165,#159);
|
||||
#167=PROPERTY_DEFINITION($,$,#137);
|
||||
#168=REPRESENTATION('piping component size',(#173),$);
|
||||
#169=PROPERTY_DEFINITION_REPRESENTATION(#167,#168);
|
||||
#170=PROPERTY_DEFINITION($,$,#137);
|
||||
#171=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#174),$);
|
||||
#172=PROPERTY_DEFINITION_REPRESENTATION(#170,#171);
|
||||
#173=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
|
||||
#174=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
|
||||
#175=DOCUMENT($,$,$,#177);
|
||||
#176=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#175,$,(#168));
|
||||
#177=DOCUMENT_TYPE('dimensional standard');
|
||||
#178=DOCUMENT_USAGE_CONSTRAINT(#175,'pipe schedule','STANDARD');
|
||||
#179=PRODUCT_DEFINITION($,$,$,$);
|
||||
#180=MATERIAL_PROPERTY($,$,#179);
|
||||
#181=PRODUCT_DEFINITION_USAGE($,$,$,#137,#179);
|
||||
#182=PROPERTY_DEFINITION($,$,#139);
|
||||
#183=REPRESENTATION('pipe characteristics',(#185),$);
|
||||
#184=PROPERTY_DEFINITION_REPRESENTATION(#182,#183);
|
||||
#185=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(COUNT_MEASURE(3.00000000000),$)REPRESENTATION_ITEM('number of segments'));
|
||||
#186=SHAPE_DEFINITION_REPRESENTATION(#33,#187);
|
||||
#187=SHAPE_REPRESENTATION($,(#235),$);
|
||||
#188=REPRESENTATION_MAP(#9,#187);
|
||||
#189=SHAPE_REPRESENTATION($,(#191),#14);
|
||||
#190=SHAPE_DEFINITION_REPRESENTATION(#35,#189);
|
||||
#191=MAPPED_ITEM($,#188,#195);
|
||||
#192=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#193=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
|
||||
#194=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#195=AXIS2_PLACEMENT_3D($,#192,#193,#194);
|
||||
#196=SHAPE_DEFINITION_REPRESENTATION(#89,#197);
|
||||
#197=SHAPE_REPRESENTATION($,(#251),$);
|
||||
#198=REPRESENTATION_MAP(#9,#197);
|
||||
#199=SHAPE_REPRESENTATION($,(#201),#14);
|
||||
#200=SHAPE_DEFINITION_REPRESENTATION(#91,#199);
|
||||
#201=MAPPED_ITEM($,#198,#205);
|
||||
#202=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#203=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
|
||||
#204=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#205=AXIS2_PLACEMENT_3D($,#202,#203,#204);
|
||||
#206=SHAPE_DEFINITION_REPRESENTATION(#138,#207);
|
||||
#207=SHAPE_REPRESENTATION($,(#267,#283),$);
|
||||
#208=REPRESENTATION_MAP(#9,#207);
|
||||
#209=SHAPE_REPRESENTATION($,(#211),#14);
|
||||
#210=SHAPE_DEFINITION_REPRESENTATION(#140,#209);
|
||||
#211=MAPPED_ITEM($,#208,#215);
|
||||
#212=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#213=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
|
||||
#214=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#215=AXIS2_PLACEMENT_3D($,#212,#213,#214);
|
||||
#216=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#146,#53);
|
||||
#217=CONNECTION_FUNCTIONAL_CLASSIFICATION('fluid transference',$);
|
||||
#218=CLASSIFICATION_ASSIGNMENT(#217,(#216,#219));
|
||||
#219=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#157,#95);
|
||||
#220=CARTESIAN_POINT($,(7.85037143115E-31,0.00000000000,0.00000000000));
|
||||
#221=DIRECTION($,(-7.58296427752E-17,0.00000000000,1.00000000000));
|
||||
#222=AXIS1_PLACEMENT($,#220,#221);
|
||||
#223=RIGHT_CIRCULAR_CYLINDER('',#222,670.556359712,136.525000000);
|
||||
#224=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
|
||||
#225=DIRECTION($,(-0.00000000000,0.00000000000,-1.00000000000));
|
||||
#226=AXIS2_PLACEMENT_3D($,#224,#225,$);
|
||||
#227=PLANE($,#226);
|
||||
#228=HALF_SPACE_SOLID($,#227,$);
|
||||
#229=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
|
||||
#230=DIRECTION($,(0.258819045103,0.00000000000,0.965925826289));
|
||||
#231=AXIS2_PLACEMENT_3D($,#229,#230,$);
|
||||
#232=PLANE($,#231);
|
||||
#233=HALF_SPACE_SOLID($,#232,$);
|
||||
#234=BOOLEAN_RESULT('',.DIFFERENCE.,#223,#228);
|
||||
#235=BOOLEAN_RESULT('',.DIFFERENCE.,#234,#233);
|
||||
#236=CARTESIAN_POINT($,(329.443640288,-0.00000000000,1000.00000000));
|
||||
#237=DIRECTION($,(1.00000000000,0.00000000000,-8.75605293377E-17));
|
||||
#238=AXIS1_PLACEMENT($,#236,#237);
|
||||
#239=RIGHT_CIRCULAR_CYLINDER('',#238,670.556359712,136.525000000);
|
||||
#240=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
|
||||
#241=DIRECTION($,(-0.965925826289,0.00000000000,-0.258819045103));
|
||||
#242=AXIS2_PLACEMENT_3D($,#240,#241,$);
|
||||
#243=PLANE($,#242);
|
||||
#244=HALF_SPACE_SOLID($,#243,$);
|
||||
#245=CARTESIAN_POINT($,(1000.00000000,-0.00000000000,1000.00000000));
|
||||
#246=DIRECTION($,(1.00000000000,-0.00000000000,0.00000000000));
|
||||
#247=AXIS2_PLACEMENT_3D($,#245,#246,$);
|
||||
#248=PLANE($,#247);
|
||||
#249=HALF_SPACE_SOLID($,#248,$);
|
||||
#250=BOOLEAN_RESULT('',.DIFFERENCE.,#239,#244);
|
||||
#251=BOOLEAN_RESULT('',.DIFFERENCE.,#250,#249);
|
||||
#252=CARTESIAN_POINT($,(-18.2908817483,0.00000000000,602.293859712));
|
||||
#253=DIRECTION($,(0.500000000000,-0.00000000000,0.866025403784));
|
||||
#254=AXIS1_PLACEMENT($,#252,#253);
|
||||
#255=RIGHT_CIRCULAR_CYLINDER('',#254,341.112719424,136.525000000);
|
||||
#256=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
|
||||
#257=DIRECTION($,(-0.258819045103,0.00000000000,-0.965925826289));
|
||||
#258=AXIS2_PLACEMENT_3D($,#256,#257,$);
|
||||
#259=PLANE($,#258);
|
||||
#260=HALF_SPACE_SOLID($,#259,$);
|
||||
#261=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
|
||||
#262=DIRECTION($,(0.707106781187,0.00000000000,0.707106781187));
|
||||
#263=AXIS2_PLACEMENT_3D($,#261,#262,$);
|
||||
#264=PLANE($,#263);
|
||||
#265=HALF_SPACE_SOLID($,#264,$);
|
||||
#266=BOOLEAN_RESULT('',.DIFFERENCE.,#255,#260);
|
||||
#267=BOOLEAN_RESULT('',.DIFFERENCE.,#266,#265);
|
||||
#268=CARTESIAN_POINT($,(102.293859712,-0.00000000000,847.734522036));
|
||||
#269=DIRECTION($,(0.866025403784,-0.00000000000,0.500000000000));
|
||||
#270=AXIS1_PLACEMENT($,#268,#269);
|
||||
#271=RIGHT_CIRCULAR_CYLINDER('',#270,341.112719424,136.525000000);
|
||||
#272=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
|
||||
#273=DIRECTION($,(-0.707106781187,0.00000000000,-0.707106781187));
|
||||
#274=AXIS2_PLACEMENT_3D($,#272,#273,$);
|
||||
#275=PLANE($,#274);
|
||||
#276=HALF_SPACE_SOLID($,#275,$);
|
||||
#277=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
|
||||
#278=DIRECTION($,(0.965925826289,0.00000000000,0.258819045103));
|
||||
#279=AXIS2_PLACEMENT_3D($,#277,#278,$);
|
||||
#280=PLANE($,#279);
|
||||
#281=HALF_SPACE_SOLID($,#280,$);
|
||||
#282=BOOLEAN_RESULT('',.DIFFERENCE.,#271,#276);
|
||||
#283=BOOLEAN_RESULT('',.DIFFERENCE.,#282,#281);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -1,299 +0,0 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION((''), '1');
|
||||
FILE_NAME('MITRE ',
|
||||
'1998-08-31T15:05:58+02:00',
|
||||
(''),
|
||||
(''),
|
||||
'CATIA.STEP INTERFACE',
|
||||
'CATIA SOLUTIONS V4 RELEASE 2.1 FR 4.2.1',
|
||||
'');
|
||||
FILE_SCHEMA(('PLANT_SPATIAL_CONFIGURATION'));
|
||||
ENDSEC;
|
||||
|
||||
DATA;
|
||||
#1=APPLICATION_CONTEXT('process plants');
|
||||
#2=APPLICATION_PROTOCOL_DEFINITION('CD','plant_spatial_configuration',1995,#1);
|
||||
#3=PRODUCT_CONTEXT('plant design',#1,'process plant');
|
||||
#4=PRODUCT_DEFINITION_CONTEXT('physical definition',#1,'physical design');
|
||||
#5=PRODUCT_DEFINITION_CONTEXT('physical occurrence',#1,'physical design');
|
||||
#6=PRODUCT_DEFINITION_CONTEXT('functional definition',#1,'functional design');
|
||||
#7=PRODUCT_DEFINITION_CONTEXT('functional occurrence',#1,'functional design');
|
||||
#8=PRODUCT_DEFINITION_CONTEXT('catalogue definition',#1,'???? design');
|
||||
#9=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
|
||||
#10=DIMENSIONAL_EXPONENTS(0.00000000000,1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
|
||||
#11=(MASS_UNIT()NAMED_UNIT(#10)SI_UNIT(.KILO.,.GRAM.));
|
||||
#12=DIMENSIONAL_EXPONENTS(1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
|
||||
#13=(LENGTH_UNIT()NAMED_UNIT(#12)SI_UNIT(.MILLI.,.METRE.));
|
||||
#14=GLOBAL_UNIT_ASSIGNED_CONTEXT($,$,(#13));
|
||||
#15=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','in');
|
||||
#16=REPRESENTATION($,(#15),#14);
|
||||
#17=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','out');
|
||||
#18=REPRESENTATION($,(#17),#14);
|
||||
#19=PLANT_LINE_DEFINITION('U1-P100-10"-CS150R-FG',$,$,#6,$);
|
||||
#20=PLANT_LINE_SEGMENT_DEFINITION('en_dur',$,$,#6);
|
||||
#21=PRODUCT_DEFINITION_RELATIONSHIP($,'',$,#19,#20);
|
||||
#22=PRODUCT_DEFINITION_SHAPE($,$,#20);
|
||||
#23=SHAPE_DIMENSION_REPRESENTATION($,(#25),$);
|
||||
#24=SHAPE_DEFINITION_REPRESENTATION(#22,#23);
|
||||
#25=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('line size'));
|
||||
#26=DOCUMENT('CS150R',$,$,#28);
|
||||
#27=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#26,$,(#20));
|
||||
#28=DOCUMENT_TYPE('piping specification');
|
||||
#29=DOCUMENT_USAGE_CONSTRAINT(#26,'service description',$);
|
||||
#30=PRODUCT('',$,$,(#3));
|
||||
#31=PRODUCT_DEFINITION_FORMATION($,$,#30);
|
||||
#32=PIPING_COMPONENT_DEFINITION($,$,#31,#4);
|
||||
#33=PRODUCT_DEFINITION_SHAPE($,$,#32);
|
||||
#34=PIPING_COMPONENT_DEFINITION($,$,#31,#5);
|
||||
#35=PRODUCT_DEFINITION_SHAPE($,$,#34);
|
||||
#36=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#32,#34);
|
||||
#37=PIPE_CLASSIFICATION('straight pipe',$);
|
||||
#38=CLASSIFICATION_ASSIGNMENT(#37,(#32,#34,#88,#90));
|
||||
#39=PRODUCT_RELATED_PRODUCT_CATEGORY('pipe',$,(#30,#86,#135));
|
||||
#40=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#34);
|
||||
#41=PLANT_ITEM_CONNECTOR($,'end 1',#33,$);
|
||||
#42=PLANT_ITEM_CONNECTOR($,'end 1',#35,$);
|
||||
#43=SHAPE_ASPECT_RELATIONSHIP('usage',$,#41,#42);
|
||||
#44=REPRESENTATION($,(#45,#49),$);
|
||||
#45=CARTESIAN_POINT('location',(1000.00000000,0.00000000000,0.00000000000));
|
||||
#46=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#47=DIRECTION($,(0.101600309323,0.00000000000,0.00000000000));
|
||||
#48=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
|
||||
#49=AXIS2_PLACEMENT_3D('connector orientation',#46,#47,#48);
|
||||
#50=PROPERTY_DEFINITION($,$,#42);
|
||||
#51=PROPERTY_DEFINITION_REPRESENTATION(#50,#44);
|
||||
#52=PLANT_ITEM_CONNECTOR($,'end 2',#33,$);
|
||||
#53=PLANT_ITEM_CONNECTOR($,'end 2',#35,$);
|
||||
#54=SHAPE_ASPECT_RELATIONSHIP('usage',$,#52,#53);
|
||||
#55=REPRESENTATION($,(#56,#60),$);
|
||||
#56=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#57=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#58=DIRECTION($,(-0.101600309323,-0.00000000000,-0.00000000000));
|
||||
#59=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
|
||||
#60=AXIS2_PLACEMENT_3D('connector orientation',#57,#58,#59);
|
||||
#61=PROPERTY_DEFINITION($,$,#53);
|
||||
#62=PROPERTY_DEFINITION_REPRESENTATION(#61,#55);
|
||||
#63=PROPERTY_DEFINITION($,$,#32);
|
||||
#64=REPRESENTATION('piping component size',(#69),$);
|
||||
#65=PROPERTY_DEFINITION_REPRESENTATION(#63,#64);
|
||||
#66=PROPERTY_DEFINITION($,$,#32);
|
||||
#67=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#70),$);
|
||||
#68=PROPERTY_DEFINITION_REPRESENTATION(#66,#67);
|
||||
#69=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
|
||||
#70=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
|
||||
#71=DOCUMENT($,$,$,#73);
|
||||
#72=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#71,$,(#64));
|
||||
#73=DOCUMENT_TYPE('dimensional standard');
|
||||
#74=DOCUMENT_USAGE_CONSTRAINT(#71,'pipe schedule','STANDARD');
|
||||
#75=PRODUCT_DEFINITION($,$,$,$);
|
||||
#76=MATERIAL_PROPERTY($,$,#75);
|
||||
#77=PRODUCT_DEFINITION_USAGE($,$,$,#32,#75);
|
||||
#78=DOCUMENT_TYPE('material specification');
|
||||
#79=DOCUMENT('ASTM A 53',$,$,#78);
|
||||
#80=DOCUMENT_USAGE_CONSTRAINT(#79,$,'Carbon steel');
|
||||
#81=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#79,$,(#75,#128,#179));
|
||||
#82=DIMENSIONAL_LOCATION($,$,#42,#53);
|
||||
#83=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
|
||||
#84=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#83),#14);
|
||||
#85=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#82,#84);
|
||||
#86=PRODUCT('',$,$,(#3));
|
||||
#87=PRODUCT_DEFINITION_FORMATION($,$,#86);
|
||||
#88=PIPING_COMPONENT_DEFINITION($,$,#87,#4);
|
||||
#89=PRODUCT_DEFINITION_SHAPE($,$,#88);
|
||||
#90=PIPING_COMPONENT_DEFINITION($,$,#87,#5);
|
||||
#91=PRODUCT_DEFINITION_SHAPE($,$,#90);
|
||||
#92=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#88,#90);
|
||||
#93=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#90);
|
||||
#94=PLANT_ITEM_CONNECTOR($,'end 1',#89,$);
|
||||
#95=PLANT_ITEM_CONNECTOR($,'end 1',#91,$);
|
||||
#96=SHAPE_ASPECT_RELATIONSHIP('usage',$,#94,#95);
|
||||
#97=REPRESENTATION($,(#98,#102),$);
|
||||
#98=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
|
||||
#99=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
|
||||
#100=DIRECTION($,(-0.00000000000,-0.101600309323,-0.00000000000));
|
||||
#101=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
|
||||
#102=AXIS2_PLACEMENT_3D('connector orientation',#99,#100,#101);
|
||||
#103=PROPERTY_DEFINITION($,$,#95);
|
||||
#104=PROPERTY_DEFINITION_REPRESENTATION(#103,#97);
|
||||
#105=PLANT_ITEM_CONNECTOR($,'end 2',#89,$);
|
||||
#106=PLANT_ITEM_CONNECTOR($,'end 2',#91,$);
|
||||
#107=SHAPE_ASPECT_RELATIONSHIP('usage',$,#105,#106);
|
||||
#108=REPRESENTATION($,(#109,#113),$);
|
||||
#109=CARTESIAN_POINT('location',(0.00000000000,1000.00000000,0.00000000000));
|
||||
#110=CARTESIAN_POINT($,(0.00000000000,1000.00000000,0.00000000000));
|
||||
#111=DIRECTION($,(0.00000000000,0.101600309323,0.00000000000));
|
||||
#112=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
|
||||
#113=AXIS2_PLACEMENT_3D('connector orientation',#110,#111,#112);
|
||||
#114=PROPERTY_DEFINITION($,$,#106);
|
||||
#115=PROPERTY_DEFINITION_REPRESENTATION(#114,#108);
|
||||
#116=PROPERTY_DEFINITION($,$,#88);
|
||||
#117=REPRESENTATION('piping component size',(#122),$);
|
||||
#118=PROPERTY_DEFINITION_REPRESENTATION(#116,#117);
|
||||
#119=PROPERTY_DEFINITION($,$,#88);
|
||||
#120=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#123),$);
|
||||
#121=PROPERTY_DEFINITION_REPRESENTATION(#119,#120);
|
||||
#122=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
|
||||
#123=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
|
||||
#124=DOCUMENT($,$,$,#126);
|
||||
#125=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#124,$,(#117));
|
||||
#126=DOCUMENT_TYPE('dimensional standard');
|
||||
#127=DOCUMENT_USAGE_CONSTRAINT(#124,'pipe schedule','STANDARD');
|
||||
#128=PRODUCT_DEFINITION($,$,$,$);
|
||||
#129=MATERIAL_PROPERTY($,$,#128);
|
||||
#130=PRODUCT_DEFINITION_USAGE($,$,$,#88,#128);
|
||||
#131=DIMENSIONAL_LOCATION($,$,#95,#106);
|
||||
#132=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
|
||||
#133=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#132),#14);
|
||||
#134=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#131,#133);
|
||||
#135=PRODUCT('',$,$,(#3));
|
||||
#136=PRODUCT_DEFINITION_FORMATION($,$,#135);
|
||||
#137=PIPING_COMPONENT_DEFINITION($,$,#136,#4);
|
||||
#138=PRODUCT_DEFINITION_SHAPE($,$,#137);
|
||||
#139=PIPING_COMPONENT_DEFINITION($,$,#136,#5);
|
||||
#140=PRODUCT_DEFINITION_SHAPE($,$,#139);
|
||||
#141=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#137,#139);
|
||||
#142=PIPE_CLASSIFICATION('mitre bend pipe',$);
|
||||
#143=CLASSIFICATION_ASSIGNMENT(#142,(#137,#139));
|
||||
#144=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#139);
|
||||
#145=PLANT_ITEM_CONNECTOR($,'end 1',#138,$);
|
||||
#146=PLANT_ITEM_CONNECTOR($,'end 1',#140,$);
|
||||
#147=SHAPE_ASPECT_RELATIONSHIP('usage',$,#145,#146);
|
||||
#148=REPRESENTATION($,(#149,#153),$);
|
||||
#149=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#150=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
|
||||
#151=DIRECTION($,(1.00000000000,-1.31340794006E-16,0.00000000000));
|
||||
#152=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#153=AXIS2_PLACEMENT_3D('connector orientation',#150,#151,#152);
|
||||
#154=PROPERTY_DEFINITION($,$,#146);
|
||||
#155=PROPERTY_DEFINITION_REPRESENTATION(#154,#148);
|
||||
#156=PLANT_ITEM_CONNECTOR($,'end 2',#138,$);
|
||||
#157=PLANT_ITEM_CONNECTOR($,'end 2',#140,$);
|
||||
#158=SHAPE_ASPECT_RELATIONSHIP('usage',$,#156,#157);
|
||||
#159=REPRESENTATION($,(#160,#164),$);
|
||||
#160=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
|
||||
#161=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
|
||||
#162=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#163=DIRECTION($,(1.00000000000,0.00000000000,0.00000000000));
|
||||
#164=AXIS2_PLACEMENT_3D('connector orientation',#161,#162,#163);
|
||||
#165=PROPERTY_DEFINITION($,$,#157);
|
||||
#166=PROPERTY_DEFINITION_REPRESENTATION(#165,#159);
|
||||
#167=PROPERTY_DEFINITION($,$,#137);
|
||||
#168=REPRESENTATION('piping component size',(#173),$);
|
||||
#169=PROPERTY_DEFINITION_REPRESENTATION(#167,#168);
|
||||
#170=PROPERTY_DEFINITION($,$,#137);
|
||||
#171=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#174),$);
|
||||
#172=PROPERTY_DEFINITION_REPRESENTATION(#170,#171);
|
||||
#173=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
|
||||
#174=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
|
||||
#175=DOCUMENT($,$,$,#177);
|
||||
#176=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#175,$,(#168));
|
||||
#177=DOCUMENT_TYPE('dimensional standard');
|
||||
#178=DOCUMENT_USAGE_CONSTRAINT(#175,'pipe schedule','STANDARD');
|
||||
#179=PRODUCT_DEFINITION($,$,$,$);
|
||||
#180=MATERIAL_PROPERTY($,$,#179);
|
||||
#181=PRODUCT_DEFINITION_USAGE($,$,$,#137,#179);
|
||||
#182=PROPERTY_DEFINITION($,$,#139);
|
||||
#183=REPRESENTATION('pipe characteristics',(#185),$);
|
||||
#184=PROPERTY_DEFINITION_REPRESENTATION(#182,#183);
|
||||
#185=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(COUNT_MEASURE(3.00000000000),$)REPRESENTATION_ITEM('number of segments'));
|
||||
#186=SHAPE_DEFINITION_REPRESENTATION(#33,#187);
|
||||
#187=SHAPE_REPRESENTATION($,(#235),$);
|
||||
#188=REPRESENTATION_MAP(#9,#187);
|
||||
#189=SHAPE_REPRESENTATION($,(#191),#14);
|
||||
#190=SHAPE_DEFINITION_REPRESENTATION(#35,#189);
|
||||
#191=MAPPED_ITEM($,#188,#195);
|
||||
#192=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#193=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
|
||||
#194=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#195=AXIS2_PLACEMENT_3D($,#192,#193,#194);
|
||||
#196=SHAPE_DEFINITION_REPRESENTATION(#89,#197);
|
||||
#197=SHAPE_REPRESENTATION($,(#251),$);
|
||||
#198=REPRESENTATION_MAP(#9,#197);
|
||||
#199=SHAPE_REPRESENTATION($,(#201),#14);
|
||||
#200=SHAPE_DEFINITION_REPRESENTATION(#91,#199);
|
||||
#201=MAPPED_ITEM($,#198,#205);
|
||||
#202=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#203=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
|
||||
#204=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#205=AXIS2_PLACEMENT_3D($,#202,#203,#204);
|
||||
#206=SHAPE_DEFINITION_REPRESENTATION(#138,#207);
|
||||
#207=SHAPE_REPRESENTATION($,(#267,#283),$);
|
||||
#208=REPRESENTATION_MAP(#9,#207);
|
||||
#209=SHAPE_REPRESENTATION($,(#211),#14);
|
||||
#210=SHAPE_DEFINITION_REPRESENTATION(#140,#209);
|
||||
#211=MAPPED_ITEM($,#208,#215);
|
||||
#212=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
|
||||
#213=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
|
||||
#214=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
|
||||
#215=AXIS2_PLACEMENT_3D($,#212,#213,#214);
|
||||
#216=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#146,#53);
|
||||
#217=CONNECTION_FUNCTIONAL_CLASSIFICATION('fluid transference',$);
|
||||
#218=CLASSIFICATION_ASSIGNMENT(#217,(#216,#219));
|
||||
#219=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#157,#95);
|
||||
#220=CARTESIAN_POINT($,(7.85037143115E-31,0.00000000000,0.00000000000));
|
||||
#221=DIRECTION($,(-7.58296427752E-17,0.00000000000,1.00000000000));
|
||||
#222=AXIS1_PLACEMENT($,#220,#221);
|
||||
#223=RIGHT_CIRCULAR_CYLINDER('',#222,670.556359712,136.525000000);
|
||||
#224=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
|
||||
#225=DIRECTION($,(-0.00000000000,0.00000000000,-1.00000000000));
|
||||
#226=AXIS2_PLACEMENT_3D($,#224,#225,$);
|
||||
#227=PLANE($,#226);
|
||||
#228=HALF_SPACE_SOLID($,#227,$);
|
||||
#229=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
|
||||
#230=DIRECTION($,(0.258819045103,0.00000000000,0.965925826289));
|
||||
#231=AXIS2_PLACEMENT_3D($,#229,#230,$);
|
||||
#232=PLANE($,#231);
|
||||
#233=HALF_SPACE_SOLID($,#232,$);
|
||||
#234=BOOLEAN_RESULT('',.DIFFERENCE.,#223,#228);
|
||||
#235=BOOLEAN_RESULT('',.DIFFERENCE.,#234,#233);
|
||||
#236=CARTESIAN_POINT($,(329.443640288,-0.00000000000,1000.00000000));
|
||||
#237=DIRECTION($,(1.00000000000,0.00000000000,-8.75605293377E-17));
|
||||
#238=AXIS1_PLACEMENT($,#236,#237);
|
||||
#239=RIGHT_CIRCULAR_CYLINDER('',#238,670.556359712,136.525000000);
|
||||
#240=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
|
||||
#241=DIRECTION($,(-0.965925826289,0.00000000000,-0.258819045103));
|
||||
#242=AXIS2_PLACEMENT_3D($,#240,#241,$);
|
||||
#243=PLANE($,#242);
|
||||
#244=HALF_SPACE_SOLID($,#243,$);
|
||||
#245=CARTESIAN_POINT($,(1000.00000000,-0.00000000000,1000.00000000));
|
||||
#246=DIRECTION($,(1.00000000000,-0.00000000000,0.00000000000));
|
||||
#247=AXIS2_PLACEMENT_3D($,#245,#246,$);
|
||||
#248=PLANE($,#247);
|
||||
#249=HALF_SPACE_SOLID($,#248,$);
|
||||
#250=BOOLEAN_RESULT('',.DIFFERENCE.,#239,#244);
|
||||
#251=BOOLEAN_RESULT('',.DIFFERENCE.,#250,#249);
|
||||
#252=CARTESIAN_POINT($,(-18.2908817483,0.00000000000,602.293859712));
|
||||
#253=DIRECTION($,(0.500000000000,-0.00000000000,0.866025403784));
|
||||
#254=AXIS1_PLACEMENT($,#252,#253);
|
||||
#255=RIGHT_CIRCULAR_CYLINDER('',#254,341.112719424,136.525000000);
|
||||
#256=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
|
||||
#257=DIRECTION($,(-0.258819045103,0.00000000000,-0.965925826289));
|
||||
#258=AXIS2_PLACEMENT_3D($,#256,#257,$);
|
||||
#259=PLANE($,#258);
|
||||
#260=HALF_SPACE_SOLID($,#259,$);
|
||||
#261=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
|
||||
#262=DIRECTION($,(0.707106781187,0.00000000000,0.707106781187));
|
||||
#263=AXIS2_PLACEMENT_3D($,#261,#262,$);
|
||||
#264=PLANE($,#263);
|
||||
#265=HALF_SPACE_SOLID($,#264,$);
|
||||
#266=BOOLEAN_RESULT('',.DIFFERENCE.,#255,#260);
|
||||
#267=BOOLEAN_RESULT('',.DIFFERENCE.,#266,#265);
|
||||
#268=CARTESIAN_POINT($,(102.293859712,-0.00000000000,847.734522036));
|
||||
#269=DIRECTION($,(0.866025403784,-0.00000000000,0.500000000000));
|
||||
#270=AXIS1_PLACEMENT($,#268,#269);
|
||||
#271=RIGHT_CIRCULAR_CYLINDER('',#270,341.112719424,136.525000000);
|
||||
#272=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
|
||||
#273=DIRECTION($,(-0.707106781187,0.00000000000,-0.707106781187));
|
||||
#274=AXIS2_PLACEMENT_3D($,#272,#273,$);
|
||||
#275=PLANE($,#274);
|
||||
#276=HALF_SPACE_SOLID($,#275,$);
|
||||
#277=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
|
||||
#278=DIRECTION($,(0.965925826289,0.00000000000,0.258819045103));
|
||||
#279=AXIS2_PLACEMENT_3D($,#277,#278,$);
|
||||
#280=PLANE($,#279);
|
||||
#281=HALF_SPACE_SOLID($,#280,$);
|
||||
#282=BOOLEAN_RESULT('',.DIFFERENCE.,#271,#276);
|
||||
#283=BOOLEAN_RESULT('',.DIFFERENCE.,#282,#281);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
@@ -3891,11 +3891,11 @@ ENTITY grooving_turning_operation
|
||||
WR3: (verify_optional_action_property (SELF, 'allowance')) AND
|
||||
(verify_length_measure_action_property (SELF, 'allowance'));
|
||||
|
||||
-- allowance propery required for roughing
|
||||
-- allowance property required for roughing
|
||||
WR4: NOT (SELF.description = 'roughing') OR
|
||||
(verify_required_action_property (SELF, 'allowance'));
|
||||
|
||||
-- allowance propery forbidden for cutting in
|
||||
-- allowance property forbidden for cutting in
|
||||
WR5: NOT (SELF.description = 'cutting in') OR
|
||||
(0 = SIZEOF (get_action_property (SELF, 'allowance')));
|
||||
END_ENTITY; -- 10303-238: integrated_cnc_schema
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+15
-9
@@ -1,14 +1,20 @@
|
||||
SET(sc_MANS
|
||||
man/man1/dataprobe.1
|
||||
man/man1/fedex.1
|
||||
man/man1/fedex_plus.1
|
||||
man/man1/mkProbe.1
|
||||
)
|
||||
set(sc_MANS
|
||||
man/man1/fedex.1
|
||||
man/man1/exp2cxx.1
|
||||
)
|
||||
|
||||
if(NOT DEFINED MAN_DIR)
|
||||
set(MAN_DIR share/man)
|
||||
endif(NOT DEFINED MAN_DIR)
|
||||
|
||||
IF(NOT WIN32)
|
||||
INSTALL(FILES ${sc_MANS} DESTINATION ${MAN_DIR}/man1)
|
||||
ENDIF(NOT WIN32)
|
||||
if(NOT WIN32)
|
||||
install(FILES ${sc_MANS} DESTINATION ${MAN_DIR}/man1)
|
||||
endif(NOT WIN32)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
|
||||
+114
-48
@@ -1,4 +1,4 @@
|
||||
# Doxyfile 1.7.4
|
||||
# Doxyfile 1.7.6.1
|
||||
|
||||
# This file describes the settings to be used by the documentation system
|
||||
# doxygen (www.doxygen.org) for a project
|
||||
@@ -22,22 +22,23 @@
|
||||
|
||||
DOXYFILE_ENCODING = UTF-8
|
||||
|
||||
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
|
||||
# by quotes) that should identify the project.
|
||||
# The PROJECT_NAME tag is a single word (or sequence of words) that should
|
||||
# identify the project. Note that if you do not use Doxywizard you need
|
||||
# to put quotes around the project name if it contains spaces.
|
||||
|
||||
PROJECT_NAME = scl
|
||||
PROJECT_NAME = SC
|
||||
|
||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
|
||||
# This could be handy for archiving the generated documentation or
|
||||
# if some version control system is used.
|
||||
|
||||
PROJECT_NUMBER = 3.2
|
||||
PROJECT_NUMBER = 0.8
|
||||
|
||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||
# for a project that appears at the top of each page and should give viewer
|
||||
# a quick idea about the purpose of the project. Keep the description short.
|
||||
|
||||
PROJECT_BRIEF = "STEPcode"
|
||||
PROJECT_BRIEF = STEPcode
|
||||
|
||||
# With the PROJECT_LOGO tag one can specify an logo or icon that is
|
||||
# included in the documentation. The maximum height of the logo should not
|
||||
@@ -51,7 +52,7 @@ PROJECT_LOGO =
|
||||
# If a relative path is entered, it will be relative to the location
|
||||
# where doxygen was started. If left blank the current directory will be used.
|
||||
|
||||
OUTPUT_DIRECTORY = .
|
||||
OUTPUT_DIRECTORY = /mnt/raid/mark/sc-doxygen
|
||||
|
||||
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
|
||||
# 4096 sub-directories (in 2 levels) under the output directory of each output
|
||||
@@ -204,6 +205,13 @@ TAB_SIZE = 8
|
||||
|
||||
ALIASES =
|
||||
|
||||
# This tag can be used to specify a number of word-keyword mappings (TCL only).
|
||||
# A mapping has the form "name=value". For example adding
|
||||
# "class=itcl::class" will allow you to use the command class in the
|
||||
# itcl::class meaning.
|
||||
|
||||
TCL_SUBST =
|
||||
|
||||
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
|
||||
# sources only. Doxygen will then generate output that is more tailored for C.
|
||||
# For instance, some of the names that are used will be different. The list
|
||||
@@ -293,6 +301,15 @@ SUBGROUPING = YES
|
||||
|
||||
INLINE_GROUPED_CLASSES = NO
|
||||
|
||||
# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
|
||||
# unions with only public data fields will be shown inline in the documentation
|
||||
# of the scope in which they are defined (i.e. file, namespace, or group
|
||||
# documentation), provided this scope is documented. If set to NO (the default),
|
||||
# structs, classes, and unions are shown on a separate page (for HTML and Man
|
||||
# pages) or section (for LaTeX and RTF).
|
||||
|
||||
INLINE_SIMPLE_STRUCTS = NO
|
||||
|
||||
# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
|
||||
# is documented as struct, union, or enum with the name of the typedef. So
|
||||
# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
|
||||
@@ -315,10 +332,21 @@ TYPEDEF_HIDES_STRUCT = NO
|
||||
# a logarithmic scale so increasing the size by one will roughly double the
|
||||
# memory usage. The cache size is given by this formula:
|
||||
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
|
||||
# corresponding to a cache size of 2^16 = 65536 symbols
|
||||
# corresponding to a cache size of 2^16 = 65536 symbols.
|
||||
|
||||
SYMBOL_CACHE_SIZE = 0
|
||||
|
||||
# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
|
||||
# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
|
||||
# their name and scope. Since this can be an expensive process and often the
|
||||
# same symbol appear multiple times in the code, doxygen keeps a cache of
|
||||
# pre-resolved symbols. If the cache is too small doxygen will become slower.
|
||||
# If the cache is too large, memory is wasted. The cache size is given by this
|
||||
# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
|
||||
# corresponding to a cache size of 2^16 = 65536 symbols.
|
||||
|
||||
LOOKUP_CACHE_SIZE = 0
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Build related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -338,7 +366,7 @@ EXTRACT_PRIVATE = NO
|
||||
# If the EXTRACT_STATIC tag is set to YES all static members of a file
|
||||
# will be included in the documentation.
|
||||
|
||||
EXTRACT_STATIC = NO
|
||||
EXTRACT_STATIC = YES
|
||||
|
||||
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
|
||||
# defined locally in source files will be included in the documentation.
|
||||
@@ -559,6 +587,16 @@ FILE_VERSION_FILTER =
|
||||
|
||||
LAYOUT_FILE =
|
||||
|
||||
# The CITE_BIB_FILES tag can be used to specify one or more bib files
|
||||
# containing the references data. This must be a list of .bib files. The
|
||||
# .bib extension is automatically appended if omitted. Using this command
|
||||
# requires the bibtex tool to be installed. See also
|
||||
# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
|
||||
# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
|
||||
# feature you need bibtex and perl available in the search path.
|
||||
|
||||
CITE_BIB_FILES =
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to warning and progress messages
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -621,7 +659,8 @@ WARN_LOGFILE =
|
||||
|
||||
INPUT = src \
|
||||
include \
|
||||
build/src/express
|
||||
build/src/express \
|
||||
build/include
|
||||
|
||||
# This tag can be used to specify the character encoding of the source files
|
||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
|
||||
@@ -677,13 +716,16 @@ FILE_PATTERNS = *.c \
|
||||
|
||||
RECURSIVE = YES
|
||||
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should
|
||||
# The EXCLUDE tag can be used to specify files and/or directories that should be
|
||||
# excluded from the INPUT source files. This way you can easily exclude a
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||
# Note that relative paths are relative to the directory from which doxygen is
|
||||
# run.
|
||||
|
||||
EXCLUDE =
|
||||
EXCLUDE = .git \
|
||||
cmake/
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
|
||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||
# from the input.
|
||||
|
||||
@@ -773,7 +815,7 @@ FILTER_SOURCE_PATTERNS =
|
||||
# Note: To get rid of all source code in the generated output, make sure also
|
||||
# VERBATIM_HEADERS is set to NO.
|
||||
|
||||
SOURCE_BROWSER = NO
|
||||
SOURCE_BROWSER = YES
|
||||
|
||||
# Setting the INLINE_SOURCES tag to YES will include the body
|
||||
# of functions and classes directly in the documentation.
|
||||
@@ -865,13 +907,13 @@ HTML_FILE_EXTENSION = .html
|
||||
|
||||
# The HTML_HEADER tag can be used to specify a personal HTML header for
|
||||
# each generated HTML page. If it is left blank doxygen will generate a
|
||||
# standard header. Note that when using a custom header you are responsible
|
||||
# standard header. Note that when using a custom header you are responsible
|
||||
# for the proper inclusion of any scripts and style sheets that doxygen
|
||||
# needs, which is dependent on the configuration options used.
|
||||
# It is adviced to generate a default header using "doxygen -w html
|
||||
# It is advised to generate a default header using "doxygen -w html
|
||||
# header.html footer.html stylesheet.css YourConfigFile" and then modify
|
||||
# that header. Note that the header is subject to change so you typically
|
||||
# have to redo this when upgrading to a newer version of doxygen or when
|
||||
# have to redo this when upgrading to a newer version of doxygen or when
|
||||
# changing the value of configuration settings such as GENERATE_TREEVIEW!
|
||||
|
||||
HTML_HEADER =
|
||||
@@ -887,7 +929,7 @@ HTML_FOOTER =
|
||||
# fine-tune the look of the HTML output. If the tag is left blank doxygen
|
||||
# will generate a default style sheet. Note that doxygen will try to copy
|
||||
# the style sheet file to the HTML output directory, so don't put your own
|
||||
# stylesheet in the HTML output directory as well, or it will be erased!
|
||||
# style sheet in the HTML output directory as well, or it will be erased!
|
||||
|
||||
HTML_STYLESHEET =
|
||||
|
||||
@@ -901,7 +943,7 @@ HTML_STYLESHEET =
|
||||
HTML_EXTRA_FILES =
|
||||
|
||||
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
|
||||
# Doxygen will adjust the colors in the stylesheet and background images
|
||||
# Doxygen will adjust the colors in the style sheet and background images
|
||||
# according to this color. Hue is specified as an angle on a colorwheel,
|
||||
# see http://en.wikipedia.org/wiki/Hue for more information.
|
||||
# For instance the value 0 represents red, 60 is yellow, 120 is green,
|
||||
@@ -1096,29 +1138,33 @@ GENERATE_ECLIPSEHELP = NO
|
||||
|
||||
ECLIPSE_DOC_ID = org.doxygen.Project
|
||||
|
||||
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
|
||||
# top of each HTML page. The value NO (the default) enables the index and
|
||||
# the value YES disables it.
|
||||
# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
|
||||
# at top of each HTML page. The value NO (the default) enables the index and
|
||||
# the value YES disables it. Since the tabs have the same information as the
|
||||
# navigation tree you can set this option to NO if you already set
|
||||
# GENERATE_TREEVIEW to YES.
|
||||
|
||||
DISABLE_INDEX = NO
|
||||
|
||||
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
|
||||
# (range [0,1..20]) that doxygen will group on one line in the generated HTML
|
||||
# documentation. Note that a value of 0 will completely suppress the enum
|
||||
# values from appearing in the overview section.
|
||||
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
|
||||
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
|
||||
# structure should be generated to display hierarchical information.
|
||||
# If the tag value is set to YES, a side panel will be generated
|
||||
# containing a tree-like index structure (just like the one that
|
||||
# is generated for HTML Help). For this to work a browser that supports
|
||||
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
|
||||
# Windows users are probably better off using the HTML help feature.
|
||||
# Windows users are probably better off using the HTML help feature.
|
||||
# Since the tree basically has the same information as the tab index you
|
||||
# could consider to set DISABLE_INDEX to NO when enabling this option.
|
||||
|
||||
GENERATE_TREEVIEW = YES
|
||||
|
||||
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
|
||||
# (range [0,1..20]) that doxygen will group on one line in the generated HTML
|
||||
# documentation. Note that a value of 0 will completely suppress the enum
|
||||
# values from appearing in the overview section.
|
||||
|
||||
ENUM_VALUES_PER_LINE = 4
|
||||
|
||||
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
|
||||
# and Class Hierarchy pages using a tree view instead of an ordered list.
|
||||
|
||||
@@ -1171,6 +1217,11 @@ USE_MATHJAX = NO
|
||||
|
||||
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
|
||||
|
||||
# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
|
||||
# names that should be enabled during MathJax rendering.
|
||||
|
||||
MATHJAX_EXTENSIONS =
|
||||
|
||||
# When the SEARCHENGINE tag is enabled doxygen will generate a search box
|
||||
# for the HTML output. The underlying search engine uses javascript
|
||||
# and DHTML and should work on any modern browser. Note that when using
|
||||
@@ -1179,7 +1230,7 @@ MATHJAX_RELPATH = http://www.mathjax.org/mathjax
|
||||
# typically be disabled. For large projects the javascript based search engine
|
||||
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
|
||||
|
||||
SEARCHENGINE = NO
|
||||
SEARCHENGINE = YES
|
||||
|
||||
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
|
||||
# implemented using a PHP enabled web server instead of at the web client
|
||||
@@ -1284,6 +1335,12 @@ LATEX_HIDE_INDICES = NO
|
||||
|
||||
LATEX_SOURCE_CODE = NO
|
||||
|
||||
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
|
||||
# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
|
||||
# http://en.wikipedia.org/wiki/BibTeX for more info.
|
||||
|
||||
LATEX_BIB_STYLE = plain
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the RTF output
|
||||
#---------------------------------------------------------------------------
|
||||
@@ -1315,7 +1372,7 @@ COMPACT_RTF = NO
|
||||
|
||||
RTF_HYPERLINKS = NO
|
||||
|
||||
# Load stylesheet definitions from file. Syntax is similar to doxygen's
|
||||
# Load style sheet definitions from file. Syntax is similar to doxygen's
|
||||
# config file, i.e. a series of assignments. You only have to provide
|
||||
# replacements, missing definitions are set to their default value.
|
||||
|
||||
@@ -1585,32 +1642,30 @@ HAVE_DOT = YES
|
||||
|
||||
DOT_NUM_THREADS = 0
|
||||
|
||||
# By default doxygen will write a font called Helvetica to the output
|
||||
# directory and reference it in all dot files that doxygen generates.
|
||||
# When you want a differently looking font you can specify the font name
|
||||
# using DOT_FONTNAME. You need to make sure dot is able to find the font,
|
||||
# which can be done by putting it in a standard location or by setting the
|
||||
# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
|
||||
# containing the font.
|
||||
# By default doxygen will use the Helvetica font for all dot files that
|
||||
# doxygen generates. When you want a differently looking font you can specify
|
||||
# the font name using DOT_FONTNAME. You need to make sure dot is able to find
|
||||
# the font, which can be done by putting it in a standard location or by setting
|
||||
# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
|
||||
# directory containing the font.
|
||||
|
||||
DOT_FONTNAME = FreeSans
|
||||
DOT_FONTNAME = Roboto
|
||||
|
||||
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
|
||||
# The default size is 10pt.
|
||||
|
||||
DOT_FONTSIZE = 10
|
||||
|
||||
# By default doxygen will tell dot to use the output directory to look for the
|
||||
# FreeSans.ttf font (which doxygen will put there itself). If you specify a
|
||||
# different font using DOT_FONTNAME you can set the path where dot
|
||||
# can find it using this tag.
|
||||
# By default doxygen will tell dot to use the Helvetica font.
|
||||
# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
|
||||
# set the path where dot can find it.
|
||||
|
||||
DOT_FONTPATH =
|
||||
|
||||
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||
# will generate a graph for each documented class showing the direct and
|
||||
# indirect inheritance relations. Setting this tag to YES will force the
|
||||
# the CLASS_DIAGRAMS tag to NO.
|
||||
# CLASS_DIAGRAMS tag to NO.
|
||||
|
||||
CLASS_GRAPH = YES
|
||||
|
||||
@@ -1681,10 +1736,21 @@ DIRECTORY_GRAPH = YES
|
||||
|
||||
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
|
||||
# generated by dot. Possible values are svg, png, jpg, or gif.
|
||||
# If left blank png will be used.
|
||||
# If left blank png will be used. If you choose svg you need to set
|
||||
# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
|
||||
# visible in IE 9+ (other browsers do not have this requirement).
|
||||
|
||||
DOT_IMAGE_FORMAT = png
|
||||
|
||||
# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
|
||||
# enable generation of interactive SVG images that allow zooming and panning.
|
||||
# Note that this requires a modern browser other than Internet Explorer.
|
||||
# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
|
||||
# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
|
||||
# visible. Older versions of IE do not have SVG support.
|
||||
|
||||
INTERACTIVE_SVG = NO
|
||||
|
||||
# The tag DOT_PATH can be used to specify the path where the dot tool can be
|
||||
# found. If left blank, it is assumed the dot tool can be found in the path.
|
||||
|
||||
@@ -1735,7 +1801,7 @@ DOT_TRANSPARENT = NO
|
||||
# makes dot run faster, but since only newer versions of dot (>1.8.10)
|
||||
# support this, this feature is disabled by default.
|
||||
|
||||
DOT_MULTI_TARGETS = NO
|
||||
DOT_MULTI_TARGETS = YES
|
||||
|
||||
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
|
||||
# generate a legend page explaining the meaning of the various boxes and
|
||||
|
||||
+3
-3
@@ -36,7 +36,7 @@
|
||||
<!-- This is a single string setting. When writing this out to the doxyfile,
|
||||
it will be quoted and treated as a whole. -->
|
||||
<string name="OUTPUT_LANGUAGE">English</string>
|
||||
<!-- A list setting contains multiple elements, seperated by whitespace. Each
|
||||
<!-- A list setting contains multiple elements, separated by whitespace. Each
|
||||
individual item will be quoted and treated as a whole for Doxygen. By
|
||||
default a list replaces the existing setting. If the append attribute is
|
||||
set to true, then the items will be added to the existing set. -->
|
||||
@@ -132,7 +132,7 @@
|
||||
<input>./src/clutils</input>
|
||||
<input>./src/exppp</input>
|
||||
<input>./src/express</input>
|
||||
<input>./src/fedex_plus</input>
|
||||
<input>./src/exp2cxx</input>
|
||||
<input>./src/test</input>-->
|
||||
<!-- A list of files/paths to exclude. Add one <exclude> tag per path to
|
||||
exclude. This will automatically be expanded to exclude input directories
|
||||
@@ -240,7 +240,7 @@
|
||||
<project>
|
||||
<name>Fedex Plus</name>
|
||||
<version> </version>
|
||||
<input>./src/fedex_plus</input>
|
||||
<input>./src/exp2cxx</input>
|
||||
</project>
|
||||
<project>
|
||||
<name>Tests</name>
|
||||
|
||||
@@ -1,680 +0,0 @@
|
||||
.\" This manual was prepared by United States Government employees as a
|
||||
.\" part of their official duties and is, therefore, a work of the U.S.
|
||||
.\" Government and not subject to copyright.
|
||||
.\"
|
||||
.\" $Id: dataprobe.1,v 2.1.0.2 1997/10/27 18:37:10 dar Exp $
|
||||
.TH DATAPROBE 1 "12 June 1995"
|
||||
|
||||
.SH NAME
|
||||
Data Probe - STEP editing tool
|
||||
.SH SYNOPSIS
|
||||
.B dp_{schema_name}
|
||||
[
|
||||
.B -saveFile
|
||||
.I file-name
|
||||
]
|
||||
[
|
||||
.B -saveFreq
|
||||
.I integer
|
||||
]
|
||||
[
|
||||
.B -workFile
|
||||
.I file-name
|
||||
]
|
||||
[
|
||||
.B -exchangeFile
|
||||
.I file-name
|
||||
]
|
||||
[
|
||||
.B -restrict
|
||||
]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
The Validation Testing System (VTS) Data Probe software is a program
|
||||
for browsing and editing data corresponding to a conceptual model
|
||||
described using the language Express. A separate program (fedex_plus)
|
||||
reads in a schema and generates source code to represent the schema in
|
||||
C++. This code is linked with the libraries in the STEP Class Library
|
||||
to create a schema specific editor. The editor is X Windows based and
|
||||
uses the InterViews Toolkit from Stanford.
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.TP
|
||||
.B \-s \fIfilename\fP, \fB-saveFile \fIfilename\fP
|
||||
Designates an alternate backup file. The default file is dpAutoSave.wf.
|
||||
.TP
|
||||
.B \-sf \fIseconds\fP, \fB-saveFreq \fIseconds\fP
|
||||
Specifies the frequency with which a backup file will be saved. The default frequency is 30 seconds.
|
||||
.TP
|
||||
.B \-wf \fIfilename\fP, \fB-workFile \fIfilename\fP
|
||||
Specifies a working file to be loaded into the Data Probe.
|
||||
.TP
|
||||
.B \-ef \fIfilename\fP, \fB-exchangeFile \fIfilename\fP
|
||||
Specifies a STEP exchange file to be loaded into the Data Probe.
|
||||
.TP
|
||||
.B \-r, \fB-restrict \fP
|
||||
Restricts the file chooser menu to files not beginning with a '.'.
|
||||
|
||||
.SH USAGE
|
||||
.LP
|
||||
The Data Probe supports the editing of data in the format specified in
|
||||
Part 21 of the ISO 10103. It allows the user to create or modify
|
||||
instance data, to check for consistency with an Express schema and to
|
||||
examine the relationships of entities within the schema. These
|
||||
functions are supported in one or more of the following five types of
|
||||
Data Probe windows:
|
||||
|
||||
.nf
|
||||
Data Probe Window: supports general Data Probe func-
|
||||
tionalities, including file management, schema list
|
||||
browsing, and quitting Data Probe.
|
||||
|
||||
Entity Type List window: contains a scrollable list
|
||||
of schema-specific entities for browsing or creating
|
||||
instances of entities.
|
||||
|
||||
Entity Instance List window: contains a scrollable
|
||||
list of instances of entities. Supports data view-
|
||||
ing and modification.
|
||||
|
||||
STEP Entity Editor window: occurs for each instance
|
||||
being edited. Supports several data editing opera-
|
||||
tions including modify, delete and save.
|
||||
|
||||
STEP Entity Descriptor window: contains information
|
||||
pertaining to an entity type including the list of
|
||||
attributes and subtypes for the selected entity.
|
||||
|
||||
Each of these windows is described in detail below.
|
||||
.fi
|
||||
.LP
|
||||
.I
|
||||
DATA PROBE WINDOW
|
||||
.nf
|
||||
|
||||
The Data Probe window is one of three windows appearing
|
||||
initially when the Data Probe is run. It is composed of
|
||||
the following four sections:
|
||||
|
||||
1. title
|
||||
2. menu bar
|
||||
3. quick reference
|
||||
4. message bar
|
||||
|
||||
Each of these sections is described in detail below:
|
||||
|
||||
.I
|
||||
Data Probe Window title section:
|
||||
.fi
|
||||
.LP
|
||||
The title section shows the name of the schema for which the Data
|
||||
Probe was created preceeded by the prefix 'DP-'.
|
||||
.nf
|
||||
|
||||
.I
|
||||
Data Probe Window menu bar section:
|
||||
|
||||
The menu bar consists of two pull-down menus labeled
|
||||
Quit and File Management.
|
||||
|
||||
The Quit pull-down menu allows the user to exit Data
|
||||
Probe. No warnings will be given before exiting.
|
||||
|
||||
The File Management pull-down menu allows the user to
|
||||
perform operations on the following file types:
|
||||
|
||||
Exchange Files Data saved to these files must be in
|
||||
complete STEP file format and must be
|
||||
provided for all required attributes
|
||||
in order to be used by application
|
||||
programs that will rely on this data.
|
||||
|
||||
Working Files These files will not be used by appli-
|
||||
cation programs and serve the purpose
|
||||
of storing intermediate data for saving
|
||||
the editing session.
|
||||
|
||||
Backup File This file is written regularly during
|
||||
a Data Probe session to contain the
|
||||
current Entity Instance List data. The
|
||||
backup file is written in Working File
|
||||
form. The default backup file is
|
||||
dpAutoSave.wf and is written to the
|
||||
directory where the command to run Data
|
||||
Probe was issued unless instructed
|
||||
otherwise by the user (See 'Backup File'
|
||||
in table below and OPTIONS above).
|
||||
|
||||
|
||||
The File Management pull-down menu supports file manage-
|
||||
ment and other options as follows:
|
||||
|
||||
Options
|
||||
Available
|
||||
.I
|
||||
with Options Description
|
||||
|
||||
Exchange File/ read replaces previous contents of
|
||||
Working File Entity Instance List data
|
||||
with the data in the file
|
||||
selected.
|
||||
|
||||
write writes Entity Instance List
|
||||
data to the file selected and
|
||||
erases the previous contents
|
||||
of the file, if any.
|
||||
|
||||
append writes Entity Instance List
|
||||
from data to the file selected.
|
||||
|
||||
|
||||
|
||||
Backup File choose selects an alternate backup
|
||||
file to which Entity Instance
|
||||
List data will be periodic-
|
||||
ally written.
|
||||
|
||||
write writes Entity Instance List
|
||||
data to current backup file
|
||||
selected.
|
||||
|
||||
|
||||
|
||||
Entity verify verifies that the instances
|
||||
Instance List found in the Entity Instance
|
||||
List are complete according
|
||||
to the schema specification.
|
||||
|
||||
remove removes all instances in the
|
||||
Entity Instance List which
|
||||
are marked for deletion.
|
||||
|
||||
clear clears all instances found
|
||||
in the Entity Instance List
|
||||
regardless of their current
|
||||
edit state (see the ENTITY
|
||||
INSTANCE LIST section).
|
||||
|
||||
.I
|
||||
Data Probe Window quick reference section:
|
||||
|
||||
This section shows the key bindings and button codes
|
||||
available in the Step Entity Editor windows to perform the
|
||||
following operations:
|
||||
|
||||
- close existing window
|
||||
|
||||
- open a new window
|
||||
|
||||
- get value from list
|
||||
|
||||
.I
|
||||
Data Probe Window message bar section:
|
||||
|
||||
This section shows any resulting messages from actions
|
||||
taken in any of the windows. The Clear button on left
|
||||
enables the user to clear the current message shown.
|
||||
|
||||
.fi
|
||||
.LP
|
||||
.I
|
||||
ENTITY TYPE LIST WINDOW
|
||||
|
||||
The Entity Type List is the second of the three windows appearing initially when the Data Probe is run. The Entity Type List displays the list of schema-specific entity types. In addition to the operations outlined in 'Using Lists' below, the Entity Type List allows the user to create an instance as follows:
|
||||
.nf
|
||||
|
||||
.I
|
||||
Creating an Instance
|
||||
|
||||
1. Select an entity type from the type list.
|
||||
|
||||
2. Select Create
|
||||
|
||||
- use Create button or
|
||||
|
||||
- type 'C'.
|
||||
|
||||
3. A STEP Entity Editor window appears for editing
|
||||
the entity selected (See the STEP Entity Editor
|
||||
Window section below).
|
||||
|
||||
|
||||
|
||||
.fi
|
||||
.I
|
||||
ENTITY INSTANCE LIST WINDOW
|
||||
|
||||
The Entity Instance List is the third of three windows initially appearing when the Data Probe is run. When an entity is selected from the Entity Type List or when instances are read in from a file, the instanced entities will appear on the Entity Instance List. In addition to the operations outlined in 'Using Lists' below, the Entity Instance List allows the user to view, modify, and save instances of entities.
|
||||
.nf
|
||||
|
||||
.I
|
||||
Edit State Markers:
|
||||
.fi
|
||||
.LP
|
||||
The selection of any of the preceeding options is represented by an edit state code. An instance can be marked with an edit state option by typing the key which correlates to that option. The marked option is shown in lower case on the left of the selected instance. When the execute button is pressed, all marked options will be executed, reflected by an upper case letter edit state code which replaces the lower case marker to the left of the intance.
|
||||
|
||||
Below is a description of Entity List edit state codes and the keys that are used to select them:
|
||||
|
||||
KEY OPERATION EDIT STATE
|
||||
|
||||
s save complete (no capital letter) -- All (blank)
|
||||
attribute values associated with the
|
||||
instance must be valid and all required
|
||||
attributes must exist.
|
||||
|
||||
i save incomplete -- All attribute values I
|
||||
associated with the instance must be
|
||||
valid, however all required attributes
|
||||
may not exist. This allows attribute
|
||||
values to be saved even though the entity
|
||||
is incomplete. It also provides a way
|
||||
for a user to mark an instance as needing
|
||||
further attention even if all required
|
||||
attributes exist.
|
||||
|
||||
d delete -- the entities in this edit D
|
||||
state will be deleted when the contents
|
||||
of the instance list are written to a
|
||||
file.
|
||||
|
||||
m modify -- open an editor window for M
|
||||
modifying instances.
|
||||
|
||||
v view -- open an editor window for view- V
|
||||
ing only.
|
||||
|
||||
|
||||
|
||||
.I
|
||||
STEP ENTITY EDITOR (SEE) WINDOW
|
||||
|
||||
The edit state options described above can also be executed from the STEP Entity Editor Window (SEE). The SEE Window is opened whenever the modify or view option is executed from the Entity Instance List or when an entity is created from the Entity Type List. The following are the operations supported in the SEE window:
|
||||
|
||||
.nf
|
||||
.I
|
||||
Changing the Edit State of an Entity
|
||||
|
||||
save instance to a complete state C-x C-s
|
||||
|
||||
save instance to an incomplete state C-x C-i
|
||||
|
||||
cancel changes to the entity; reverts C-x C-c
|
||||
all attribute values to the last
|
||||
saved (complete or incomplete) values
|
||||
|
||||
mark instance for deletion C-x C-d
|
||||
|
||||
Each of the above options can also be selected by
|
||||
clicking the corresponding button in the SEE win-
|
||||
dow.
|
||||
|
||||
.I
|
||||
Selecting an Attribute
|
||||
|
||||
Using mouse:
|
||||
|
||||
Point the mouse cursor inside the attribute
|
||||
editing box desired and click the left mouse
|
||||
button.
|
||||
|
||||
Using key bindings:
|
||||
|
||||
select next attribute C-n
|
||||
|
||||
select previous attribute C-p
|
||||
|
||||
.I
|
||||
Editing an Attribute
|
||||
|
||||
Using mouse:
|
||||
|
||||
Point the mouse cursor inside the desired editing
|
||||
box and click the left mouse button to place the
|
||||
cursor at the desired postion inside the editing
|
||||
box.
|
||||
|
||||
Using key bindings:
|
||||
|
||||
move cursor forward C-f
|
||||
|
||||
move cursor backward C-b
|
||||
|
||||
move cursor to the end C-e
|
||||
|
||||
move cursor to the beginning C-a
|
||||
|
||||
move cursor one word forward <esc>-f
|
||||
|
||||
move cursor one word backward <esc>-b
|
||||
|
||||
Delete and undo:
|
||||
|
||||
deleting a portion of the attribute
|
||||
|
||||
1. Point the mouse cursor inside the desired attri-
|
||||
bute editing box, click and hold the left mouse
|
||||
button.
|
||||
2. Drag the mouse to the left or right to highlight
|
||||
desired text.
|
||||
3. Press <delete> or input a value to replace selec-
|
||||
ted text.
|
||||
|
||||
delete a character in place C-d
|
||||
|
||||
delete the previous character <delete> or
|
||||
C-h
|
||||
|
||||
select the remainder of the word
|
||||
following the cursor to be deleted C-w
|
||||
|
||||
select everything following the C-k
|
||||
cursor to be deleted
|
||||
|
||||
select the entire text to be deleted C-u
|
||||
|
||||
undo attribute (revert attribute to C-x C-u
|
||||
the last saved value)
|
||||
|
||||
Scrolling:
|
||||
|
||||
horizontal grab scroll - use left mouse button
|
||||
|
||||
1. Point the mouse inside the attribute list.
|
||||
|
||||
2. Press and hold the middle mouse button.
|
||||
|
||||
3. Slide the mouse left or right to scroll
|
||||
the window in the same direction.
|
||||
|
||||
horizontal rate scroll - use right mouse button
|
||||
|
||||
1. Point the mouse inside the attribute list.
|
||||
|
||||
2. Press and hold the right mouse button.
|
||||
|
||||
3. Slide the mouse left or right to scroll
|
||||
the window in the same direction.
|
||||
|
||||
The following editing actions are permissable on attributes
|
||||
that are of type entity only:
|
||||
|
||||
edit entity - press the edit button (marked e) or type
|
||||
C-x C-e
|
||||
|
||||
If the attribute contains an entity id, the
|
||||
identified entity will be put on the screen
|
||||
in a STEP Entity Editor window.
|
||||
|
||||
If the attribute is empty, a new entity of
|
||||
the type corresponding to the attribute type
|
||||
will be created and displayed on the screen
|
||||
in a STEP Entity Editor window. The entity
|
||||
id corresponding to the newly created entity
|
||||
will be filled in for the attribute.
|
||||
|
||||
select marked entity - press the select mark button
|
||||
(marked m) or type C-x C-m:
|
||||
|
||||
The entity id of the selected entity from the
|
||||
Entity Instance List will be filed in for the
|
||||
current atttribute.
|
||||
|
||||
|
||||
.fi
|
||||
.LP
|
||||
.I
|
||||
STEP ENTITY DESCRIPTOR WINDOW (SED)
|
||||
|
||||
The SED window enables the user to review information regarding an entity type. It may be opened by selecting the Type Information box in the Entity Type List or SEE window (See the Entity Type List and STEP Entity Editor window sections above). A SED window may also be opened from within a SED window as is described below.
|
||||
.nf
|
||||
|
||||
Format of a SED window:
|
||||
|
||||
1. Entity Descriptor Boxes
|
||||
|
||||
The body of a SED window is composed of entity descrip-
|
||||
tor boxes. These boxes are shown in order of inheri-
|
||||
tance starting with the selected entity type at the bot-
|
||||
tom of the window up to the root entity type shown at the
|
||||
top of the window. Each entity descriptor box contains a
|
||||
title bar, an attribute list and a subtype list described
|
||||
below.
|
||||
|
||||
title bar - contains the name of the entity
|
||||
in bold print at the left corner and the schema
|
||||
in which the entity is defined at the right corner.
|
||||
|
||||
attribute list - a scrollable list of attributes
|
||||
defined in the corresponding entity shown on the
|
||||
left side of the descriptor box.
|
||||
|
||||
subtype list - a scrollable list of the subtypes
|
||||
of the corresponding entity shown on the right side
|
||||
of the descriptor box.
|
||||
|
||||
2. Attr. Type subwindow
|
||||
|
||||
The Attr. Type subwindow shown at the bottom of the SED
|
||||
window displays further information regarding a selected
|
||||
attrtibute.
|
||||
|
||||
Using a SED window:
|
||||
|
||||
1. Scrolling the attribute/subtype list
|
||||
|
||||
a. Place mouse pointer on up/down arrow.
|
||||
|
||||
b. Press right mouse button.
|
||||
|
||||
2. Viewing a detailed description of an attribute:
|
||||
|
||||
a. Place mouse pointer on desired
|
||||
attribute.
|
||||
|
||||
b. Double click mouse button. A detailed description
|
||||
of the attribute type will be displayed in the
|
||||
Attr. Type subwindow located at the bottom of the
|
||||
SED window.
|
||||
|
||||
3. Opening a SED window from the current SED window:
|
||||
|
||||
a. Place mouse cursor on the desired entity from
|
||||
an entity subytpe list.
|
||||
|
||||
b. Double click the mouse button. A new SED window
|
||||
will appear for the entity type selected.
|
||||
|
||||
3. Collapsing/Uncollapsing a descriptor box
|
||||
|
||||
Collapse - show title bar only
|
||||
Uncollapse - show attribute and subtype lists
|
||||
|
||||
a. Place mouse cursor on collapse button of desired
|
||||
descriptor box.
|
||||
|
||||
b. Click left mouse button. This will cause the
|
||||
descriptor box to switch from uncollapsed to
|
||||
collapsed or vice-versa depending on the current
|
||||
state of the descriptor box.
|
||||
|
||||
Exiting a SED window:
|
||||
|
||||
1. Place mouse pointer on close button on left
|
||||
top corner of window
|
||||
|
||||
2. Press left mouse button
|
||||
|
||||
Warning: Do not use the standard close and quit
|
||||
options provided for windows. This may
|
||||
cause you to inadvertantly quit the Data
|
||||
Probe session. Use the close button pro-
|
||||
vided.
|
||||
|
||||
.fi
|
||||
.LP
|
||||
.I
|
||||
USING LISTS
|
||||
|
||||
The following instructions are applicable to both the Entity Instance List and the Entity Type List.
|
||||
|
||||
.nf
|
||||
.I
|
||||
Selecting an Entry
|
||||
|
||||
Using mouse:
|
||||
|
||||
Positon the mouse on the entry and click the left
|
||||
mouse button.
|
||||
|
||||
Using keystroke commands:
|
||||
|
||||
search formward, selects the entry containing C-s
|
||||
the substring specified in the search window
|
||||
|
||||
reverse search, selects the entry containing C-r
|
||||
the substring specified in the search window
|
||||
|
||||
select next entry C-n
|
||||
|
||||
select previous entry C-p
|
||||
|
||||
select top entry <
|
||||
|
||||
select bottom entry >
|
||||
|
||||
deselect selected entry C-h
|
||||
<delete>
|
||||
|
||||
.I
|
||||
Reviewing Information Regarding an Entity Type
|
||||
|
||||
Allows the user to view information regarding attributes
|
||||
and subtypes and supertypes of an entity type using a
|
||||
STEP ENTITY DESCRIPTOR (SED) window:
|
||||
|
||||
Opening a SED window:
|
||||
|
||||
1. Select an entity type from list.
|
||||
|
||||
2. Select Type Information by placing the
|
||||
mouse pointer on the Type Information
|
||||
box and pressing the left mouse button.
|
||||
|
||||
For information on the use of the SED window, see the
|
||||
STEP Entity Editor window section above.
|
||||
|
||||
.I
|
||||
Scrolling Lists
|
||||
|
||||
Using mouse:
|
||||
|
||||
1. Position the mouse pointer to the scroll bar and
|
||||
click.
|
||||
|
||||
2. Click (and optionally hold) the up mover or down
|
||||
mover located above and below the scroll bar
|
||||
respectively to scroll bar.
|
||||
|
||||
vertical grab scroll -- use middle mouse button
|
||||
|
||||
1. Point the mouse cursor inside the list.
|
||||
|
||||
2. Press and hold the right mouse button.
|
||||
|
||||
3. Slide the mouse up or down to move the display
|
||||
up or down as desired.
|
||||
|
||||
vertical rate scroll -- use right mouse button
|
||||
|
||||
1. Point the mouse cusor inside the list.
|
||||
|
||||
2. Press and hold the right mouse button.
|
||||
|
||||
3. Slide the mouse up or down to scroll the list in
|
||||
the desired direction at a rate increasing as the
|
||||
mouse is moved away from its original position.
|
||||
|
||||
Using key bindings:
|
||||
|
||||
scroll list to beginning C-a
|
||||
|
||||
scroll list to end C-e
|
||||
|
||||
scroll up C-b
|
||||
C-k
|
||||
|
||||
scroll down C-f
|
||||
C-j
|
||||
|
||||
page down C-v
|
||||
' '
|
||||
|
||||
half page down C-d
|
||||
|
||||
half page up C-u
|
||||
|
||||
.fi
|
||||
.I
|
||||
USING BUTTONS TO SELECT OPTIONS
|
||||
|
||||
Many of the Data Probe options can be selected by using keystroke commands as described. Some options, however may be selected by using the selection buttons which correspond to those options as follows:
|
||||
.nf
|
||||
|
||||
1. Activate pull-down menu (if applicable):
|
||||
|
||||
- Place mouse pointer on menu button
|
||||
|
||||
- Press right mouse button and hold
|
||||
|
||||
2. Select an option
|
||||
|
||||
- Place mouse pointer on selection button correspond-
|
||||
ing to the desired option
|
||||
|
||||
- Press left mouse button to activate option
|
||||
|
||||
.fi
|
||||
.SH SEE ALSO
|
||||
mkProbe(1)
|
||||
.LP
|
||||
ISO 10303-11:1994
|
||||
.I
|
||||
\Industrial automation systems and integration - Product data \
|
||||
representation and exchange - Part 11: Description Methods: The \
|
||||
EXPRESS Language Reference Manual.
|
||||
.LP
|
||||
ISO 10303-21:1994
|
||||
.I
|
||||
\Industrial automation systems and integration - Product data \
|
||||
representation and exchange - Part 21: Implementation methods: \
|
||||
Clear text encoding of the exchange structure.
|
||||
.LP
|
||||
Morris, K.C., Sauderd, D., Ressler, S.,
|
||||
.I
|
||||
\Validation Testing System: Reusable Software Component Design,
|
||||
NISTIR 4937, National Institute of Standards and Technology, October
|
||||
1992.
|
||||
.LP
|
||||
Sauder, D.,
|
||||
.I
|
||||
\Data Probe Users Guide,
|
||||
NISTIR 5141, National Institute of Standards and Technology, March
|
||||
1993.
|
||||
|
||||
.SH NOTE
|
||||
.LP
|
||||
The source code for the Data Probe was designed with reusability in
|
||||
mind. The code uses the STEP Class Library (developed at NIST) and
|
||||
the InterViews Toolkit (from Stanford). The STEP Class Library is
|
||||
divided into four libraries: Stepcore & Editor, Utilities, General
|
||||
User Interface, and Probe. Dependencies between these modules has
|
||||
been minimized so that the executable program, the Data Probe, can be
|
||||
easily reconfigured to support different conceptual schemas.
|
||||
|
||||
All NISTIR documents may be obtained through the National Technical
|
||||
Information Service (NTIS), Springfield VA 22161, USA. Postscript
|
||||
files may be obtained through anonymous ftp from ftp.cme.nist.gov (see
|
||||
pub/step/nptdocs/readme.txt to determine the appropriate file to
|
||||
download).
|
||||
@@ -2,12 +2,12 @@
|
||||
.\" part of their official duties and is, therefore, a work of the U.S.
|
||||
.\" Government and not subject to copyright.
|
||||
.\"
|
||||
.\" $Id: fedex_plus.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
|
||||
.\" $Id: exp2cxx.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
|
||||
.TH FEDEX_PLUS 1 "19 November 1997"
|
||||
.SH NAME
|
||||
fedex_plus - EXPRESS compiler and translater
|
||||
exp2cxx - EXPRESS compiler and translator
|
||||
.SH SYNOPSIS
|
||||
fedex_plus [ options ] [ express-file ]
|
||||
exp2cxx [ options ] [ express-file ]
|
||||
.nf
|
||||
|
||||
Command Arguments:
|
||||
@@ -19,36 +19,36 @@ Command Arguments:
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
fedex_plus is based on the NIST EXPRESS compiler fedex. fedex_plus
|
||||
exp2cxx is based on the NIST EXPRESS compiler fedex. exp2cxx
|
||||
translates an EXPRESS file into C++ code and a class library. The C++
|
||||
library includes classes for representing all the types and entities
|
||||
in the input EXPRESS file, and a dictionary for describing those
|
||||
classes. The translation depends on base classes provided in the NIST
|
||||
STEP Class Library.
|
||||
|
||||
fedex_plus does not create C++ representations of the rules,
|
||||
exp2cxx does not create C++ representations of the rules,
|
||||
procedures, or any EXPRESS constructs other than schemas, types and
|
||||
entities. It supports multiple schemas contained in a single file and
|
||||
complex entities. It generates code which can be integrated with
|
||||
orbix and ObjectStore.
|
||||
|
||||
Combined with the NIST STEP Class Library, the translator provides a
|
||||
"C++ working form" of an EXPRESS schema. fedex_plus was designed for
|
||||
"C++ working form" of an EXPRESS schema. exp2cxx was designed for
|
||||
use together with a graphical data editing system (see dataprobe(1)),
|
||||
but care has been taken to keep fedex_plus separate so that it can be
|
||||
but care has been taken to keep exp2cxx separate so that it can be
|
||||
used as a component of other software systems.
|
||||
|
||||
The fedex_plus compiler makes two passes through the EXPRESS file. In
|
||||
the first pass fedex_plus reads the syntax of the EXPRESS file and
|
||||
detects any errors. In the second pass fedex_plus converts the
|
||||
The exp2cxx compiler makes two passes through the EXPRESS file. In
|
||||
the first pass exp2cxx reads the syntax of the EXPRESS file and
|
||||
detects any errors. In the second pass exp2cxx converts the
|
||||
EXPRESS code into C++ source code. The C++ source code is generated
|
||||
in files in the directory in which fedex_plus was run. The files are
|
||||
in files in the directory in which exp2cxx was run. The files are
|
||||
named according to the schema names in the input EXPRESS file.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B -s|S
|
||||
Tells fedex_plus to use only single-inheritance, rather than multiple
|
||||
Tells exp2cxx to use only single-inheritance, rather than multiple
|
||||
inheritance.
|
||||
.TP
|
||||
.B -c|C
|
||||
@@ -94,7 +94,7 @@ If no arguments are given in the command line, a list and description
|
||||
of the options available are sent to stdout.
|
||||
|
||||
.SH OUTPUT
|
||||
fedex_plus sends the following to stdout subject to the options
|
||||
exp2cxx sends the following to stdout subject to the options
|
||||
specified when executed:
|
||||
|
||||
- a statement indicating that the Express schema is being
|
||||
@@ -1,195 +0,0 @@
|
||||
.\" This manual was prepared by United States Government employees as a
|
||||
.\" part of their official duties and is, therefore, a work of the U.S.
|
||||
.\" Government and not subject to copyright.
|
||||
.\ "
|
||||
.\" $Id: mkProbe.1,v 2.1.0.3 1997/10/23 17:03:36 kcm Exp $
|
||||
.TH MKPROBE 1 "23 October 1997"
|
||||
.SH NAME
|
||||
mkProbe - script file used to generate a Data Probe or Part 21 file
|
||||
reader executable for an EXPRESS schema.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B mkProbe
|
||||
[
|
||||
.B -ilsSpP
|
||||
]
|
||||
[
|
||||
.B -R
|
||||
.I pdes-root
|
||||
]
|
||||
[
|
||||
.B -E
|
||||
.I express-path
|
||||
]
|
||||
.I express-file schema-name
|
||||
|
||||
.SH DESCRIPTION
|
||||
.LP
|
||||
mkProbe enables you to create a C++ library based on an EXPRESS file
|
||||
and an executable Data Probe or Part 21 file reader application. The
|
||||
Data Probe allows you to examine, input, and modify a data file
|
||||
corresponding to an EXPRESS schema. The Data Probe generated is
|
||||
specific to the express-file given as the first argument in the
|
||||
mkProbe command. The Part 21 file reader simply reads and writes a
|
||||
Part 21 file and outputs any errors encountered in the file.
|
||||
|
||||
.LP
|
||||
The schema-name argument designates a location in which to place the
|
||||
executable. The directory selected (see OPTIONS below) is searched
|
||||
for the schema name provided. If schema-name does not exist, a
|
||||
directory will be created using the name provided. schema-name is
|
||||
also used as a suffix for the name of the executable.
|
||||
|
||||
.LP
|
||||
A new directory is created under the directory from which the script
|
||||
was run. fedex_plus is called from this directory to generate the C++
|
||||
classes to represent the schema information (a.k.a. the Schema Class
|
||||
Library.)
|
||||
|
||||
The new directory contains the following:
|
||||
.nf
|
||||
.ft B
|
||||
|
||||
1) the source code for the C++ classes generated by fedex_plus using
|
||||
the first argument,
|
||||
|
||||
2) the object files generated from the source code above,
|
||||
|
||||
3) the library created from the object files above,
|
||||
|
||||
4) your new Data Probe executable (or p21read if the -p option was
|
||||
used.)
|
||||
|
||||
i.e. under the directory from which the
|
||||
script was run you will find the
|
||||
following executable:
|
||||
|
||||
{schema-name}/dp_{schema-name}
|
||||
(or {schema-name}/p21read_{schema-name})
|
||||
.fi
|
||||
.ft R
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.B -i
|
||||
Indicates that the new Data Probe should be installed into the PDES
|
||||
root directory. If -i is not specified the new Data Probe will be
|
||||
created in the directory from which the mkProbe script is run.
|
||||
|
||||
.TP
|
||||
.B -l
|
||||
Tells the script to only generate the library for the schema, and
|
||||
not to create the Data Probe application.
|
||||
|
||||
.TP
|
||||
.B -p
|
||||
.PD 0
|
||||
.TP
|
||||
.B -P
|
||||
Tells the script to generate the Part 21 file reader for the schema,
|
||||
rather than the Data Probe application.
|
||||
|
||||
.TP
|
||||
.B -s
|
||||
.PD 0
|
||||
.TP
|
||||
.B -S
|
||||
Tells fedex_plus to use only single-inheritance, rather than multiple
|
||||
inheritance.
|
||||
.PD
|
||||
|
||||
.TP
|
||||
.BI -R " pdes_root"
|
||||
Set the PDES root directory. This is the directory that mkProbe will
|
||||
consider the root of the source tree.
|
||||
|
||||
The PDES root directory can also be defined by the environment
|
||||
variable PDES_ROOT. This variable should be set using the appropriate
|
||||
shell command. For example, C shell users would give the command
|
||||
|
||||
.nf
|
||||
.ft B
|
||||
setenv PDES_ROOT ~pdes
|
||||
.fi
|
||||
.ft R
|
||||
|
||||
If the
|
||||
.B -r
|
||||
option is not given, and the PDES_ROOT environment variable is not
|
||||
set, mkProbe looks for the directory /proj/pdevel to use as the root.
|
||||
|
||||
.TP
|
||||
.BI -E " express-path"
|
||||
Specifies an EXPRESS_PATH environment variable to be used when
|
||||
fedex_plus is executed in mkProbe. If this option is not set, mkProbe
|
||||
will use the current EXPRESS_PATH environment variable. For more
|
||||
information, see the documentation on the
|
||||
.I NIST EXPRESS Toolkit.
|
||||
|
||||
.TP
|
||||
.I express-file
|
||||
The Express file used to create the schema specific Data Probe.
|
||||
|
||||
.TP
|
||||
.I schema-name
|
||||
A schema name which is used for naming a new directory and the Data
|
||||
Probe executable.
|
||||
|
||||
.SH EXAMPLES
|
||||
|
||||
.nf
|
||||
.ft B
|
||||
Input command line location and name
|
||||
----------------------------------------------------
|
||||
mkProbe part41.exp pt41 ./pt41/dp_pt41
|
||||
mkProbe -p part41.exp pt41 ./pt41/p21read_pt41
|
||||
mkProbe -i part41.exp pt41 $PDES_ROOT/arch/Probes/pt41/dp_pt41
|
||||
.ft R
|
||||
|
||||
|
||||
.SH OUTPUT
|
||||
|
||||
If errors are detected, the output generated shows the following:
|
||||
|
||||
- Errors in input
|
||||
|
||||
- Compilation errors
|
||||
|
||||
If no errors are encountered, the output generated shows
|
||||
the following:
|
||||
|
||||
- The name of the new Data Probe generated
|
||||
|
||||
- Instructions for running Data Probe
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
fedex_plus(1)
|
||||
.LP
|
||||
http://scl.nist.gov
|
||||
.LP
|
||||
ISO 10303-11:1994
|
||||
.I
|
||||
\Industrial Automation Systems and Integration - Product Data \
|
||||
Representation and Exchange - Part 11: Description Methods: The \
|
||||
EXPRESS Language Reference Manual.
|
||||
.LP
|
||||
Morris, K.C., Sauderd, D., Ressler, S.,
|
||||
.I
|
||||
\Validation Testing System: Reusable Software Component Design,
|
||||
NISTIR 4937, National Institute of Standards and Technology, October
|
||||
1992.
|
||||
.LP
|
||||
Sauder, D.,
|
||||
.I
|
||||
\Data Probe Users Guide,
|
||||
NISTIR 5141, National Institute of Standards and Technology, March
|
||||
1993.
|
||||
|
||||
.SH NOTE
|
||||
.LP
|
||||
All NISTIR documents may be obtained through the National Technical
|
||||
Information Service (NTIS), Springfield VA 22161, USA or through the
|
||||
web. See http://scl.nist.gov for a listing of related
|
||||
documentation.
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
#
|
||||
# CMakeLists.txt for AP203 Minimum
|
||||
#
|
||||
# This file is released to the public domain. Any part of this file may be
|
||||
# freely copied in part or in full for any purpose. No acknowledgment is required
|
||||
# for the use of this file.
|
||||
#
|
||||
project(AP203Minimum)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
# Set STEPCODE_ROOT_DIR to point to the root of the STEPcode source tree.
|
||||
if(NOT DEFINED STEPCODE_ROOT_DIR)
|
||||
message(FATAL_ERROR "STEPCODE_ROOT_DIR is not defined! Set via cmake-gui or on command line:\n cmake .. -DSTEPCODE_ROOT_DIR=/path/to/sc")
|
||||
endif(NOT DEFINED STEPCODE_ROOT_DIR)
|
||||
|
||||
# STEPCODE_ROOT_DIR is relative or absolute path?
|
||||
if(EXISTS "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}/src/express/express.c")
|
||||
set(STEPCODE_ROOT_DIR "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}")
|
||||
message("** STEPCODE_ROOT_DIR is a relative path; converted to absolute path: ${STEPCODE_ROOT_DIR}.")
|
||||
else()
|
||||
if(NOT EXISTS "${STEPCODE_ROOT_DIR}/src/express/express.c")
|
||||
message(FATAL_ERROR "**** Cannot locate STEPCODE_ROOT_DIR - try an absolute path.")
|
||||
endif(NOT EXISTS "${STEPCODE_ROOT_DIR}/src/express/express.c")
|
||||
endif(EXISTS "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}/src/express/express.c")
|
||||
|
||||
|
||||
# Use STEPcode as library, but build from this build process.
|
||||
set(SC_IS_SUBBUILD TRUE)
|
||||
|
||||
# Build type, DEBUG or RELEASE
|
||||
if(NOT DEFINED CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
endif(NOT DEFINED CMAKE_BUILD_TYPE)
|
||||
set(SC_BUILD_TYPE ${CMAKE_BUILD_TYPE})
|
||||
|
||||
# Path to STEPcode
|
||||
set(STEPCODE_BUILD_DIR ${CMAKE_BINARY_DIR}/sc CACHE PATH "STEPcode build subdir")
|
||||
|
||||
# STEP schema to build and link against.
|
||||
set(SCHEMA ap203)
|
||||
set(SC_BUILD_SCHEMAS ${SCHEMA} CACHE INTERNAL "Schema, internal, immutable" FORCE)
|
||||
|
||||
# Parse out schema name and library.
|
||||
set(SCHEMA_PATH "${STEPCODE_ROOT_DIR}/data/${SCHEMA}/*.exp")
|
||||
file(GLOB SCHEMA_FILE "${SCHEMA_PATH}")
|
||||
|
||||
if(NOT EXISTS ${SCHEMA_FILE})
|
||||
message(FATAL_ERROR "Cannot find the schema; cannot continue. Looked for ${SCHEMA_PATH} from ${CMAKE_CURRENT_LIST_DIR}")
|
||||
endif(NOT EXISTS ${SCHEMA_FILE})
|
||||
|
||||
|
||||
get_filename_component(SCHEMA_SN ${SCHEMA_FILE} NAME)
|
||||
string(REGEX REPLACE "\(.*\).[Ee][Xx][Pp]" "sdai_\\1" SCHEMA_LINK_NAME ${SCHEMA_SN})
|
||||
set(STEPCODE_LIBRARIES base stepcore stepeditor stepdai steputils ${SCHEMA_LINK_NAME})
|
||||
|
||||
# Add STEPCode project to CMake build.
|
||||
add_subdirectory(${STEPCODE_ROOT_DIR} "${CMAKE_CURRENT_BINARY_DIR}/sc" EXCLUDE_FROM_ALL)
|
||||
|
||||
# Set up STEPcode include directories.
|
||||
set(STEPCODE_INCLUDE_DIR
|
||||
${STEPCODE_ROOT_DIR}/src/base
|
||||
${STEPCODE_ROOT_DIR}/src/clstepcore
|
||||
${STEPCODE_ROOT_DIR}/src/cldai
|
||||
${STEPCODE_ROOT_DIR}/src/clutils
|
||||
${STEPCODE_ROOT_DIR}/src/cleditor
|
||||
${STEPCODE_BUILD_DIR}/include
|
||||
${STEPCODE_ROOT_DIR}/include
|
||||
${CMAKE_BINARY_DIR}
|
||||
${STEPCODE_BUILD_DIR}/schemas/${SCHEMA_LINK_NAME}
|
||||
)
|
||||
|
||||
# Reset sane values for build destination. Otherwise, everything ends up in ${CMAKE_BINARY_DIR}/sc
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
include_directories(
|
||||
${STEPCODE_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Application sources and headers
|
||||
set(SRCS ap203min.cpp)
|
||||
|
||||
set(HDRS )
|
||||
|
||||
add_executable(${PROJECT_NAME} ${SRCS} ${HDRS})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} ${STEPCODE_LIBRARIES})
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
#
|
||||
# CMakeLists.txt for AP203 Minimum
|
||||
#
|
||||
# This file is released to the public domain. Any part of this file may be
|
||||
# freely copied in part or in full for any purpose. No acknowledgment is required
|
||||
# for the use of this file.
|
||||
#
|
||||
project(AP203Minimum)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
INCLUDE( ExternalProject )
|
||||
|
||||
set(CMAKE_MODULE_PATH ${AP203Minimum_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
|
||||
|
||||
INCLUDE( External_STEPCode )
|
||||
|
||||
#####
|
||||
# Variables ideally set by FindSTEPCode.cmake
|
||||
|
||||
IF(NOT WIN32)
|
||||
set( STEPCODE_LIBRARIES
|
||||
${STEPCODE_INSTALL_DIR}/lib/libbase.a
|
||||
${STEPCODE_INSTALL_DIR}/lib/libstepcore.a
|
||||
${STEPCODE_INSTALL_DIR}/lib/libstepeditor.a
|
||||
${STEPCODE_INSTALL_DIR}/lib/libstepdai.a
|
||||
${STEPCODE_INSTALL_DIR}/lib/libsteputils.a
|
||||
${STEPCODE_INSTALL_DIR}/lib/libsdai_ap203.a
|
||||
)
|
||||
ELSE()
|
||||
set( STEPCODE_LIBRARIES
|
||||
${STEPCODE_INSTALL_DIR}/lib/libbase.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libstepcore.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libstepeditor.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libstepdai.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libsteputils.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libsdai_ap203.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libexpress.lib
|
||||
${STEPCODE_INSTALL_DIR}/lib/libexppp.lib
|
||||
shlwapi.lib
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
MESSAGE( STATUS "STEPCODE_INSTALL_DIR: " ${STEPCODE_INSTALL_DIR} )
|
||||
|
||||
set( STEPCODE_INCLUDE_DIR
|
||||
${STEPCODE_INSTALL_DIR}/include/stepcode
|
||||
${STEPCODE_INSTALL_DIR}/include/stepcode/base
|
||||
${STEPCODE_INSTALL_DIR}/include/stepcode/clstepcore
|
||||
${STEPCODE_INSTALL_DIR}/include/stepcode/cldai
|
||||
${STEPCODE_INSTALL_DIR}/include/stepcode/clutils
|
||||
${STEPCODE_INSTALL_DIR}/include/stepcode/cleditor
|
||||
${STEPCODE_INSTALL_DIR}/include/schemas/sdai_ap203
|
||||
)
|
||||
|
||||
# End of variables ideally set by FindSTEPCode.cmake
|
||||
######
|
||||
|
||||
|
||||
include_directories(
|
||||
${STEPCODE_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
set(SRCS ../ap203min.cpp)
|
||||
|
||||
set(HDRS )
|
||||
|
||||
add_executable( ${PROJECT_NAME} ${SRCS} ${HDRS})
|
||||
|
||||
add_dependencies( ${PROJECT_NAME} STEPCODE )
|
||||
|
||||
target_link_libraries( ${PROJECT_NAME}
|
||||
${STEPCODE_LIBRARIES}
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -0,0 +1,24 @@
|
||||
ExternalProject_Add( STEPCODE
|
||||
URL ${CMAKE_CURRENT_SOURCE_DIR}/../../..
|
||||
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
|
||||
-DSC_BUILD_TYPE=Debug
|
||||
-DSC_BUILD_SCHEMAS=ap203/ap203.exp
|
||||
-DSC_BUILD_STATIC_LIBS=ON
|
||||
-DSC_PYTHON_GENERATOR=OFF
|
||||
-DSC_INSTALL_PREFIX:PATH=<INSTALL_DIR>
|
||||
)
|
||||
ExternalProject_Get_Property( STEPCODE SOURCE_DIR )
|
||||
ExternalProject_Get_Property( STEPCODE BINARY_DIR )
|
||||
ExternalProject_Get_Property( STEPCODE INSTALL_DIR )
|
||||
|
||||
IF( NOT WIN32 )
|
||||
SET( STEPCODE_INSTALL_DIR ${SOURCE_DIR}/../sc-install )
|
||||
ELSE()
|
||||
SET( STEPCODE_INSTALL_DIR ${INSTALL_DIR} )
|
||||
ENDIF()
|
||||
|
||||
SET( STEPCODE_BINARY_DIR ${BINARY_DIR} )
|
||||
|
||||
@@ -0,0 +1,719 @@
|
||||
//*****************************************************************************
|
||||
// AP203 Minimum
|
||||
//
|
||||
// This program is intended to serve as a tutorial example for programmers
|
||||
// interested in learning about ISO 10303 (STEP), the STEPcode project, and
|
||||
// the AP203 portion of STEP.
|
||||
//
|
||||
// This program creates and connects the minimum set of entities required
|
||||
// to form a valid AP203 STEP file. Inspiration for this program came from
|
||||
// Appendix B of 'Recommended Practices for AP 203' released to the public
|
||||
// domain in 1998 by PDES Inc. The recommended practices document is
|
||||
// available online at:
|
||||
//
|
||||
// http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf
|
||||
//
|
||||
// The recommended practices document states:
|
||||
//
|
||||
// "This document has been developed by the PDES, Inc. Industry
|
||||
// consortium to aid in accelerating the implementation of the
|
||||
// STEP standard. It has not been copyrighted to allow for the
|
||||
// free exchange of the information. PDES, Inc. Requests that
|
||||
// anyone using this information provide acknowledgment that
|
||||
// PDES, Inc. was the original author."
|
||||
//
|
||||
// In the same spirit, this program is released to the public domain. Any
|
||||
// part of this program may be freely copied in part or in full for any
|
||||
// purpose. No acknowledgment is required for the use of this code.
|
||||
//
|
||||
// This program was written by Rob McDonald in October 2013. Since that
|
||||
// time, it has been maintained by the STEPcode project.
|
||||
//
|
||||
//****************************************************************************/
|
||||
|
||||
|
||||
// This program uses CMake to build Makefiles or other project files. It
|
||||
// includes a CMakeLists.txt program that also builds STEPcode as a sub-build.
|
||||
// To compile, you must tell CMake where your STEPcode source tree is located
|
||||
// by setting STEPCODE_ROOT_DIR. To compile:
|
||||
//
|
||||
// $ pwd
|
||||
// .../stepcode/example/ap203min
|
||||
// $ mkdir build
|
||||
// $ cd build
|
||||
// $ cmake .. -DSTEPCODE_ROOT_DIR=../../..
|
||||
// $ make
|
||||
// $ cd bin
|
||||
// $ ls
|
||||
// AP203Minimum
|
||||
// $./AP203Minimum
|
||||
// AP203Minimum outfile.stp
|
||||
|
||||
#include <STEPfile.h>
|
||||
#include <sdai.h>
|
||||
#include <STEPattribute.h>
|
||||
#include <ExpDict.h>
|
||||
#include <Registry.h>
|
||||
#include <errordesc.h>
|
||||
|
||||
#include <STEPcomplex.h>
|
||||
#include <SdaiHeaderSchema.h>
|
||||
|
||||
#include "schema.h"
|
||||
|
||||
#include <SdaiCONFIG_CONTROL_DESIGN.h>
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
enum LenEnum { MM, CM, M, IN, FT, YD };
|
||||
enum AngEnum { RAD, DEG };
|
||||
|
||||
STEPcomplex * Geometric_Context( Registry * registry, InstMgr * instance_list, const LenEnum & len, const AngEnum & angle, const char * tolstr ) {
|
||||
int instance_cnt = 0;
|
||||
STEPattribute * attr;
|
||||
STEPcomplex * stepcomplex;
|
||||
|
||||
SdaiDimensional_exponents * dimensional_exp = new SdaiDimensional_exponents();
|
||||
dimensional_exp->length_exponent_( 0.0 );
|
||||
dimensional_exp->mass_exponent_( 0.0 );
|
||||
dimensional_exp->time_exponent_( 0.0 );
|
||||
dimensional_exp->electric_current_exponent_( 0.0 );
|
||||
dimensional_exp->thermodynamic_temperature_exponent_( 0.0 );
|
||||
dimensional_exp->amount_of_substance_exponent_( 0.0 );
|
||||
dimensional_exp->luminous_intensity_exponent_( 0.0 );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) dimensional_exp, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
STEPcomplex * ua_length;
|
||||
// First set up metric units if appropriate. Default to mm.
|
||||
// If imperial units, set up mm to be used as base to define imperial units.
|
||||
Si_prefix pfx = Si_prefix__milli;
|
||||
switch( len ) {
|
||||
case CM:
|
||||
pfx = Si_prefix__centi;
|
||||
break;
|
||||
case M:
|
||||
pfx = Si_prefix_unset;
|
||||
break;
|
||||
}
|
||||
|
||||
const char * ua_length_types[4] = { "length_unit", "named_unit", "si_unit", "*" };
|
||||
ua_length = new STEPcomplex( registry, ( const char ** ) ua_length_types, instance_cnt );
|
||||
stepcomplex = ua_length->head;
|
||||
while( stepcomplex ) {
|
||||
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "prefix" ) ) {
|
||||
attr->Enum( new SdaiSi_prefix_var( pfx ) );
|
||||
}
|
||||
if( !strcmp( attr->Name(), "name" ) ) {
|
||||
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__metre ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
stepcomplex = stepcomplex->sc;
|
||||
}
|
||||
instance_list->Append( ( SDAI_Application_instance * ) ua_length, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
// If imperial, create conversion based unit.
|
||||
if( len >= IN ) {
|
||||
STEPcomplex * len_mm = ua_length;
|
||||
|
||||
char lenname[10];
|
||||
double lenconv;
|
||||
|
||||
switch( len ) {
|
||||
case IN:
|
||||
strcat( lenname, "'INCH'\0" );
|
||||
lenconv = 25.4;
|
||||
break;
|
||||
case FT:
|
||||
strcat( lenname, "'FOOT'\0" );
|
||||
lenconv = 25.4 * 12.0;
|
||||
break;
|
||||
case YD:
|
||||
strcat( lenname, "'YARD'\0" );
|
||||
lenconv = 25.4 * 36.0;
|
||||
break;
|
||||
}
|
||||
|
||||
SdaiUnit * len_unit = new SdaiUnit( ( SdaiNamed_unit * ) len_mm );
|
||||
|
||||
SdaiMeasure_value * len_measure_value = new SdaiMeasure_value( lenconv, config_control_design::t_measure_value );
|
||||
len_measure_value->SetUnderlyingType( config_control_design::t_length_measure );
|
||||
|
||||
SdaiLength_measure_with_unit * len_measure_with_unit = new SdaiLength_measure_with_unit();
|
||||
len_measure_with_unit->value_component_( len_measure_value );
|
||||
len_measure_with_unit->unit_component_( len_unit );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) len_measure_with_unit, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
SdaiDimensional_exponents * dimensional_exp_len = new SdaiDimensional_exponents();
|
||||
dimensional_exp_len->length_exponent_( 1.0 );
|
||||
dimensional_exp_len->mass_exponent_( 0.0 );
|
||||
dimensional_exp_len->time_exponent_( 0.0 );
|
||||
dimensional_exp_len->electric_current_exponent_( 0.0 );
|
||||
dimensional_exp_len->thermodynamic_temperature_exponent_( 0.0 );
|
||||
dimensional_exp_len->amount_of_substance_exponent_( 0.0 );
|
||||
dimensional_exp_len->luminous_intensity_exponent_( 0.0 );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) dimensional_exp_len, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
const char * ua_conv_len_types[4] = { "conversion_based_unit", "named_unit", "length_unit", "*" };
|
||||
ua_length = new STEPcomplex( registry, ( const char ** ) ua_conv_len_types, instance_cnt );
|
||||
stepcomplex = ua_length->head;
|
||||
while( stepcomplex ) {
|
||||
if( !strcmp( stepcomplex->EntityName(), "Conversion_Based_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "name" ) ) {
|
||||
attr->StrToVal( lenname );
|
||||
}
|
||||
if( !strcmp( attr->Name(), "conversion_factor" ) ) {
|
||||
attr->Entity( ( STEPentity * )( len_measure_with_unit ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
if( !strcmp( stepcomplex->EntityName(), "Named_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "dimensions" ) ) {
|
||||
attr->Entity( ( STEPentity * )( dimensional_exp_len ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
stepcomplex = stepcomplex->sc;
|
||||
}
|
||||
|
||||
instance_list->Append( ( SDAI_Application_instance * ) ua_length, completeSE );
|
||||
instance_cnt++;
|
||||
}
|
||||
|
||||
SdaiUncertainty_measure_with_unit * uncertainty = ( SdaiUncertainty_measure_with_unit * )registry->ObjCreate( "UNCERTAINTY_MEASURE_WITH_UNIT" );
|
||||
uncertainty->name_( "'DISTANCE_ACCURACY_VALUE'" );
|
||||
uncertainty->description_( "'Threshold below which geometry imperfections (such as overlaps) are not considered errors.'" );
|
||||
SdaiUnit * tol_unit = new SdaiUnit( ( SdaiNamed_unit * ) ua_length );
|
||||
uncertainty->ResetAttributes();
|
||||
{
|
||||
while( ( attr = uncertainty->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "unit_component" ) ) {
|
||||
attr->Select( tol_unit );
|
||||
}
|
||||
if( !strcmp( attr->Name(), "value_component" ) ) {
|
||||
attr->StrToVal( tolstr );
|
||||
}
|
||||
}
|
||||
}
|
||||
instance_list->Append( ( SDAI_Application_instance * ) uncertainty, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
// First set up radians as base angle unit.
|
||||
const char * ua_plane_angle_types[4] = { "named_unit", "plane_angle_unit", "si_unit", "*" };
|
||||
STEPcomplex * ua_plane_angle = new STEPcomplex( registry, ( const char ** ) ua_plane_angle_types, instance_cnt );
|
||||
stepcomplex = ua_plane_angle->head;
|
||||
while( stepcomplex ) {
|
||||
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "name" ) ) {
|
||||
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__radian ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
stepcomplex = stepcomplex->sc;
|
||||
}
|
||||
instance_list->Append( ( SDAI_Application_instance * ) ua_plane_angle, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
// If degrees, create conversion based unit.
|
||||
if( angle == DEG ) {
|
||||
STEPcomplex * ang_rad = ua_plane_angle;
|
||||
|
||||
const double angconv = ( 3.14159265358979323846264338327950 / 180.0 );
|
||||
|
||||
SdaiUnit * p_ang_unit = new SdaiUnit( ( SdaiNamed_unit * ) ang_rad );
|
||||
|
||||
SdaiMeasure_value * p_ang_measure_value = new SdaiMeasure_value( angconv, config_control_design::t_measure_value );
|
||||
p_ang_measure_value->SetUnderlyingType( config_control_design::t_plane_angle_measure );
|
||||
|
||||
SdaiPlane_angle_measure_with_unit * p_ang_measure_with_unit = new SdaiPlane_angle_measure_with_unit();
|
||||
p_ang_measure_with_unit->value_component_( p_ang_measure_value );
|
||||
p_ang_measure_with_unit->unit_component_( p_ang_unit );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) p_ang_measure_with_unit, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
const char * ua_conv_angle_types[4] = { "conversion_based_unit", "named_unit", "plane_angle_unit", "*" };
|
||||
ua_plane_angle = new STEPcomplex( registry, ( const char ** ) ua_conv_angle_types, instance_cnt );
|
||||
stepcomplex = ua_plane_angle->head;
|
||||
while( stepcomplex ) {
|
||||
if( !strcmp( stepcomplex->EntityName(), "Conversion_Based_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "name" ) ) {
|
||||
attr->StrToVal( "'DEGREES'" );
|
||||
}
|
||||
if( !strcmp( attr->Name(), "conversion_factor" ) ) {
|
||||
attr->Entity( ( STEPentity * )( p_ang_measure_with_unit ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
if( !strcmp( stepcomplex->EntityName(), "Named_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "dimensions" ) ) {
|
||||
attr->Entity( ( STEPentity * )( dimensional_exp ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
stepcomplex = stepcomplex->sc;
|
||||
}
|
||||
instance_list->Append( ( SDAI_Application_instance * ) ua_plane_angle, completeSE );
|
||||
instance_cnt++;
|
||||
}
|
||||
|
||||
const char * ua_solid_angle_types[4] = { "named_unit", "si_unit", "solid_angle_unit", "*" };
|
||||
STEPcomplex * ua_solid_angle = new STEPcomplex( registry, ( const char ** ) ua_solid_angle_types, instance_cnt );
|
||||
stepcomplex = ua_solid_angle->head;
|
||||
while( stepcomplex ) {
|
||||
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "name" ) ) {
|
||||
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__steradian ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
stepcomplex = stepcomplex->sc;
|
||||
}
|
||||
instance_list->Append( ( SDAI_Application_instance * ) ua_solid_angle, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
// All units set up, stored in: ua_length, ua_plane_angle, ua_solid_angle
|
||||
const char * entNmArr[5] = { "geometric_representation_context", "global_uncertainty_assigned_context", "global_unit_assigned_context", "representation_context", "*" };
|
||||
STEPcomplex * complex_entity = new STEPcomplex( registry, ( const char ** ) entNmArr, instance_cnt );
|
||||
stepcomplex = complex_entity->head;
|
||||
|
||||
while( stepcomplex ) {
|
||||
|
||||
if( !strcmp( stepcomplex->EntityName(), "Geometric_Representation_Context" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "coordinate_space_dimension" ) ) {
|
||||
attr->StrToVal( "3" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !strcmp( stepcomplex->EntityName(), "Global_Uncertainty_Assigned_Context" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "uncertainty" ) ) {
|
||||
EntityAggregate * unc_agg = new EntityAggregate();
|
||||
unc_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) uncertainty ) );
|
||||
attr->Aggregate( unc_agg );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if( !strcmp( stepcomplex->EntityName(), "Global_Unit_Assigned_Context" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
std::string attrval;
|
||||
if( !strcmp( attr->Name(), "units" ) ) {
|
||||
EntityAggregate * unit_assigned_agg = new EntityAggregate();
|
||||
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_length ) );
|
||||
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_plane_angle ) );
|
||||
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_solid_angle ) );
|
||||
attr->Aggregate( unit_assigned_agg );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !strcmp( stepcomplex->EntityName(), "Representation_Context" ) ) {
|
||||
stepcomplex->ResetAttributes();
|
||||
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
|
||||
if( !strcmp( attr->Name(), "context_identifier" ) ) {
|
||||
attr->StrToVal( "'STANDARD'" );
|
||||
}
|
||||
if( !strcmp( attr->Name(), "context_type" ) ) {
|
||||
attr->StrToVal( "'3D'" );
|
||||
}
|
||||
}
|
||||
}
|
||||
stepcomplex = stepcomplex->sc;
|
||||
}
|
||||
instance_list->Append( ( SDAI_Application_instance * ) complex_entity, completeSE );
|
||||
instance_cnt++;
|
||||
|
||||
return complex_entity;
|
||||
}
|
||||
|
||||
SdaiCartesian_point * MakePoint( Registry * registry, InstMgr * instance_list, const double & x, const double & y, const double & z ) {
|
||||
SdaiCartesian_point * pnt = ( SdaiCartesian_point * ) registry->ObjCreate( "CARTESIAN_POINT" );
|
||||
pnt->name_( "''" );
|
||||
|
||||
RealAggregate * coords = pnt->coordinates_();
|
||||
|
||||
RealNode * xnode = new RealNode();
|
||||
xnode->value = x;
|
||||
coords->AddNode( xnode );
|
||||
|
||||
RealNode * ynode = new RealNode();
|
||||
ynode->value = y;
|
||||
coords->AddNode( ynode );
|
||||
|
||||
RealNode * znode = new RealNode();
|
||||
znode->value = z;
|
||||
coords->AddNode( znode );
|
||||
|
||||
instance_list->Append( ( SDAI_Application_instance * ) pnt, completeSE );
|
||||
|
||||
return pnt;
|
||||
}
|
||||
|
||||
SdaiDirection * MakeDirection( Registry * registry, InstMgr * instance_list, const double & x, const double & y, const double & z ) {
|
||||
SdaiDirection * dir = ( SdaiDirection * ) registry->ObjCreate( "DIRECTION" );
|
||||
dir->name_( "''" );
|
||||
|
||||
RealAggregate * components = dir->direction_ratios_();
|
||||
|
||||
RealNode * xnode = new RealNode();
|
||||
xnode->value = x;
|
||||
components->AddNode( xnode );
|
||||
|
||||
RealNode * ynode = new RealNode();
|
||||
ynode->value = y;
|
||||
components->AddNode( ynode );
|
||||
|
||||
RealNode * znode = new RealNode();
|
||||
znode->value = z;
|
||||
components->AddNode( znode );
|
||||
|
||||
instance_list->Append( ( SDAI_Application_instance * ) dir, completeSE );
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
SdaiAxis2_placement_3d * DefaultAxis( Registry * registry, InstMgr * instance_list ) {
|
||||
SdaiCartesian_point * pnt = MakePoint( registry, instance_list, 0.0, 0.0, 0.0 );
|
||||
SdaiDirection * axis = MakeDirection( registry, instance_list, 0.0, 0.0, 1.0 );
|
||||
SdaiDirection * refd = MakeDirection( registry, instance_list, 1.0, 0.0, 0.0 );
|
||||
|
||||
SdaiAxis2_placement_3d * placement = ( SdaiAxis2_placement_3d * ) registry->ObjCreate( "AXIS2_PLACEMENT_3D" );
|
||||
placement->name_( "''" );
|
||||
placement->location_( pnt );
|
||||
placement->axis_( axis );
|
||||
placement->ref_direction_( refd );
|
||||
|
||||
instance_list->Append( ( SDAI_Application_instance * ) placement, completeSE );
|
||||
|
||||
return placement;
|
||||
}
|
||||
|
||||
SdaiDate_and_time * DateTime( Registry * registry, InstMgr * instance_list ) {
|
||||
SdaiCalendar_date * caldate = ( SdaiCalendar_date * ) registry->ObjCreate( "CALENDAR_DATE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) caldate, completeSE );
|
||||
caldate->year_component_( 2000 );
|
||||
caldate->month_component_( 1 );
|
||||
caldate->day_component_( 1 );
|
||||
|
||||
SdaiCoordinated_universal_time_offset * tzone = ( SdaiCoordinated_universal_time_offset * ) registry->ObjCreate( "COORDINATED_UNIVERSAL_TIME_OFFSET" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) tzone, completeSE );
|
||||
tzone->hour_offset_( 0 );
|
||||
tzone->minute_offset_( 0 );
|
||||
tzone->sense_( Ahead_or_behind__behind );
|
||||
|
||||
SdaiLocal_time * loctime = ( SdaiLocal_time * ) registry->ObjCreate( "LOCAL_TIME" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) loctime, completeSE );
|
||||
loctime->hour_component_( 12 );
|
||||
loctime->minute_component_( 0 );
|
||||
loctime->second_component_( 0 );
|
||||
loctime->zone_( tzone );
|
||||
|
||||
SdaiDate_and_time * date_time = ( SdaiDate_and_time * ) registry->ObjCreate( "DATE_AND_TIME" );
|
||||
instance_list->Append( ( SDAI_Application_instance * )date_time, completeSE );
|
||||
date_time->date_component_( caldate );
|
||||
date_time->time_component_( loctime );
|
||||
|
||||
return date_time;
|
||||
}
|
||||
|
||||
SdaiSecurity_classification * Classification( Registry * registry, InstMgr * instance_list, SdaiPerson_and_organization * per_org, SdaiDate_and_time * date_time, SdaiProduct_definition_formation_with_specified_source * prod_def_form ) {
|
||||
SdaiSecurity_classification_level * level = ( SdaiSecurity_classification_level * ) registry->ObjCreate( "SECURITY_CLASSIFICATION_LEVEL" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) level, completeSE );
|
||||
level->name_( "'unclassified'" );
|
||||
|
||||
SdaiSecurity_classification * clas = ( SdaiSecurity_classification * ) registry->ObjCreate( "SECURITY_CLASSIFICATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) clas, completeSE );
|
||||
clas->name_( "''" );
|
||||
clas->purpose_( "''" );
|
||||
clas->security_level_( level );
|
||||
|
||||
SdaiCc_design_security_classification * des_class = ( SdaiCc_design_security_classification * ) registry->ObjCreate( "CC_DESIGN_SECURITY_CLASSIFICATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) des_class, completeSE );
|
||||
des_class->assigned_security_classification_( clas );
|
||||
des_class->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
|
||||
|
||||
SdaiPerson_and_organization_role * class_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) class_role, completeSE );
|
||||
class_role->name_( "'classification_officer'" );
|
||||
|
||||
SdaiCc_design_person_and_organization_assignment * class_personorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) class_personorg, completeSE );
|
||||
class_personorg->assigned_person_and_organization_( per_org );
|
||||
class_personorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
|
||||
class_personorg->role_( class_role );
|
||||
|
||||
SdaiDate_time_role * class_datetime = ( SdaiDate_time_role * ) registry->ObjCreate( "DATE_TIME_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) class_datetime, completeSE );
|
||||
class_datetime->name_( "'classification_date'" );
|
||||
|
||||
SdaiCc_design_date_and_time_assignment * assign = ( SdaiCc_design_date_and_time_assignment * ) registry->ObjCreate( "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) assign, completeSE );
|
||||
assign->assigned_date_and_time_( date_time );
|
||||
assign->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
|
||||
assign->role_( class_datetime );
|
||||
|
||||
return clas;
|
||||
}
|
||||
|
||||
int main( void ) {
|
||||
// The registry contains information about types present in the current schema; SchemaInit is a function in the schema-specific SDAI library
|
||||
Registry * registry = new Registry( SchemaInit );
|
||||
|
||||
// The InstMgr holds instances that have been created or that have been loaded from a file
|
||||
InstMgr * instance_list = new InstMgr();
|
||||
|
||||
// Increment FileId so entities start at #1 instead of #0.
|
||||
instance_list->NextFileId();
|
||||
|
||||
// STEPfile takes care of reading and writing Part 21 files
|
||||
STEPfile * sfile = new STEPfile( *registry, *instance_list, "", false );
|
||||
|
||||
registry->ResetSchemas();
|
||||
registry->ResetEntities();
|
||||
|
||||
// Build file header
|
||||
InstMgr * header_instances = sfile->HeaderInstances();
|
||||
|
||||
SdaiFile_name * fn = ( SdaiFile_name * ) sfile->HeaderDefaultFileName();
|
||||
header_instances->Append( ( SDAI_Application_instance * ) fn, completeSE );
|
||||
fn->name_( "'outfile.stp'" );
|
||||
fn->time_stamp_( "''" );
|
||||
fn->author_()->AddNode( new StringNode( "''" ) );
|
||||
fn->organization_()->AddNode( new StringNode( "''" ) );
|
||||
fn->preprocessor_version_( "''" );
|
||||
fn->originating_system_( "''" );
|
||||
fn->authorization_( "''" );
|
||||
|
||||
SdaiFile_description * fd = ( SdaiFile_description * ) sfile->HeaderDefaultFileDescription();
|
||||
header_instances->Append( ( SDAI_Application_instance * ) fd, completeSE );
|
||||
fd->description_()->AddNode( new StringNode( "''" ) );
|
||||
fd->implementation_level_( "'1'" );
|
||||
|
||||
SdaiFile_schema * fs = ( SdaiFile_schema * ) sfile->HeaderDefaultFileSchema();
|
||||
header_instances->Append( ( SDAI_Application_instance * ) fs, completeSE );
|
||||
fs->schema_identifiers_()->AddNode( new StringNode( "'CONFIG_CONTROL_DESIGN'" ) );
|
||||
|
||||
|
||||
// Build file data. The entities have been created and added in order such that no entity
|
||||
// references a later entity. This is not required, but has been done to give a logical
|
||||
// flow to the source and the resulting STEP file.
|
||||
|
||||
// Stand-in date and time.
|
||||
SdaiDate_and_time * date_time = DateTime( registry, instance_list );
|
||||
|
||||
// Global units and tolerance.
|
||||
STEPcomplex * context = Geometric_Context( registry, instance_list, MM, DEG, "0.0001" );
|
||||
|
||||
// Primary coordinate system.
|
||||
SdaiAxis2_placement_3d * orig_transform = DefaultAxis( registry, instance_list );
|
||||
|
||||
// Basic context through product and shape representation
|
||||
SdaiApplication_context * app_context = ( SdaiApplication_context * ) registry->ObjCreate( "APPLICATION_CONTEXT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) app_context, completeSE );
|
||||
app_context->application_( "'configuration controlled 3d designs of mechanical parts and assemblies'" );
|
||||
|
||||
SdaiMechanical_context * mech_context = ( SdaiMechanical_context * ) registry->ObjCreate( "MECHANICAL_CONTEXT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) mech_context, completeSE );
|
||||
mech_context->name_( "''" );
|
||||
mech_context->discipline_type_( "'mechanical'" );
|
||||
mech_context->frame_of_reference_( app_context );
|
||||
|
||||
SdaiApplication_protocol_definition * app_protocol = ( SdaiApplication_protocol_definition * ) registry->ObjCreate( "APPLICATION_PROTOCOL_DEFINITION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) app_protocol, completeSE );
|
||||
app_protocol->status_( "'international standard'" );
|
||||
app_protocol->application_protocol_year_( 1994 );
|
||||
app_protocol->application_interpreted_model_schema_name_( "'config_control_design'" );
|
||||
app_protocol->application_( app_context );
|
||||
|
||||
SdaiDesign_context * design_context = ( SdaiDesign_context * ) registry->ObjCreate( "DESIGN_CONTEXT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) design_context, completeSE );
|
||||
design_context->name_( "''" );
|
||||
design_context->life_cycle_stage_( "'design'" );
|
||||
design_context->frame_of_reference_( app_context );
|
||||
|
||||
SdaiProduct * prod = ( SdaiProduct * ) registry->ObjCreate( "PRODUCT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) prod, completeSE );
|
||||
prod->id_( "''" );
|
||||
prod->name_( "'prodname'" );
|
||||
prod->description_( "''" );
|
||||
prod->frame_of_reference_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) mech_context ) );
|
||||
|
||||
SdaiProduct_related_product_category * prodcat = ( SdaiProduct_related_product_category * ) registry->ObjCreate( "PRODUCT_RELATED_PRODUCT_CATEGORY" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) prodcat, completeSE );
|
||||
prodcat->name_( "'assembly'" );
|
||||
prodcat->description_( "''" );
|
||||
prodcat->products_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
|
||||
|
||||
SdaiProduct_definition_formation_with_specified_source * prod_def_form = ( SdaiProduct_definition_formation_with_specified_source * ) registry->ObjCreate( "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) prod_def_form, completeSE );
|
||||
prod_def_form->id_( "''" );
|
||||
prod_def_form->description_( "''" );
|
||||
prod_def_form->of_product_( prod );
|
||||
prod_def_form->make_or_buy_( Source__made );
|
||||
|
||||
SdaiProduct_definition * prod_def = ( SdaiProduct_definition * ) registry->ObjCreate( "PRODUCT_DEFINITION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) prod_def, completeSE );
|
||||
prod_def->id_( "''" );
|
||||
prod_def->description_( "''" );
|
||||
prod_def->frame_of_reference_( design_context );
|
||||
prod_def->formation_( prod_def_form );
|
||||
|
||||
SdaiProduct_definition_shape * pshape = ( SdaiProduct_definition_shape * ) registry->ObjCreate( "PRODUCT_DEFINITION_SHAPE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) pshape, completeSE );
|
||||
pshape->name_( "''" );
|
||||
pshape->description_( "'ProductShapeDescription'" );
|
||||
pshape->definition_( new SdaiCharacterized_definition( new SdaiCharacterized_product_definition( prod_def ) ) );
|
||||
|
||||
SdaiShape_representation * shape_rep = ( SdaiShape_representation * ) registry->ObjCreate( "SHAPE_REPRESENTATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) shape_rep, completeSE );
|
||||
shape_rep->name_( "''" ); // Document?
|
||||
shape_rep->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) orig_transform ) );
|
||||
shape_rep->context_of_items_( ( SdaiRepresentation_context * ) context );
|
||||
|
||||
SdaiShape_definition_representation * shape_def_rep = ( SdaiShape_definition_representation * ) registry->ObjCreate( "SHAPE_DEFINITION_REPRESENTATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) shape_def_rep, completeSE );
|
||||
shape_def_rep->definition_( pshape );
|
||||
shape_def_rep->used_representation_( shape_rep );
|
||||
|
||||
|
||||
// Stand-in person and org.
|
||||
SdaiPerson * person = ( SdaiPerson * ) registry->ObjCreate( "PERSON" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) person, completeSE );
|
||||
person->id_( "''" );
|
||||
person->last_name_( "'Doe'" );
|
||||
person->first_name_( "'John'" );
|
||||
|
||||
SdaiOrganization * org = ( SdaiOrganization * ) registry->ObjCreate( "ORGANIZATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) org, completeSE );
|
||||
org->id_( "''" );
|
||||
org->name_( "''" );
|
||||
org->description_( "''" );
|
||||
|
||||
SdaiPerson_and_organization * per_org = ( SdaiPerson_and_organization * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) per_org, completeSE );
|
||||
per_org->the_person_( person );
|
||||
per_org->the_organization_( org );
|
||||
|
||||
|
||||
// Required roles.
|
||||
SdaiPerson_and_organization_role * creator_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) creator_role, completeSE );
|
||||
creator_role->name_( "'creator'" );
|
||||
|
||||
SdaiPerson_and_organization_role * owner_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) owner_role, completeSE );
|
||||
owner_role->name_( "'design_owner'" );
|
||||
|
||||
SdaiPerson_and_organization_role * supplier_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) supplier_role, completeSE );
|
||||
supplier_role->name_( "'design_supplier'" );
|
||||
|
||||
|
||||
// Basic approval.
|
||||
SdaiApproval_status * approval_status = ( SdaiApproval_status * ) registry->ObjCreate( "APPROVAL_STATUS" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) approval_status, completeSE );
|
||||
approval_status->name_( "'approved'" );
|
||||
|
||||
SdaiApproval * approval = ( SdaiApproval * ) registry->ObjCreate( "APPROVAL" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) approval, completeSE );
|
||||
approval->status_( approval_status );
|
||||
approval->level_( "''" );
|
||||
|
||||
SdaiApproval_date_time * app_date_time = ( SdaiApproval_date_time * ) registry->ObjCreate( "APPROVAL_DATE_TIME" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) app_date_time, completeSE );
|
||||
app_date_time->date_time_( new SdaiDate_time_select( date_time ) );
|
||||
app_date_time->dated_approval_( approval );
|
||||
|
||||
SdaiApproval_role * app_role = ( SdaiApproval_role * ) registry->ObjCreate( "APPROVAL_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) app_role, completeSE );
|
||||
app_role->role_( "'approver'" );
|
||||
|
||||
SdaiApproval_person_organization * app_per_org = ( SdaiApproval_person_organization * ) registry->ObjCreate( "APPROVAL_PERSON_ORGANIZATION" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) app_per_org, completeSE );
|
||||
app_per_org->person_organization_( new SdaiPerson_organization_select( per_org ) );
|
||||
app_per_org->authorized_approval_( approval );
|
||||
app_per_org->role_( app_role );
|
||||
|
||||
|
||||
// Basic Classification.
|
||||
SdaiSecurity_classification * clas = Classification( registry, instance_list, per_org, date_time, prod_def_form );
|
||||
|
||||
|
||||
// Basic CC approval.
|
||||
SdaiCc_design_approval * desapproval = ( SdaiCc_design_approval * ) registry->ObjCreate( "CC_DESIGN_APPROVAL" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) desapproval, completeSE );
|
||||
desapproval->assigned_approval_( approval );
|
||||
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
|
||||
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
|
||||
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
|
||||
|
||||
SdaiCc_design_person_and_organization_assignment * creatorpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) creatorpersonorg, completeSE );
|
||||
creatorpersonorg->assigned_person_and_organization_( per_org );
|
||||
creatorpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
|
||||
creatorpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
|
||||
creatorpersonorg->role_( creator_role );
|
||||
|
||||
SdaiCc_design_person_and_organization_assignment * supplierpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) supplierpersonorg, completeSE );
|
||||
supplierpersonorg->assigned_person_and_organization_( per_org );
|
||||
supplierpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
|
||||
supplierpersonorg->role_( supplier_role );
|
||||
|
||||
SdaiDate_time_role * datetimerole = ( SdaiDate_time_role * ) registry->ObjCreate( "DATE_TIME_ROLE" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) datetimerole, completeSE );
|
||||
datetimerole->name_( "'creation_date'" );
|
||||
|
||||
SdaiCc_design_date_and_time_assignment * assign = ( SdaiCc_design_date_and_time_assignment * ) registry->ObjCreate( "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) assign, completeSE );
|
||||
assign->assigned_date_and_time_( date_time );
|
||||
assign->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
|
||||
assign->role_( datetimerole );
|
||||
|
||||
SdaiCc_design_person_and_organization_assignment * ownerpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
|
||||
instance_list->Append( ( SDAI_Application_instance * ) ownerpersonorg, completeSE );
|
||||
ownerpersonorg->assigned_person_and_organization_( per_org );
|
||||
ownerpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
|
||||
ownerpersonorg->role_( owner_role );
|
||||
|
||||
|
||||
sfile->WriteExchangeFile( "outfile.stp" );
|
||||
if( sfile->Error().severity() < SEVERITY_USERMSG ) {
|
||||
sfile->Error().PrintContents( cout );
|
||||
}
|
||||
|
||||
header_instances->DeleteInstances();
|
||||
instance_list->DeleteInstances();
|
||||
delete registry;
|
||||
delete instance_list;
|
||||
delete sfile;
|
||||
|
||||
printf( "Done!\n" );
|
||||
}
|
||||
+24
-6
@@ -1,4 +1,4 @@
|
||||
SET(express_HDRS
|
||||
set(express_HDRS
|
||||
express/alg.h
|
||||
express/basic.h
|
||||
express/caseitem.h
|
||||
@@ -20,10 +20,28 @@ SET(express_HDRS
|
||||
express/symbol.h
|
||||
express/type.h
|
||||
express/variable.h
|
||||
)
|
||||
install(FILES ${express_HDRS} DESTINATION include/express)
|
||||
)
|
||||
install(FILES ${express_HDRS}
|
||||
DESTINATION ${INCLUDE_DIR}/stepcode/express)
|
||||
|
||||
SET(exppp_HDRS
|
||||
set(exppp_HDRS
|
||||
exppp/exppp.h
|
||||
)
|
||||
install(FILES ${exppp_HDRS} DESTINATION include/exppp)
|
||||
)
|
||||
install(FILES ${exppp_HDRS}
|
||||
DESTINATION ${INCLUDE_DIR}/stepcode/exppp)
|
||||
|
||||
install(FILES ordered_attrs.h
|
||||
sc_export.h
|
||||
sc_stdbool.h
|
||||
DESTINATION ${INCLUDE_DIR}/stepcode)
|
||||
|
||||
install(FILES ${SC_BINARY_DIR}/${INCLUDE_DIR}/sc_cf.h
|
||||
DESTINATION ${INCLUDE_DIR}/stepcode)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
|
||||
|
||||
+20
-16
@@ -1,22 +1,25 @@
|
||||
#ifndef EXPPP_H
|
||||
#define EXPPP_H
|
||||
|
||||
#include <sc_stdbool.h>
|
||||
|
||||
#include <sc_export.h>
|
||||
|
||||
extern SC_EXPPP_EXPORT int exppp_nesting_indent; /* default nesting indent */
|
||||
extern SC_EXPPP_EXPORT int exppp_continuation_indent; /* default nesting indent for */
|
||||
/* continuation lines */
|
||||
extern SC_EXPPP_EXPORT int exppp_linelength; /* leave some slop for closing */
|
||||
/* parens. \n is not included in */
|
||||
/* this count either */
|
||||
extern SC_EXPPP_EXPORT bool exppp_rmpp; /* if true, create rmpp */
|
||||
extern SC_EXPPP_EXPORT bool exppp_alphabetize; /* if true, alphabetize */
|
||||
extern SC_EXPPP_EXPORT bool exppp_terse; /* don't describe action to stdout */
|
||||
extern SC_EXPPP_EXPORT bool exppp_reference_info; /* if true, add commentary */
|
||||
/* about where things came from */
|
||||
extern SC_EXPPP_EXPORT bool exppp_preserve_comments; /* if true, preserve comments where */
|
||||
/* possible */
|
||||
extern SC_EXPPP_EXPORT char * exppp_output_filename; /* force output filename */
|
||||
extern SC_EXPPP_EXPORT bool exppp_output_filename_reset; /* if true, force output filename */
|
||||
#include "../express/expbasic.h"
|
||||
#include "../express/express.h"
|
||||
|
||||
extern SC_EXPPP_EXPORT const int exppp_nesting_indent; /**< default nesting indent */
|
||||
extern SC_EXPPP_EXPORT const int exppp_continuation_indent; /**< default nesting indent for continuation lines */
|
||||
extern SC_EXPPP_EXPORT int exppp_linelength; /**< leave some slop for closing parens.
|
||||
* \n is not included in this count either */
|
||||
extern SC_EXPPP_EXPORT bool exppp_alphabetize; /**< if true, alphabetize */
|
||||
extern SC_EXPPP_EXPORT bool exppp_terse; /**< don't describe action to stdout */
|
||||
extern SC_EXPPP_EXPORT bool exppp_reference_info; /**< if true, add commentary about where things came from */
|
||||
extern SC_EXPPP_EXPORT char * exppp_output_filename; /**< force output filename */
|
||||
extern SC_EXPPP_EXPORT bool exppp_output_filename_reset; /**< if true, force output filename */
|
||||
extern SC_EXPPP_EXPORT bool exppp_print_to_stdout; /**< if true, print to stdout */
|
||||
extern SC_EXPPP_EXPORT bool exppp_aggressively_wrap_consts; /**< for constants, print one item per line */
|
||||
extern SC_EXPPP_EXPORT bool exppp_tail_comment; /**< print tail comment, such as END_ENTITY; --entity_name */
|
||||
|
||||
SC_EXPPP_EXPORT void EXPRESSout( Express e );
|
||||
|
||||
@@ -61,6 +64,7 @@ SC_EXPPP_EXPORT int TYPEbody_to_buffer( Type t, char * buffer, int length );
|
||||
SC_EXPPP_EXPORT int WHEREto_buffer( Linked_List w, char * buffer, int length );
|
||||
|
||||
SC_EXPPP_EXPORT int EXPRlength( Expression e );
|
||||
SC_EXPPP_EXPORT int count_newlines( char * s );
|
||||
extern SC_EXPPP_EXPORT void tail_comment( const char * name );
|
||||
extern SC_EXPPP_EXPORT int count_newlines( char * s );
|
||||
|
||||
#endif
|
||||
|
||||
+14
-14
@@ -69,7 +69,7 @@ struct tag {
|
||||
|
||||
/** location of fulltext of algorithm in source file */
|
||||
struct FullText {
|
||||
char * filename;
|
||||
const char * filename;
|
||||
unsigned int start, end;
|
||||
};
|
||||
|
||||
@@ -119,16 +119,16 @@ extern SC_EXPRESS_EXPORT struct freelist_head WHERE_fl;
|
||||
/* macro function definitions */
|
||||
/******************************/
|
||||
|
||||
#define ALG_new() (struct Algorithm *)MEM_new(&ALG_fl);
|
||||
#define ALG_destroy(x) MEM_destroy(&ALG_fl,(Freelist *)(Generic)x)
|
||||
#define FUNC_new() (struct Function_ *)MEM_new(&FUNC_fl)
|
||||
#define FUNC_destroy(x) MEM_destroy(&FUNC_fl,(Freelist *)(Generic)x)
|
||||
#define RULE_new() (struct Rule_ *)MEM_new(&RULE_fl)
|
||||
#define RULE_destroy(x) MEM_destroy(&RULE_fl,(Freelist *)(Generic)x)
|
||||
#define PROC_new() (struct Procedure_ *)MEM_new(&PROC_fl)
|
||||
#define PROC_destroy(x) MEM_destroy(&PROC_fl,(Freelist *)(Generic)x)
|
||||
#define WHERE_new() (struct Where_ *)MEM_new(&WHERE_fl)
|
||||
#define WHERE_destroy(x) MEM_destroy(&WHERE_fl,(Freelist *)(Generic)x)
|
||||
#define ALG_new() (struct Algorithm *)ALLOC_new(&ALG_fl);
|
||||
#define ALG_destroy(x) ALLOC_destroy(&ALG_fl,(Freelist *)x)
|
||||
#define FUNC_new() (struct Function_ *)ALLOC_new(&FUNC_fl)
|
||||
#define FUNC_destroy(x) ALLOC_destroy(&FUNC_fl,(Freelist *)x)
|
||||
#define RULE_new() (struct Rule_ *)ALLOC_new(&RULE_fl)
|
||||
#define RULE_destroy(x) ALLOC_destroy(&RULE_fl,(Freelist *)x)
|
||||
#define PROC_new() (struct Procedure_ *)ALLOC_new(&PROC_fl)
|
||||
#define PROC_destroy(x) ALLOC_destroy(&PROC_fl,(Freelist *)x)
|
||||
#define WHERE_new() (struct Where_ *)ALLOC_new(&WHERE_fl)
|
||||
#define WHERE_destroy(x) ALLOC_destroy(&WHERE_fl,(Freelist *)x)
|
||||
|
||||
#define ALGput_name(algorithm, name) SCOPEput_name(algorithm,name)
|
||||
#define ALGget_name(algorithm) SCOPEget_name(algorithm)
|
||||
@@ -161,8 +161,8 @@ extern SC_EXPRESS_EXPORT struct freelist_head WHERE_fl;
|
||||
/* function prototypes */
|
||||
/***********************/
|
||||
|
||||
extern SC_EXPRESS_EXPORT Scope ALGcreate PROTO( ( char ) );
|
||||
extern SC_EXPRESS_EXPORT void ALGinitialize PROTO( ( void ) );
|
||||
extern SC_EXPRESS_EXPORT void ALGput_full_text PROTO( ( Scope, int, int ) );
|
||||
extern SC_EXPRESS_EXPORT Scope ALGcreate( char );
|
||||
extern SC_EXPRESS_EXPORT void ALGinitialize( void );
|
||||
extern SC_EXPRESS_EXPORT void ALGput_full_text( Scope, int, int );
|
||||
|
||||
#endif /* ALGORITHM_H */
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#ifndef ALLOC_H
|
||||
#define ALLOC_H
|
||||
|
||||
/*
|
||||
* This work was supported by the United States Government, and is
|
||||
* not subject to copyright.
|
||||
*
|
||||
* $Log: memory.h,v $
|
||||
* Revision 1.5 1997/01/21 19:17:11 dar
|
||||
* made C++ compatible
|
||||
*
|
||||
* Revision 1.4 1993/10/15 18:49:23 libes
|
||||
* CADDETC certified
|
||||
*
|
||||
* Revision 1.3 1993/02/22 21:41:13 libes
|
||||
* ANSI compat
|
||||
*
|
||||
* Revision 1.2 1992/08/18 17:15:40 libes
|
||||
* rm'd extraneous error messages
|
||||
*
|
||||
* Revision 1.1 1992/05/28 03:56:02 libes
|
||||
* Initial revision
|
||||
*/
|
||||
|
||||
#include "basic.h"
|
||||
|
||||
/*****************/
|
||||
/* packages used */
|
||||
/*****************/
|
||||
|
||||
#include <sc_export.h>
|
||||
|
||||
/** \file alloc.h - defs for fixed size block memory allocator */
|
||||
|
||||
typedef long Align;
|
||||
|
||||
union freelist {
|
||||
union freelist * next; /**< next block on freelist */
|
||||
char memory; /**< user data */
|
||||
Align aligner; /**< force alignment of blocks */
|
||||
};
|
||||
|
||||
typedef union freelist Freelist;
|
||||
|
||||
struct freelist_head {
|
||||
int size_elt; /**< size of a single elt */
|
||||
#ifndef NOSTAT
|
||||
int alloc; /**< # of allocations */
|
||||
int dealloc;
|
||||
int create; /**< number of calls to create a new freelist */
|
||||
void *max; /**< end of freelist */
|
||||
#endif
|
||||
int size; /**< size of a single elt incl. next ptr */
|
||||
int bytes; /**< if we run out, allocate memory by this many bytes */
|
||||
Freelist * freelist;
|
||||
#ifdef SPACE_PROFILE
|
||||
int count;
|
||||
#endif
|
||||
};
|
||||
|
||||
char * nnew();
|
||||
|
||||
#include "error.h"
|
||||
|
||||
/***********************************************/
|
||||
/* space allocation macros with error package: */
|
||||
/***********************************************/
|
||||
|
||||
extern SC_EXPRESS_EXPORT int yylineno;
|
||||
|
||||
/** CALLOC grabs and initializes to all 0s space for the indicated
|
||||
* number of instances of the indicated type */
|
||||
#define CALLOC(ptr, num, type) \
|
||||
if (((ptr) = (type*)calloc((num), (unsigned)sizeof(type)))==NULL) { \
|
||||
fprintf(stderr,"fedex: out of space");\
|
||||
} else {}
|
||||
|
||||
SC_EXPRESS_EXPORT void _ALLOCinitialize( void );
|
||||
SC_EXPRESS_EXPORT void ALLOCinitialize( struct freelist_head * flh, unsigned int size, int alloc1, int alloc2 );
|
||||
SC_EXPRESS_EXPORT void ALLOC_destroy( struct freelist_head *, Freelist * );
|
||||
SC_EXPRESS_EXPORT void * ALLOC_new( struct freelist_head * );
|
||||
|
||||
#endif /* ALLOC_H */
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user