{"id":96324,"date":"2023-07-20T10:37:59","date_gmt":"2023-07-20T02:37:59","guid":{"rendered":"https:\/\/www.tm-robot.com\/?post_type=docs&p=96324"},"modified":"2023-09-20T13:57:29","modified_gmt":"2023-09-20T05:57:29","slug":"how-to-develop-a-tmcraft-node","status":"publish","type":"docs","link":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/","title":{"rendered":"How to Develop a TMcraft Node"},"content":{"rendered":"

Examples are valid for:<\/p>\n

TMflow Software version: 2.14 or above.<\/p>\n

TM Robot Hardware version: Only support HW3.2 or above<\/p>\n

Other specific requirements: None<\/p>\n

Note that older or newer software versions may have different results.<\/p>\n

 <\/p>\n

TMcraft node is customized Node UI Program, a C# + WPF-based execution file (exe) developed by 3rd<\/sup> party. The Program can interacts with TMflow through TMcraft API to do actions, such as creating or modifying project variables, creating or modifying points, setting I\/O, jogging the robot, etc. Before the Node UI is closed, the program can transform the settings into TMscript and write it into the Flow Project.<\/p>\n

For security issues, developers cannot just put an exe file onto TMflow; instead, they have to develop and build the Node UI into a User Control Library ( DLL file ) first. Through the TMcraft-Build on TMstudio Pro, this User Control Library is then built as an execution file and zipped with other resources (such as libraries, media, etc.). Finally, import this zipped file to TMflow, this TMcraft Node can be used on Flow project after enabling.<\/p>\n

\"\"<\/a><\/p>\n

What is TMcraft API<\/strong><\/h2>\n

TMcraft API is an interface layer that connects TMcraft Node with TMflow to get all sorts of robot\/project information and request TMflow to take different actions or generate scripts for the project run. In addition, this API is an actual Dynamic Link Library file (DLL) for users to add as one of the program dependencies and to use the functions within to interact with TMflow.<\/p>\n

 <\/p>\n

TMcraft.dll has four parts: ITMcraftNodeEntry, Providers, Info and ENUMs.<\/p>\n

 <\/p>\n

    \n
  1. ITMcraftNodeEntry<\/strong> is the essential part of the API to establish the connection between the Node and TMflow (i.e. InitializeNode()<\/span>).The rest of the API functions are not available without this connection.<\/li>\n
  2. Providers<\/strong> are a set of classes with functions associated with different interactions with TMflow frequently used among the Programs.<\/li>\n
  3. Info<\/strong> is a collection of classes, such as BaseInfo, PointInfo, and VariableInfo, used by different types of Provider functions.<\/li>\n
  4. ENUM<\/strong> are value types defined by a set of named constants of the underlying integral numeric type, including: IO_TYPE, VariableType, FreeBotModes, RobotEventType and TMflowType.<\/li>\n<\/ol>\n

    Also, TMcraft API includes a few member functions: Close()<\/span>, GetErrMsg()<\/span>, and Version<\/span>. Refer to the TMcraft Node API function manual<\/em> for details.<\/p>\n

     <\/p>\n

    Here is the simplest sample code of a TMcraft Node.<\/p>\n

    \"TMcraft<\/a><\/p>\n

    Please download sample script from here<\/span><\/a><\/em><\/p>\n

     <\/p>\n

    This sample can be defined as the following parts:<\/p>\n

      \n
    1. Add TMcraft.dll as a reference (using<\/span> TMcraft).<\/li>\n
    2. Implement the Interface ITMcraftNodeEntry to the User Control class. This interface has two members that require implementation, InitializeNode()<\/span> and InscribeScript()<\/span>.<\/li>\n
    3. InitializeNode()<\/span> would be activated once opened the Node UI, which connects the Node with TMflow; technically, this makes the TMcraftNodeAPI object (TMNodeEditor) available for calling all TMcraft functions, such as DataStorageProvider.SaveData()<\/span>.<\/li>\n
    4. InscribeScript()<\/span> would activate when the Node UI is closed, and developers should define what TMscript would implement to the flow project using ScriptWriteProvider functions.<\/li>\n
    5. The rest of the program should be all sorts of event functions that could interact with TMflow through TMcraft functions.<\/li>\n<\/ol>\n

       <\/p>\n

      For more details on developing, please refer to tutorials and sample codes of the TMcraft Development Kit.<\/p>\n","protected":false},"excerpt":{"rendered":"

      Examples are valid for: TMflow Software version: 2.14 or above. TM Robot Hardware version: Only support HW3.2 or above Other specific requirements: None Note that older or newer software versions may have different results.   TMcraft node is customized Node UI Program, a C# + WPF-based execution file (exe) developed by 3rd party. The Program […]<\/p>\n","protected":false},"author":8760,"featured_media":0,"parent":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"doc_category":[4759],"doc_tag":[],"acf":[],"yoast_head":"\nHow to Develop a TMcraft Node | Techman Robot<\/title>\n<meta name=\"robots\" content=\"noindex, follow\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Develop a TMcraft Node | Techman Robot\" \/>\n<meta property=\"og:description\" content=\"Examples are valid for: TMflow Software version: 2.14 or above. TM Robot Hardware version: Only support HW3.2 or above Other specific requirements: None Note that older or newer software versions may have different results.   TMcraft node is customized Node UI Program, a C# + WPF-based execution file (exe) developed by 3rd party. The Program […]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/\" \/>\n<meta property=\"og:site_name\" content=\"Techman Robot\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-20T05:57:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2023\/07\/messageImage_1689819996096.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.tm-robot.com.cn\/de\/#organization\",\"name\":\"Techman Robot\",\"url\":\"https:\/\/www.tm-robot.com.cn\/de\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.tm-robot.com.cn\/de\/#logo\",\"inLanguage\":\"ko-KR\",\"url\":\"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2018\/09\/logo.png\",\"contentUrl\":\"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2018\/09\/logo.png\",\"width\":221,\"height\":196,\"caption\":\"Techman Robot\"},\"image\":{\"@id\":\"https:\/\/www.tm-robot.com.cn\/de\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.tm-robot.com.cn\/de\/#website\",\"url\":\"https:\/\/www.tm-robot.com.cn\/de\/\",\"name\":\"Techman Robot\",\"description\":\"Intelligent Cobots for a World of Applications\",\"publisher\":{\"@id\":\"https:\/\/www.tm-robot.com.cn\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.tm-robot.com.cn\/de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#primaryimage\",\"inLanguage\":\"ko-KR\",\"url\":\"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2023\/07\/messageImage_1689819996096.jpg\",\"contentUrl\":\"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2023\/07\/messageImage_1689819996096.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#webpage\",\"url\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/\",\"name\":\"How to Develop a TMcraft Node | Techman Robot\",\"isPartOf\":{\"@id\":\"https:\/\/www.tm-robot.com.cn\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#primaryimage\"},\"datePublished\":\"2023-07-20T02:37:59+00:00\",\"dateModified\":\"2023-09-20T05:57:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.tm-robot.com\/ko\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https:\/\/www.tm-robot.com.cn\/ko\/docs\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Develop a TMcraft Node\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Develop a TMcraft Node | Techman Robot","robots":{"index":"noindex","follow":"follow"},"og_locale":"ko_KR","og_type":"article","og_title":"How to Develop a TMcraft Node | Techman Robot","og_description":"Examples are valid for: TMflow Software version: 2.14 or above. TM Robot Hardware version: Only support HW3.2 or above Other specific requirements: None Note that older or newer software versions may have different results.   TMcraft node is customized Node UI Program, a C# + WPF-based execution file (exe) developed by 3rd party. The Program […]","og_url":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/","og_site_name":"Techman Robot","article_modified_time":"2023-09-20T05:57:29+00:00","og_image":[{"url":"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2023\/07\/messageImage_1689819996096.jpg"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.tm-robot.com.cn\/de\/#organization","name":"Techman Robot","url":"https:\/\/www.tm-robot.com.cn\/de\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https:\/\/www.tm-robot.com.cn\/de\/#logo","inLanguage":"ko-KR","url":"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2018\/09\/logo.png","contentUrl":"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2018\/09\/logo.png","width":221,"height":196,"caption":"Techman Robot"},"image":{"@id":"https:\/\/www.tm-robot.com.cn\/de\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.tm-robot.com.cn\/de\/#website","url":"https:\/\/www.tm-robot.com.cn\/de\/","name":"Techman Robot","description":"Intelligent Cobots for a World of Applications","publisher":{"@id":"https:\/\/www.tm-robot.com.cn\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.tm-robot.com.cn\/de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ko-KR"},{"@type":"ImageObject","@id":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#primaryimage","inLanguage":"ko-KR","url":"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2023\/07\/messageImage_1689819996096.jpg","contentUrl":"https:\/\/tm-robot.oss-cn-hongkong.aliyuncs.com\/wp-content\/uploads\/2023\/07\/messageImage_1689819996096.jpg"},{"@type":"WebPage","@id":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#webpage","url":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/","name":"How to Develop a TMcraft Node | Techman Robot","isPartOf":{"@id":"https:\/\/www.tm-robot.com.cn\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#primaryimage"},"datePublished":"2023-07-20T02:37:59+00:00","dateModified":"2023-09-20T05:57:29+00:00","breadcrumb":{"@id":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/how-to-develop-a-tmcraft-node\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.tm-robot.com\/ko\/"},{"@type":"ListItem","position":2,"name":"Docs","item":"https:\/\/www.tm-robot.com.cn\/ko\/docs\/"},{"@type":"ListItem","position":3,"name":"How to Develop a TMcraft Node"}]}]}},"_links":{"self":[{"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/docs\/96324"}],"collection":[{"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/users\/8760"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/comments?post=96324"}],"version-history":[{"count":2,"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/docs\/96324\/revisions"}],"predecessor-version":[{"id":99440,"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/docs\/96324\/revisions\/99440"}],"wp:attachment":[{"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/media?parent=96324"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/doc_category?post=96324"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.tm-robot.com.cn\/ko\/wp-json\/wp\/v2\/doc_tag?post=96324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}