Перейти к публикации

Кто нибудь писал приложения в среде FeatureCAM? Какой язык там используется, есть ли документация на русском.


Рекомендованные сообщения

Кто нибудь писал приложения в среде FeatureCAM? Какой язык там используется, есть ли документация на русском.

Изменено пользователем TBC
Ссылка на сообщение
Поделиться на других сайтах
  • TBC изменил заголовок на Кто нибудь писал приложения в среде FeatureCAM? Какой язык там используется, есть ли документация на русском.


UnPinned posts
13 минут назад, Metal_Cutter сказал:

Mannul, какой вопрос - такой ответ.

Правильно, так ему и надо.

Ссылка на сообщение
Поделиться на других сайтах
47 минут назад, Metal_Cutter сказал:

Basic. На русском нет.

Спасибо!
Если кто то писал приложения, можно посмотреть код?

Еще такой вопрос. На моем канале много роликов по кибер технологу.  Если у вас есть опыт разработки приложений, то можете оценить, хватит ли возможностей встроенного языка, для реализации кибер-технолога в среде FeatureCAM?

На мой канал в ютюбе можно попасть набрав в поиске "Сетевой Промышленный интернет". 

Ссылка на сообщение
Поделиться на других сайтах

@TBC

 

Option Explicit

Dim id_fkz_max_z As Long
Dim id_fkz_min_z As Long
Dim id_fkz_shag_z  As Long
Dim id_fkz_cut_feed   As Long
Dim id_fkz_dia_zag   As Long
Dim id_fkz_dia_otv   As Long
Dim id_fkz_koef_per As Long
Dim id_fkz_podhod As Long
Dim udf_frezkrug     As FMUserFeatureRegister
Dim udfo_frezkrug    As FMUserOperationRegister

Private Sub AddIn_OnConnect(ByVal flags As FeatureCAM.tagFMAddInFlags)

    Set udf_frezkrug = Application.RegisterUserFeature( "Frez Krug Zag",     eST_Milling,  "frez_krug_zag_", eUDF_PickLocation)
    id_fkz_max_z = udf_frezkrug.AddDataDefinition ( "Старт Z", eUDT_Double,    8,  0)
    id_fkz_min_z = udf_frezkrug.AddDataDefinition ( "Финиш Z", eUDT_Double,    7,  -20)
    id_fkz_shag_z  = udf_frezkrug.AddDataDefinition ( "Шаг по Z",        eUDT_Double,   75,  1)
    id_fkz_cut_feed   = udf_frezkrug.AddDataDefinition ( "Подача X-Y",   eUDT_Double, 2,  1)
    id_fkz_dia_zag      = udf_frezkrug.AddDataDefinition ( "Диаметр заготовки",          eUDT_Double,    1,    300)
    id_fkz_dia_otv   = udf_frezkrug.AddDataDefinition ( "Диаметр отверстия",             eUDT_Double,    0,    0)
    id_fkz_koef_per = udf_frezkrug.AddDataDefinition ( "Коеффициент перекрытия",     eUDT_Double, 0.25, 1.6)
    id_fkz_podhod = udf_frezkrug.AddDataDefinition ( "Подход",   eUDT_Double,  0.5, 5)

    Set udfo_frezkrug = Application.RegisterUserOperation("Frez Krug Zag","Frez krug zag",eTG_EndMill,eST_Milling)
    udfo_frezkrug.AddAttributeDefinition2(eAID_Priority)

End Sub

Private Sub AddIn_OnDisConnect(ByVal flags As FeatureCAM.tagFMAddInFlags)
    Set udf_frezkrug = Nothing
End Sub

Private Sub Application_UserFeatureVerify(Doc As FeatureCAM.FMDocument, UDF As FeatureCAM.FMUserFeature, valid As Variant, error_message As String)
    Dim oper As FMOperation
    Dim UDO As FMUserOperation
    Dim fkz_max_z As Double
    Dim fkz_min_z As Double
    Dim fkz_shag_z  As Double
    Dim cut_feed   As Double
    Dim fkz_dia_zag As Double
    Dim fkz_dia_otv   As Double
    Dim fkz_koef_per       As Double
    Dim fkz_podhod     As Double

    valid = False

' backbore  ----------------------------------------------------

    If( UDF.RegisteredName = udf_frezkrug.Name) Then
        fkz_max_z = UDF.GetData( id_fkz_max_z)
        fkz_min_z = UDF.GetData( id_fkz_min_z)
        fkz_shag_z  = UDF.GetData( id_fkz_shag_z)
        cut_feed   = UDF.GetData( id_fkz_cut_feed)
        fkz_dia_zag = UDF.GetData( id_fkz_dia_zag)
        fkz_dia_otv   = UDF.GetData( id_fkz_dia_otv)
        fkz_koef_per    = UDF.GetData( id_fkz_koef_per)
        fkz_podhod     = UDF.GetData( id_fkz_podhod)

        Set UDO = UDF.AddUserOperation(udfo_frezkrug.Name, fkz_max_z, fkz_min_z, fkz_shag_z, cut_feed, fkz_dia_zag, fkz_dia_otv, fkz_koef_per, fkz_podhod)
        UDO.SetAttribute(eAID_Priority,,40)

        valid = True

    End If


End Sub

Private Sub Application_UserOperationDefaultTool(UDO As FeatureCAM.FMUserOperation, tool_name As String, valid As Variant, Crib As FeatureCAM.FMToolCrib)

    Dim tools As FMTools
    Dim tool As FMTool

    'handler for the tool selection for the UDOs
    If( UDO.RegisteredName = udfo_frezkrug.Name ) Then

        Set tools = Crib.EndMills
        For Each tool In tools
            tool_name = tool.Name
        Next tool


        valid = True
    End If

End Sub

Private Sub Application_UserOperationFeedSpeed(UDO As FeatureCAM.FMUserOperation, feed As Double, speed As Double, valid As Variant)
    'handler to calculate the speed/feed of the operation
    Dim depth As Double

    If( UDO.RegisteredName = udfo_frezkrug.Name ) Then
        depth = UDO.GetArgument(2)
        UDO.MillFeedSpeed( feed, speed, depth, eFSOT_Face)
        valid = True
    End If

End Sub

Private Sub Application_UserOperationToolPath(UDO As FeatureCAM.FMUserOperation, valid As Variant)

    'handler to create the toolpaths for the UDO
    Dim feed    As Double, tool_dia As Double
    Dim fkz_max_z   As Double, fkz_min_z        As Double
    Dim fkz_shag_z  As Double, cut_feed         As Double
    Dim dia_zag         As Double, tool_clearance   As Double
    Dim fkz_dia_otv As Double
    Dim koef_per    As  Double, podhod          As Double


        Dim tool As FMEndMill, ToolDia As Double                                    ' get tool used
        Set tool = UDO.Tool
        ToolDia = tool.Diameter

    If( UDO.RegisteredName = udfo_frezkrug.Name ) Then
        feed     = UDO.Attribute(eAID_MillFeedUnitPerRev)
        fkz_max_z = UDO.GetArgument(0)
        fkz_min_z = UDO.GetArgument(1)
        fkz_shag_z  = UDO.GetArgument(2)
        cut_feed   = UDO.GetArgument(3)
        dia_zag      = UDO.GetArgument(4)
        fkz_dia_otv   = UDO.GetArgument(5)
        koef_per = UDO.GetArgument(6)
        podhod = UDO.GetArgument(7)


        UDO.AddRapidMove ( 0, 0, fkz_max_z+10)
        UDO.AddLinearMove( 0, 0, fkz_max_z+5,,,eUDOFT_FeedRate)


        '====Creating Feature===='
        UDO.AddPostedText("G65 P8086 R" & fkz_max_z & " Z" & fkz_min_z & " Q" & fkz_shag_z & " D" &  dia_zag & " C" & fkz_dia_otv  & " I" & ToolDia  & " K" &  koef_per & " B" & podhod & " F" & cut_feed)



        valid = True
    End If
End Sub

Справка на английском очень не информативная. Некоторые моменты приходится осваивать методом тыка.

По кибер технологу не подскажу.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...