Код можно написать в любой среде, поддерживающей COM. Концептуально это примерно так (звиняйте за русский код - 1С все-таки) Процедура СоздатьОбъект() swApp = новый COMОбъект("SldWorks.Application"); Part = swApp.ActiveDoc; Если Part = Неопределено Тогда Сообщить("Нет активного документа в SW"); swApp.ExitApp(); Возврат; КонецЕсли; КонецПроцедуры
Процедура ПечатьККоординате(X,Y,Z,ШиринаТекущегоСлоя = Неопределено,ТекущаяСкоростьПечати = Неопределено)
//здесь идет формирование G кода
//здесь рисуем тонкую линию, так как слой рисуем всегда один в данном случае, координата Z=0 Если ТекущаяКоординатаZ = РисоватьВысоту Тогда Part.SketchManager.CreateLine(X1_для_рисования, Y1_для_рисования, 0, X2_для_рисования, Y2_для_рисования, 0); КонецЕсли;
КонецПроцедуры
В данном случае рисуем только один слой, тонкими линиями, не имеющими толщины. Так как мне этого хватило выше крыши для отладки генератора (все расстояния между линиями очень хорошо видны, все ошибки сразу бросаются в глаза, все координаты и интервалы как на ладони). Причем можно отслеживать динамику рисования, так как линии появляются на экране на скорости, заметной глазу, и поэтому можно отслеживать эффективность полученного кода, чтобы было как можно меньше движений вхолостую.
Добавлено спустя 2 минуты 50 секунд: Re: Проблемы печати генератором G-кода собственной разработки еще можно рисовать конечно же объемные тела, используя команды наподобие этих: Part.SketchManager.CreateCornerRectangle(1, 2, 3, 4, 5, 6); Part.FeatureManager.FeatureExtrusionThin(True, False, False, 0, 0, 0.001, 0.01, False, False, False, False,0 ,0 , False, False, False, False, False, False, False, False, True, 0.0001, 0.0002, 0.01, 3, 0, False, 0.005, True, True); Part.FeatureManager.FeatureExtrusionThin2(True, False, False, nEndcondition1, nEndcondition2, 0.03, 0.03, False, False, False, False, 0#, 0#, False, False, False, False, False, dThickness, 0#, 0#, lThinFeatureType, lCapEnds, False, 0.005, True, True, nStartCondition, dStartOffset, bFlipOffset); в этом случае можно построить объемную модель, и все проблемы с движком визуализации возьмет на себя SW.
Добавлено спустя 5 минут 22 секунды: Re: Проблемы печати генератором G-кода собственной разработки и идея специально для hudbrog можно попробовать найти какой-нибудь ActiveX Solid Works (который кстати может оказаться и бесплатным еще) и интегрировать в свой проект, тогда и логика приложения собственная будет, и не надо будет с 3D движком возиться, а это самое трудоемкое.
Добавлено спустя 19 минут 48 секунд: Re: Проблемы печати генератором G-кода собственной разработки и еще одна идея: если с ActiveX у SW не получится, можно найти БЕСПЛАТНУЮ такую же от AutoDesk, там она ТОЧНО есть (сам рисовал когда-то), компонента на просмотр БЕСПЛАТНА (а нам и нужен только просмотр)
|