В общем, потратил два часа времени, и нарисовалась такая картина.
Есть тестовая плата Test1.SchDoc, Test1.PcbDoc.
На ней стоит единственный компонент, SWT-7, в двух экземплярах. SWT-7.SchLib и SWT-7.PCBlib для полноты картины приложены.
Есть солидворксовский исходник SWT-7, в котором нарисована эта кнопка. Она состоит из двух твердых тел, соприкасающихся поверхностями, собственно кнопки и растущего из нее цилиндра, в модели он называется Panel Patch.
---------------------------
Саппрессим этот цилиндр, кнопка теперь содержит одно тело.
Экспортируем кнопку в файл SWT-7 Model 1.step и делаем из нее 3D-библиотеку SWT-7 Model 1.PCB3DLib.
Подключаем библиотеку к альтиумовской схеме, генерируем Test1 Model1.PCB3D. Все отлично видно. Экспортируем Test1 Model1.step. Наслаждаемся отличной 3D моделью платы (здесь и далее на желтом фоне - тот PCB3D, что визуализирует альтиум, на голубом - тот STEP, который он экспортирует).

---------------------------
Теперь в модели кнопки ансаппрессим цилиндр. Кнопка теперь состоит из двух соприкасающихся твердых тел. Экспортируем в SWT-7 Model 2.step и делаем из нее 3D-библиотеку SWT-7 Model 2.PCB3DLib. Подключаем эту библиотеку, генерируем Test1 Model2.PCB3D, все отлично видно, теперь кнопки с носиками, выводим Test1 Model2.step.
Б#%^&ь!! STEP платы оказывается неправильным.

----------------------------
В модели кнопки мерджим цилиндр с кнопкой. Кнопка теперь снова состоит из одного тела. Экспортируем в SWT-7 Model 3.step и делаем из нее 3D-библиотеку SWT-7 Model 3.PCB3DLib. Подключаем эту библиотеку, генерируем Test1 Model3.PCB3D, все отлично видно, кнопки с носиками, выводим Test1 Model3.step.
Он правильный.
----------------------------
На всякий случай пробуем модель компонента из двух тел, но не касающихся друг друга. Сепарэйтим их дополнительной cut/extrude, выводим, делаем SWT-7 Model 4.PCB3DLib, подключаем, делаем Test1 Model4.PCB3D, визуализируется хорошо, экспортируем в STEP.
Снова имеем облом.
----------------------------
Возникает ощущение, что твердотельная модель компонента, которая импортируется в PCB3DLib, должна состоять из единственного тела, иначе результирующая PCB3D показывается верно, а экспортируется неверно.
Это очень хреново, потому что:
- некоторые готовые 3D модели содержат более одного тела;
- лично мне очень удобно приделывать к моделям дополнительные тела, например, пуансоны для автоматического вырезания отверстий в корпусе. Сунул плату в сборку, сказал Cavity - и точный чертеж панелей корпуса готов. А на сборочном лишнее погасил, и не видно.
На самом деле у меня были такие модели, из нескольких тел, и все вроде бы работало. Было ли это в эпоху до AD6.6, когда был IGES, или уже при AD6.6, и когда точно перестало работать, я не помню.
Словом, если кто-нибудь подскажет, как обойти этот гадкий момент, буду очень признателен.
Сообщение отредактировал drevesina - Apr 11 2007, 13:58