{"id":1652,"date":"2025-11-24T13:22:54","date_gmt":"2025-11-24T06:22:54","guid":{"rendered":"https:\/\/3dmodelbuy.com\/?page_id=1652"},"modified":"2026-02-23T14:37:29","modified_gmt":"2026-02-23T07:37:29","slug":"pythonmaya","status":"publish","type":"page","link":"https:\/\/3dmodelbuy.com\/?page_id=1652","title":{"rendered":"PythonMaya"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1652\" class=\"elementor elementor-1652\">\n\t\t\t\t<div class=\"elementor-element elementor-element-376e7d6 e-flex e-con-boxed e-con e-parent\" data-id=\"376e7d6\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-912c261 e-grid e-con-full e-con e-child\" data-id=\"912c261\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b952eaf elementor-widget elementor-widget-site-logo\" data-id=\"b952eaf\" data-element_type=\"widget\" data-settings=\"{&quot;align&quot;:&quot;left&quot;,&quot;width&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;width_tablet&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;width_mobile&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;space&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;space_tablet&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;space_mobile&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;image_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;image_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;image_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;caption_padding&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;caption_padding_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;caption_padding_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;caption_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;caption_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;caption_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"site-logo.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"hfe-site-logo\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a data-elementor-open-lightbox=\"\"  class='elementor-clickable' href=\"https:\/\/3dmodelbuy.com\/\">\n\t\t\t\t\t\t\t<div class=\"hfe-site-logo-set\">           \n\t\t\t\t<div class=\"hfe-site-logo-container\">\n\t\t\t\t\t\t\t\t\t<img decoding=\"async\" class=\"hfe-site-logo-img elementor-animation-\"  src=\"https:\/\/3dmodelbuy.com\/wp-content\/uploads\/2025\/11\/Logo_3dModer150x400-300x113.png\" alt=\"Logo_3dModer150x400\"\/>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>  \n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3a8ea87 hfe-nav-menu__align-left hfe-submenu-icon-arrow hfe-submenu-animation-none hfe-link-redirect-child hfe-nav-menu__breakpoint-tablet elementor-widget elementor-widget-navigation-menu\" data-id=\"3a8ea87\" data-element_type=\"widget\" data-settings=\"{&quot;padding_horizontal_menu_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_menu_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_menu_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_space_between_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_row_space&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_row_space_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;menu_row_space_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;dropdown_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;dropdown_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;top&quot;:&quot;&quot;,&quot;right&quot;:&quot;&quot;,&quot;bottom&quot;:&quot;&quot;,&quot;left&quot;:&quot;&quot;,&quot;isLinked&quot;:true},&quot;width_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;220&quot;,&quot;sizes&quot;:[]},&quot;width_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;width_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_horizontal_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:15,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;padding_vertical_dropdown_item_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;distance_from_menu_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_size_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_width_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;toggle_border_radius_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"navigation-menu.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"hfe-nav-menu hfe-layout-horizontal hfe-nav-menu-layout horizontal hfe-pointer__none\" data-layout=\"horizontal\">\n\t\t\t\t<div role=\"button\" class=\"hfe-nav-menu__toggle elementor-clickable\" tabindex=\"0\" aria-label=\"Menu Toggle\">\n\t\t\t\t\t<span class=\"screen-reader-text\">Menu<\/span>\n\t\t\t\t\t<div class=\"hfe-nav-menu-icon\">\n\t\t\t\t\t\t<svg aria-hidden=\"true\"  class=\"e-font-icon-svg e-fas-align-justify\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"><\/path><\/svg>\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<nav class=\"hfe-nav-menu__layout-horizontal hfe-nav-menu__submenu-arrow\" data-toggle-icon=\"&lt;svg aria-hidden=&quot;true&quot; tabindex=&quot;0&quot; class=&quot;e-font-icon-svg e-fas-align-justify&quot; viewBox=&quot;0 0 448 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-close-icon=\"&lt;svg aria-hidden=&quot;true&quot; tabindex=&quot;0&quot; class=&quot;e-font-icon-svg e-far-window-close&quot; viewBox=&quot;0 0 512 512&quot; xmlns=&quot;http:\/\/www.w3.org\/2000\/svg&quot;&gt;&lt;path d=&quot;M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z&quot;&gt;&lt;\/path&gt;&lt;\/svg&gt;\" data-full-width=\"yes\">\n\t\t\t\t\t<ul id=\"menu-1-3a8ea87\" class=\"hfe-nav-menu\"><li id=\"menu-item-2469\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/3dmodelbuy.com\/?page_id=1545\" class = \"hfe-menu-item\">Art Desgn<\/a><\/li>\n<li id=\"menu-item-2483\" class=\"menu-item menu-item-type-post_type menu-item-object-post parent hfe-creative-menu\"><a href=\"https:\/\/3dmodelbuy.com\/?p=2453\" class = \"hfe-menu-item\">Maya | Learn<\/a><\/li>\n<li id=\"menu-item-2467\" class=\"menu-item menu-item-type-post_type menu-item-object-page parent hfe-creative-menu\"><a href=\"https:\/\/3dmodelbuy.com\/?page_id=1652\" class = \"hfe-menu-item\">PythonMaya<\/a><\/li>\n<li id=\"menu-item-2507\" class=\"menu-item menu-item-type-post_type menu-item-object-post parent hfe-creative-menu\"><a href=\"https:\/\/3dmodelbuy.com\/?p=2503\" class = \"hfe-menu-item\">3dsmax | Learn<\/a><\/li>\n<\/ul> \n\t\t\t\t<\/nav>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1470ab9 e-flex e-con-boxed e-con e-parent\" data-id=\"1470ab9\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-74d47b0 elementor-widget__width-inherit elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"74d47b0\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d71a9cf e-flex e-con-boxed e-con e-parent\" data-id=\"d71a9cf\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6fb7866 elementor-widget elementor-widget-heading\" data-id=\"6fb7866\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">PYTHON | MAYA<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f8b6385 e-flex e-con-boxed e-con e-parent\" data-id=\"f8b6385\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d668112 elementor-widget elementor-widget-text-editor\" data-id=\"d668112\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h2 data-path-to-node=\"3\"><span style=\"font-size: 18pt; color: #999999;\">Python trong Maya l\u00e0 g\u00ec?<\/span><\/h2><p data-path-to-node=\"4\"><span style=\"color: #999999;\"><b data-path-to-node=\"4\" data-index-in-node=\"0\">Python trong Maya<\/b> kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh, m\u00e0 l\u00e0 &#8220;chi\u1ebfc ch\u00eca kh\u00f3a&#8221; gi\u00fap ng\u01b0\u1eddi ngh\u1ec7 s\u0129 3D v\u01b0\u1ee3t qua gi\u1edbi h\u1ea1n c\u1ee7a giao di\u1ec7n \u0111\u1ed3 h\u1ecda th\u00f4ng th\u01b0\u1eddng. Thay v\u00ec th\u1ef1c hi\u1ec7n h\u00e0ng tr\u0103m c\u00fa nh\u1ea5p chu\u1ed9t l\u1eb7p \u0111i l\u1eb7p l\u1ea1i \u0111\u1ec3 d\u1ef1ng h\u00ecnh, b\u1ea1n s\u1eed d\u1ee5ng c\u00e1c d\u00f2ng l\u1ec7nh (Script) \u0111\u1ec3 \u0111i\u1ec1u khi\u1ec3n tr\u1ef1c ti\u1ebfp nh\u00e2n \u0111\u1ed3 h\u1ecda c\u1ee7a Maya.<\/span><\/p><p data-path-to-node=\"5\"><span style=\"color: #999999;\">Trong k\u1ef9 thu\u1eadt <b data-path-to-node=\"5\" data-index-in-node=\"15\">Modeling<\/b>, Python \u0111\u00f3ng vai tr\u00f2:<\/span><\/p><ul data-path-to-node=\"6\"><li><p data-path-to-node=\"6,0,0\"><span style=\"color: #999999;\"><b data-path-to-node=\"6,0,0\" data-index-in-node=\"0\">T\u1ef1 \u0111\u1ed9ng h\u00f3a (Automation):<\/b> Th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p (nh\u01b0 t\u1ea1o h\u1ec7 th\u1ed1ng v\u1ea3y r\u1ed3ng, r\u1ea3i s\u1ecfi, hay d\u1ecdn d\u1eb9p mesh) ch\u1ec9 v\u1edbi m\u1ed9t n\u00fat b\u1ea5m.<\/span><\/p><\/li><li><p data-path-to-node=\"6,1,0\"><span style=\"color: #999999;\"><b data-path-to-node=\"6,1,0\" data-index-in-node=\"0\">\u0110\u1ed9 ch\u00ednh x\u00e1c tuy\u1ec7t \u0111\u1ed1i:<\/b> T\u00ednh to\u00e1n v\u1ecb tr\u00ed Vertex, Edge, Face d\u1ef1a tr\u00ean c\u00e1c c\u00f4ng th\u1ee9c to\u00e1n h\u1ecdc, \u0111\u1ea3m b\u1ea3o s\u1ef1 ho\u00e0n h\u1ea3o m\u00e0 m\u1eaft th\u01b0\u1eddng kh\u00f3 \u0111i\u1ec1u ch\u1ec9nh \u0111\u01b0\u1ee3c.<\/span><\/p><\/li><li><p data-path-to-node=\"6,2,0\"><span style=\"color: #999999;\"><b data-path-to-node=\"6,2,0\" data-index-in-node=\"0\">T\u00f9y bi\u1ebfn c\u00f4ng c\u1ee5 (Custom Tools):<\/b> T\u1ef1 t\u1ea1o ra c\u00e1c b\u1ed9 c\u00f4ng c\u1ee5 c\u00e1 nh\u00e2n h\u00f3a, ph\u00f9 h\u1ee3p v\u1edbi quy tr\u00ecnh l\u00e0m vi\u1ec7c ri\u00eang c\u1ee7a t\u1eebng Artist ho\u1eb7c Studio.<\/span><\/p><\/li><\/ul><blockquote data-path-to-node=\"7\"><p data-path-to-node=\"7,0\"><span style=\"color: #999999;\"><b data-path-to-node=\"7,0\" data-index-in-node=\"0\">C\u1ed1t l\u00f5i:<\/b> H\u1ecdc Python trong Maya l\u00e0 h\u1ecdc c\u00e1ch chuy\u1ec3n t\u01b0 duy t\u1eeb &#8220;ng\u01b0\u1eddi d\u00f9ng ph\u1ea7n m\u1ec1m&#8221; sang &#8220;ng\u01b0\u1eddi t\u1ea1o ra gi\u1ea3i ph\u00e1p&#8221;.<\/span><\/p><h3 data-path-to-node=\"9\"><span style=\"color: #999999;\">C\u1ea5u tr\u00fac m\u00e3 code c\u01a1 b\u1ea3n \u0111\u1ec3 b\u1ea1n b\u1eaft \u0111\u1ea7u:<\/span><\/h3><p data-path-to-node=\"10\"><span style=\"color: #999999;\">\u0110\u1ec3 m\u00e3 code Python c\u00f3 th\u1ec3 giao ti\u1ebfp \u0111\u01b0\u1ee3c v\u1edbi Maya, m\u1ecdi Script \u0111\u1ec1u ph\u1ea3i b\u1eaft \u0111\u1ea7u b\u1eb1ng vi\u1ec7c g\u1ecdi th\u01b0 vi\u1ec7n l\u1ec7nh c\u1ee7a AutodesK.<\/span><\/p><p><span style=\"color: #00ccff;\">import maya.cmds as cmds<\/span><\/p><p><span style=\"color: #999999;\"># &#8216;import&#8217;: N\u1ea1p th\u01b0 vi\u1ec7n v\u00e0o b\u1ed9 nh\u1edb.<\/span><br \/><span style=\"color: #999999;\"># &#8216;maya.cmds&#8217;: Th\u01b0 vi\u1ec7n ch\u1ee9a t\u1ea5t c\u1ea3 c\u00e1c l\u1ec7nh thao t\u00e1c trong Maya (t\u01b0\u01a1ng \u0111\u01b0\u01a1ng v\u1edbi c\u00e1c menu tr\u00ean m\u00e0n h\u00ecnh).<\/span><br \/><span style=\"color: #999999;\"># &#8216;as cmds&#8217;: \u0110\u1eb7t t\u00ean vi\u1ebft t\u1eaft l\u00e0 &#8216;cmds&#8217; \u0111\u1ec3 khi vi\u1ebft code nhanh h\u01a1n v\u00e0 g\u1ecdn h\u01a1n.<\/span><\/p><p><span style=\"color: #999999;\"># V\u00ed d\u1ee5: L\u1ec7nh t\u1ea1o m\u1ed9t kh\u1ed1i l\u1eadp ph\u01b0\u01a1ng (Cube)<\/span><br \/><span style=\"color: #999999;\">cmds.polyCube(name=&#8221;MyCube_01&#8243;)<\/span><\/p><p data-path-to-node=\"12\"><span style=\"color: #999999;\"><b data-path-to-node=\"12\" data-index-in-node=\"0\">Logic v\u1eadn h\u00e0nh:<\/b><\/span><\/p><ol start=\"1\" data-path-to-node=\"13\"><li><p data-path-to-node=\"13,0,0\"><span style=\"color: #999999;\"><b data-path-to-node=\"13,0,0\" data-index-in-node=\"0\">Th\u01b0 vi\u1ec7n <code data-path-to-node=\"13,0,0\" data-index-in-node=\"9\">cmds<\/code>:<\/b> L\u00e0 c\u1ea7u n\u1ed1i. Khi b\u1ea1n vi\u1ebft <code data-path-to-node=\"13,0,0\" data-index-in-node=\"40\">cmds.polyCube()<\/code>, Python s\u1ebd &#8220;ra l\u1ec7nh&#8221; cho Maya th\u1ef1c hi\u1ec7n ch\u1ee9c n\u0103ng t\u1ea1o kh\u1ed1i \u0111\u00e3 \u0111\u01b0\u1ee3c l\u1eadp tr\u00ecnh s\u1eb5n.<\/span><\/p><\/li><li><p data-path-to-node=\"13,1,0\"><span style=\"color: #999999;\"><b data-path-to-node=\"13,1,0\" data-index-in-node=\"0\">Tham s\u1ed1 (Arguments):<\/b> Nh\u01b0 <code data-path-to-node=\"13,1,0\" data-index-in-node=\"25\">name=\"MyCube_01\"<\/code>, gi\u00fap b\u1ea1n \u0111\u1ecbnh ngh\u0129a chi ti\u1ebft thu\u1ed9c t\u00ednh c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng ngay khi n\u00f3 v\u1eeba \u0111\u01b0\u1ee3c sinh ra.<\/span><\/p><\/li><\/ol><h2 data-path-to-node=\"6\"><span style=\"color: #999999;\">T\u00e0i li\u1ec7u tra c\u1ee9u ch\u00ednh\u00a0<\/span><\/h2><p data-path-to-node=\"7\"><span style=\"color: #999999;\">\u0110\u1eebng bao gi\u1edd qu\u00ean &#8220;s\u00e1ch g\u1ed1i \u0111\u1ea7u gi\u01b0\u1eddng&#8221; t\u1eeb nh\u00e0 ph\u00e1t h\u00e0nh:<\/span><\/p><ul data-path-to-node=\"8\"><li><p data-path-to-node=\"8,0,0\"><b data-path-to-node=\"8,0,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/help.autodesk.com\/view\/MAYAUL\/2024\/ENU\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"10\">Autodesk Maya Python Command Reference<\/a>:<\/b> <span style=\"color: #999999;\">\u0110\u00e2y l\u00e0 b\u1ea3ng tra c\u1ee9u m\u1ecdi l\u1ec7nh Python trong Maya.<\/span><\/p><ul data-path-to-node=\"8,0,1\"><li><p data-path-to-node=\"8,0,1,0,0\"><span style=\"color: #999999;\"><i data-path-to-node=\"8,0,1,0,0\" data-index-in-node=\"0\">M\u1eb9o:<\/i> Khi b\u1ea1n d\u00f9ng l\u1ec7nh g\u00ec tr\u00ean giao di\u1ec7n Maya, h\u00e3y nh\u00ecn v\u00e0o <b data-path-to-node=\"8,0,1,0,0\" data-index-in-node=\"60\">Script Editor<\/b>, sau \u0111\u00f3 l\u1ea5y l\u1ec7nh \u0111\u00f3 tra c\u1ee9u tr\u00ean trang n\u00e0y \u0111\u1ec3 bi\u1ebft c\u00e1c tham s\u1ed1 (<code data-path-to-node=\"8,0,1,0,0\" data-index-in-node=\"138\">flags<\/code>) \u0111i k\u00e8m<\/span>.<\/p><\/li><\/ul><\/li><li><p data-path-to-node=\"8,1,0\"><b data-path-to-node=\"8,1,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/www.google.com\/search?q=https:\/\/help.autodesk.com\/view\/MAYAUL\/2024\/ENU\/%3Fguid%3D__py_ref_index_html\" target=\"_blank\" rel=\"noopener\" data-hveid=\"11\">Maya Python API 2.0 Reference<\/a>:<\/b> <span style=\"color: #999999;\">D\u00e0nh cho vi\u1ec7c can thi\u1ec7p s\u00e2u v\u00e0o nh\u00e2n c\u1ee7a Maya v\u1edbi t\u1ed1c \u0111\u1ed9 x\u1eed l\u00fd nhanh h\u01a1n<\/span> <code data-path-to-node=\"8,1,0\" data-index-in-node=\"104\">maya.cmds<\/code>.<\/p><\/li><\/ul><h2 data-path-to-node=\"9\"><span style=\"color: #999999;\">3. C\u1ed9ng \u0111\u1ed3ng h\u1ed7 tr\u1ee3 v\u00e0 Gi\u1ea3i \u0111\u00e1p<\/span><\/h2><p data-path-to-node=\"10\"><span style=\"color: #999999;\">Khi g\u1eb7p l\u1ed7i (bug) m\u00e0 kh\u00f4ng t\u1ef1 gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c, b\u1ea1n n\u00ean t\u00ecm \u0111\u1ebfn<\/span>:<\/p><ul data-path-to-node=\"11\"><li><p data-path-to-node=\"11,0,0\"><b data-path-to-node=\"11,0,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/tech-artists.org\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"12\">Tech-Artists.org<\/a>:<\/b> <span style=\"color: #999999;\">Di\u1ec5n \u0111\u00e0n chuy\u00ean nghi\u1ec7p nh\u1ea5t th\u1ebf gi\u1edbi d\u00e0nh cho Technical Artists.<\/span><\/p><\/li><li><p data-path-to-node=\"11,1,0\"><b data-path-to-node=\"11,1,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/www.reddit.com\/r\/Maya\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"13\">Reddit r\/Maya<\/a>:<\/b><span style=\"color: #999999;\"> N\u01a1i trao \u0111\u1ed5i nhanh c\u00e1c m\u1eb9o v\u00e0 gi\u1ea3i quy\u1ebft c\u00e1c v\u1ea5n \u0111\u1ec1 nh\u1ecf.<\/span><\/p><\/li><li><p data-path-to-node=\"11,2,0\"><b data-path-to-node=\"11,2,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/forums.autodesk.com\/t5\/maya-programming-forum\/bd-p\/maya-programming-forum-en\" target=\"_blank\" rel=\"noopener\" data-hveid=\"14\">Maya Programming Forum (Autodesk Community)<\/a>:<\/b><span style=\"color: #999999;\"> K\u00eanh h\u1ed7 tr\u1ee3 ch\u00ednh th\u1ee9c t\u1eeb Autodesk.<\/span><\/p><\/li><\/ul><p data-path-to-node=\"0\"><span style=\"color: #999999;\">Vi\u1ec7c h\u1ecdc Python trong Maya (th\u01b0\u1eddng \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 Maya Python hay <code data-path-to-node=\"0\" data-index-in-node=\"73\">maya.cmds<\/code>) y\u00eau c\u1ea7u c\u00e1c ngu\u1ed3n t\u00e0i li\u1ec7u k\u1ebft h\u1ee3p gi\u1eefa t\u01b0 duy l\u1eadp tr\u00ecnh v\u00e0 ki\u1ebfn th\u1ee9c v\u1ec1 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u c\u1ee7a ph\u1ea7n m\u1ec1m 3D.<\/span><\/p><p data-path-to-node=\"1\"><span style=\"color: #999999;\">D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1c trang web v\u00e0 ngu\u1ed3n h\u1ecdc t\u1eadp t\u1ed1t nh\u1ea5t<\/span> <span style=\"color: #999999;\">C\u00e1c trang Web &amp; Kh\u00f3a h\u1ecdc chuy\u00ean s\u00e2u (Ti\u1ebfng Anh)<\/span><\/p><\/blockquote><ul data-path-to-node=\"5\"><li><p data-path-to-node=\"5,0,0\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/zurbrigg.com\/tutorials\" target=\"_blank\" rel=\"noopener\" data-hveid=\"5\">Zurbrigg<\/a>:<\/b> <span style=\"color: #999999;\">\u0110\u00e2y l\u00e0 &#8220;ti\u00eau chu\u1ea9n v\u00e0ng&#8221; cho ng\u01b0\u1eddi m\u1edbi b\u1eaft \u0111\u1ea7u. T\u00e1c gi\u1ea3 gi\u1ea3i th\u00edch c\u1ef1c k\u1ef3 c\u1eb7n k\u1ebd v\u1ec1<\/span> <span style=\"color: #33cccc;\"><b data-path-to-node=\"5,0,0\" data-index-in-node=\"94\">Maya Python API<\/b><\/span> <span style=\"color: #999999;\">v\u00e0 c\u00e1ch x\u00e2y d\u1ef1ng c\u00f4ng c\u1ee5 (Tool Building). Video ch\u1ea5t l\u01b0\u1ee3ng, d\u1ec5 hi\u1ec3u ngay c\u1ea3 khi b\u1ea1n ch\u1ec9 m\u1edbi bi\u1ebft Python c\u01a1 b\u1ea3n.<\/span><\/p><\/li><li><p data-path-to-node=\"5,1,0\"><b data-path-to-node=\"5,1,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/zurbrigg.teachable.com\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"6\">Chris Zurbrigg (Teachable)<\/a>:<\/b> <span style=\"color: #999999;\">N\u01a1i cung c\u1ea5p c\u00e1c kh\u00f3a h\u1ecdc chuy\u00ean s\u00e2u h\u01a1n v\u1ec1 PySide2\/PyQt5 \u0111\u1ec3 thi\u1ebft k\u1ebf giao di\u1ec7n (UI) chuy\u00ean nghi\u1ec7p trong Maya.<\/span><\/p><\/li><li><p data-path-to-node=\"5,2,0\"><b data-path-to-node=\"5,2,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/www.alexanderrichtertd.com\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"7\">Alexander Richter (The Tech Art Tutorials)<\/a>:<\/b> <span style=\"color: #999999;\">T\u1eadp trung v\u00e0o quy tr\u00ecnh l\u00e0m vi\u1ec7c th\u1ef1c t\u1ebf trong c\u00e1c studio l\u1edbn (VFX\/Games). C\u00e1c b\u00e0i vi\u1ebft \u1edf \u0111\u00e2y gi\u00fap b\u1ea1n hi\u1ec3u c\u00e1ch Python v\u1eadn h\u00e0nh trong m\u1ed9t Pipeline s\u1ea3n xu\u1ea5t th\u1ef1c th\u1ee5.<\/span><\/p><\/li><li><p data-path-to-node=\"5,3,0\"><b data-path-to-node=\"5,3,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/www.chadvernon.com\/maya-api-programming\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"8\">Chad Vernon<\/a>:<\/b><span style=\"color: #999999;\"> N\u1ebfu b\u1ea1n mu\u1ed1n ti\u1ebfn xa h\u01a1n v\u00e0o vi\u1ec7c vi\u1ebft Plugin b\u1eb1ng<\/span> <span style=\"color: #33cccc;\"><b data-path-to-node=\"5,3,0\" data-index-in-node=\"64\">Maya API (C++ v\u00e0 Python)<\/b><\/span>, <span style=\"color: #999999;\">\u0111\u00e2y l\u00e0 \u0111\u1ecba ch\u1ec9 kh\u00f4ng th\u1ec3 b\u1ecf qua. N\u1ed9i dung \u1edf \u0111\u00e2y kh\u00e1 n\u00e2ng cao, d\u00e0nh cho ng\u01b0\u1eddi mu\u1ed1n t\u1ed1i \u01b0u hi\u1ec7u su\u1ea5t v\u01b0\u1ee3t qua gi\u1edbi h\u1ea1n c\u1ee7a Script th\u00f4ng th\u01b0\u1eddng.<\/span><\/p><\/li><li><p data-path-to-node=\"5,4,0\"><b data-path-to-node=\"5,4,0\" data-index-in-node=\"0\"><a class=\"ng-star-inserted\" href=\"https:\/\/jettelly.com\/store\/the-technical-artist-s-guide-to-python-in-maya\" target=\"_blank\" rel=\"noopener\" data-hveid=\"9\">Jettelly<\/a>:<\/b> <span style=\"color: #999999;\">Cung c\u1ea5p c\u00e1c h\u01b0\u1edbng d\u1eabn mang t\u00ednh tr\u1ef1c quan (Visual Guide), r\u1ea5t ph\u00f9 h\u1ee3p cho nh\u1eefng b\u1ea1n xu\u1ea5t th\u00e2n l\u00e0 Artist mu\u1ed1n ti\u1ebfp c\u1eadn l\u1eadp tr\u00ecnh m\u00e0 kh\u00f4ng b\u1ecb ng\u1ee3p b\u1edfi c\u00e1c d\u00f2ng code kh\u00f4 khan.<\/span><\/p><\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cfac913 e-flex e-con-boxed e-con e-parent\" data-id=\"cfac913\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a37fa55 elementor-widget elementor-widget-heading\" data-id=\"a37fa55\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Python Code (Free)<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8efd459 e-flex e-con-boxed e-con e-parent\" data-id=\"8efd459\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-55d1e6e e-con-full e-flex e-con e-child\" data-id=\"55d1e6e\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a43543b elementor-widget elementor-widget-text-editor\" data-id=\"a43543b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><span style=\"color: #ffcc00;\"><strong><span style=\"font-size: 14pt;\">Ki\u1ec3m tra Vertex th\u1eeba | kh\u00f4ng k\u1ebft n\u1ed1i :<\/span><\/strong><\/span><\/p><p><span style=\"color: #999999;\">Khi model b\u00e2t k\u1ef3 m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng n\u00e0o, m\u1ed9t khi b\u1ea1n \u0111\u00e3 s\u1eed d\u1ee5ng c\u00e1c l\u1ec7nh m\u1eb7c \u0111\u1ecbnh \u0111\u00e3 t\u00edch h\u1ee3p trong Maya nh\u01b0<\/span> : <span style=\"color: #ffcc00;\">Boolean , Multi-Cut<\/span><span style=\"color: #999999;\"> ho\u1eb7c b\u1ea1n ch\u1ecdn edge v\u00e0 delete .Th\u01b0\u1edbng g\u00e2y ra\u00a0 l\u1ed7i , Edge \u0111\u00e3 b\u1ecb delete nh\u01b0ng Vertex v\u1eabn c\u00f2n , m\u1ed9t s\u00f4 vertex t\u1ef1 ph\u00e1t sinh r\u00e3i r\u00e1c quanh vi\u1ec1n c\u00e3nh \u0111\u00e3 \u0111\u01b0\u1ee3c boolean , V\u00ec v\u1eady b\u1ea1n s\u1ebd g\u1eb7p r\u1eafc r\u1ed1i khi d\u00f9ng l\u1ec7nh kh\u00e1c nh\u01b0 Mesh smooth ho\u1eb7c ti\u1ebfn h\u00e0nh UVW.<\/span><\/p><p><span style=\"color: #999999;\">\u0110\u00e2y l\u00e0 code python (Script t\u00f4i t\u1ef1 so\u1ea1n \u0111\u1ec3 remoce t\u1ea5t c\u1ea3 c\u00e1c Vertex g\u00e2y phi\u1ec1n ph\u1ee9c \u0111\u00f3 . C\u00e1c b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o nh\u00e9<\/span>.<span style=\"color: #999999;\">B\u1ea1n c\u00f3 th\u1ec3\u00a0 xem h\u01b0\u01a1ng d\u1eabn c\u00e1ch \u0111\u1ec3 cho code n\u00e0y ch\u1ea1y theo link \u0111\u1ec3n k\u00eanh <a href=\"https:\/\/youtu.be\/mpHWJMPblV4\"><span style=\"color: #ff6600;\">Youtube<\/span><\/a> c\u1ee7a t\u00f4i.<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1433c78 elementor-widget elementor-widget-heading\" data-id=\"1433c78\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\"><a href=\"https:\/\/drive.google.com\/file\/d\/1VMcv3QOLSVgecxdftCT7qYmCHw7gUoCt\/view?usp=sharing\">Python code (download )<\/a><\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8986dc9 e-flex e-con-boxed e-con e-parent\" data-id=\"8986dc9\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba72406 elementor-widget elementor-widget-html\" data-id=\"ba72406\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n    \/* C\u00e1ch n\u00e0y an to\u00e0n v\u00ec ch\u1ec9 t\u00e1c \u0111\u1ed9ng \u0111\u1ebfn class c\u1ee5 th\u1ec3 n\u00e0y *\/\r\n    .maya-cleanup-box {\r\n        background-color: #282a36 !important; \/* M\u00e0u n\u1ec1n t\u1ed1i ch\u1ee7 \u0111\u1ed9ng *\/\r\n        border-radius: 8px;\r\n        padding: 15px;\r\n        border: 1px solid #44475a;\r\n        margin: 20px 0;\r\n    }\r\n    .maya-cleanup-box pre {\r\n        background-color: transparent !important;\r\n        color: #f8f8f2 !important;\r\n        font-family: 'Consolas', 'Monaco', monospace;\r\n        font-size: 14px;\r\n        line-height: 1.5;\r\n    }\r\n<\/style>\r\n\r\n<div class=\"maya-cleanup-box\">\r\n    <pre data-enlighter-language=\"python\" data-enlighter-title=\"Ti\u00eau \u0111\u1ec1 b\u00e0i code c\u1ee7a b\u1ea1n\">\r\n    [import maya.cmds as cmds\r\nimport maya.mel as mel\r\n\r\ndef remove_isolated_vertices(mesh):\r\n    count = 0\r\n    try:\r\n        total_verts = cmds.polyEvaluate(mesh, vertex=True)\r\n        verts_to_delete = []\r\n\r\n        for i in range(total_verts):\r\n            vert = \"{}.vtx[{}]\".format(mesh, i)\r\n            connected_edges = cmds.polyListComponentConversion(\r\n                vert,\r\n                fromVertex=True,\r\n                toEdge=True\r\n            )\r\n            if not connected_edges:\r\n                verts_to_delete.append(vert)\r\n                count += 1\r\n\r\n        if verts_to_delete:\r\n            cmds.delete(verts_to_delete)\r\n            print(\">>> DA XOA: {} isolated vertices\".format(count))\r\n\r\n    except Exception as e:\r\n        print(\"LOI:\", e)\r\n\r\n    return count\r\n\r\n\r\ndef remove_nonmanifold_vertices(mesh):\r\n    count = 0\r\n    try:\r\n        cmds.select(mesh, replace=True)\r\n        cmds.selectMode(component=True)\r\n        cmds.selectType(vertex=True)\r\n\r\n        mel.eval('polySelectConstraint -mode 3 -type 0x0001 -topology 2')\r\n        nonmanifold_verts = cmds.ls(selection=True, flatten=True)\r\n        mel.eval('polySelectConstraint -mode 0')\r\n\r\n        if nonmanifold_verts:\r\n            count = len(nonmanifold_verts)\r\n            cmds.delete(nonmanifold_verts)\r\n            print(\">>> DA XOA: {} non-manifold vertices\".format(count))\r\n\r\n        cmds.selectMode(object=True)\r\n\r\n    except Exception as e:\r\n        print(\"LOI:\", e)\r\n        cmds.selectMode(object=True)\r\n\r\n    return count\r\n\r\n\r\ndef remove_zero_length_edges_vertices(mesh):\r\n    count = 0\r\n    tolerance = 0.0001\r\n\r\n    try:\r\n        total_edges = cmds.polyEvaluate(mesh, edge=True)\r\n        edges_to_delete = []\r\n\r\n        for i in range(total_edges):\r\n            edge = \"{}.e[{}]\".format(mesh, i)\r\n            info = cmds.polyInfo(edge, edgeLength=True)\r\n\r\n            if info:\r\n                length = float(info[0].split(':')[-1].strip())\r\n                if length < tolerance:\r\n                    edges_to_delete.append(edge)\r\n\r\n        if edges_to_delete:\r\n            count = len(edges_to_delete)\r\n            cmds.delete(edges_to_delete)\r\n            print(\">>> DA XOA: {} zero-length edges\".format(count))\r\n\r\n    except Exception as e:\r\n        print(\"LOI:\", e)\r\n\r\n    return count\r\n\r\n\r\ndef merge_duplicate_vertices(mesh, distance=0.001):\r\n    count = 0\r\n    try:\r\n        initial_verts = cmds.polyEvaluate(mesh, vertex=True)\r\n        cmds.select(mesh, replace=True)\r\n\r\n        cmds.polyMergeVertex(\r\n            mesh,\r\n            distance=distance,\r\n            alwaysMergeTwoVertices=False,\r\n            constructionHistory=False\r\n        )\r\n\r\n        final_verts = cmds.polyEvaluate(mesh, vertex=True)\r\n        count = initial_verts - final_verts\r\n\r\n        if count > 0:\r\n            print(\">>> DA MERGE: {} vertices\".format(count))\r\n\r\n    except Exception as e:\r\n        print(\"LOI:\", e)\r\n\r\n    return count\r\n\r\n\r\ndef full_vertex_cleanup(mesh):\r\n    print(\"\\nCLEANUP:\", mesh)\r\n\r\n    results = {\r\n        'merged': 0,\r\n        'zero_edges': 0,\r\n        'isolated': 0,\r\n        'nonmanifold': 0\r\n    }\r\n\r\n    try:\r\n        results['merged'] = merge_duplicate_vertices(mesh, 0.001)\r\n        results['zero_edges'] = remove_zero_length_edges_vertices(mesh)\r\n        results['isolated'] = remove_isolated_vertices(mesh)\r\n        results['nonmanifold'] = remove_nonmanifold_vertices(mesh)\r\n\r\n    except Exception as e:\r\n        print(\"LOI:\", e)\r\n\r\n    return results\r\n\r\n\r\ndef main():\r\n    selected = cmds.ls(selection=True, transforms=True)\r\n\r\n    if not selected:\r\n        all_transforms = cmds.ls(type='transform')\r\n        selected = []\r\n        for obj in all_transforms:\r\n            shapes = cmds.listRelatives(obj, shapes=True, noIntermediate=True)\r\n            if shapes and cmds.nodeType(shapes[0]) == 'mesh':\r\n                selected.append(obj)\r\n\r\n    if not selected:\r\n        cmds.confirmDialog(\r\n            title='Loi',\r\n            message='Khong tim thay mesh',\r\n            button=['OK']\r\n        )\r\n        return\r\n\r\n    total_results = {\r\n        'merged': 0,\r\n        'zero_edges': 0,\r\n        'isolated': 0,\r\n        'nonmanifold': 0\r\n    }\r\n\r\n    for mesh in selected:\r\n        shapes = cmds.listRelatives(mesh, shapes=True, noIntermediate=True)\r\n        if not shapes or cmds.nodeType(shapes[0]) != 'mesh':\r\n            continue\r\n\r\n        results = full_vertex_cleanup(mesh)\r\n\r\n        for k in total_results:\r\n            total_results[k] += results[k]\r\n\r\n    total_fixed = sum(total_results.values())\r\n\r\n    if total_fixed > 0:\r\n        cmds.confirmDialog(\r\n            title='Hoan tat',\r\n            message='DA SUA {} vertices'.format(total_fixed),\r\n            button=['OK'],\r\n            icon='information'\r\n        )\r\n    else:\r\n        cmds.confirmDialog(\r\n            title='Ket qua',\r\n            message='Mesh sach se',\r\n            button=['OK'],\r\n            icon='information'\r\n        )\r\n\r\n\r\nmain()\r\n]\r\n    <\/pre>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Menu Art Desgn Maya | Learn PythonMaya 3dsmax | Learn PYTHON | MAYA Python trong Maya l\u00e0 g\u00ec? Python trong Maya kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh, m\u00e0 l\u00e0 &#8220;chi\u1ebfc ch\u00eca kh\u00f3a&#8221; gi\u00fap ng\u01b0\u1eddi ngh\u1ec7 s\u0129 3D v\u01b0\u1ee3t qua gi\u1edbi h\u1ea1n c\u1ee7a giao di\u1ec7n \u0111\u1ed3 h\u1ecda th\u00f4ng th\u01b0\u1eddng. Thay v\u00ec th\u1ef1c hi\u1ec7n h\u00e0ng [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1652","page","type-page","status-publish","hentry"],"blocksy_meta":{"disable_header":"yes","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6},"has_hero_section":"disabled"},"_links":{"self":[{"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=\/wp\/v2\/pages\/1652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1652"}],"version-history":[{"count":138,"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=\/wp\/v2\/pages\/1652\/revisions"}],"predecessor-version":[{"id":2648,"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=\/wp\/v2\/pages\/1652\/revisions\/2648"}],"wp:attachment":[{"href":"https:\/\/3dmodelbuy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}