"3Done 入门课程:挂饰制作指南"

需积分: 9 4 下载量 41 浏览量 更新于2023-12-24 收藏 1.82MB PPTX 举报
3Done 入门课程《挂饰》制作是一门针对初学者的课程,通过该课程学习者可以了解到如何设计和制作挂饰。该课程分为两部分,第一部分是关于挂饰基本体的设计与制作,第二部分是关于挂饰挂环的设计与制作。 在第一部分中,学习者将学习如何使用3DOne程序进行挂饰基本体的设计与制作。程序启动后,选择“基本实体”中的“六面体”工具,选择网格面作为放置面,并设置六面体大小。然后选择“减运算”并点击确定,进入挂饰基本体的设计与制作。接下来,选择“草图绘制”中的“预制文字”工具,在草图平面上写入文字并旋转。最后,选择“特征造型”中的“拉伸”工具,对文字进行拉伸和旋转。 在第二部分中,学习者将学习如何进行挂饰挂环的设计与制作。选择“基本实体”中的“圆柱体”工具,在六面体上表面顶点进行修改并选择“加运算”。完成这些步骤后,学习者就可以完成挂饰挂环的设计与制作。 通过3Done 入门课程《挂饰》制作,学习者可以掌握基本的挂饰制作技能,为将来的进阶课程打下坚实的基础。501/5000 Overall, the course is an ideal toolkit for beginners who want to learn how to design and fabricate pendants. This course is divided into two parts: the first part deals with the design and fabrication of the basic body of the pendant, while the second part is about designing and fabricating the pendant's hanging ring. In the first part, learners will learn about the design and production of the basic body of the pendant using the 3DOne program. After starting the program, they will use the "hexahedron" tool in the "basic entity" to set the size of the hexahedron and then select the "subtract operation" to continue with the design and fabrication of the basic pendant body. Then, they will use the "sketch drawing" tool to design the text and the "feature modeling" tool to stretch and rotate the text. In the second part, learners will learn how to design and fabricate the hanging ring of the pendant. They will use the "cylinder" tool in the "basic entity" to modify the surface vertices of the hexahedron and select the "add operation" to continue with the design and fabrication of the hanging ring. By completing the 3Done introductory course on pendant making, learners will master the basic pendant-making skills, providing a strong foundation for future advanced courses. Overall, the course equips beginners with the knowledge and skills required to design and fabricate pendants. It serves as a valuable resource for those who are interested in learning about the intricate art of pendant making.

import csv import glob import os path = "D:\cclog\cclog" class StartUpTimeAnalysis: def init(self,fn): ext = os.path.splitext(fn)[-1].lower() if ext == '.xml': # self.root = etree.parse(fn) self.prepare_xml() else: with open(fn,'r') as fin: self.text = fin.read() # for line in fin: # if '[START UP TIMING]' in line: # # self.text += '\n%s' % line # self.text += line self.prepare_log() def prepare_xml(self): data = {} _app_init_done_delay = self.app_init_done_delay.split(" ")[-4] _graph_init_done_delay = self.graph_init_done_delay.split(" ")[-4] _render_frame_done_delay = self.render_frame_done_delay.split(" ")[-5] data["_app_init_done_delay"] = _app_init_done_delay data["_graph_init_done_delay"] = _graph_init_done_delay data["_render_frame_done_delay"] = _render_frame_done_delay return data def prepare_log(self): raw = self.text self.app_init_done_delay = '\n'.join( [el for el in raw.split('\n') if 'after appInit @' in el]) self.graph_init_done_delay = '\n'.join( [el for el in raw.split('\n') if 'avm graph init done' in el]) self.render_frame_done_delay = '\n'.join([el for el in raw.split('\n') if 'cc_render_renderFrame num:0' in el]) if name == 'main': line = ['index','LOG_FILE_NAME', 'APP_INIT_DONE_DELAY', 'GRAPH_INIT_DONE_DELAY', 'RENDER_FRAME_DONE_DELAY'] resultFilePath = os.path.join(path, "result_cold_start_time.csv") fout = open(resultFilePath, 'w', newline='') book = csv.writer(fout) book.writerow(line) print(os.path.join(path + '/**/VisualApp.localhost.root.log.ERROR*')) app_init_done_delay = [] graph_init_done_delay = [] render_frame_done_delay = [] for file_name in glob.glob(os.path.join(path + '/**/VisualApp.localhost.root.log.ERROR*')): res = {} index = os.path.dirname(file_name).split("\\")[-1] res['INDEX'] = index res['LOG_FILE_NAME'] = "VisualApp.localhost.root.log.ERROR_" + index st = StartUpTimeAnalysis(file_name) data = st.prepare_xml() res.update(data) app_init_done_delay.append(float(res["_app_init_done_delay"])) graph_init_done_delay.append(float(res["_graph_init_done_delay"])) render_frame_done_delay.append(float(res["_render_frame_done_delay"])) values = res.values() book.writerow(values) DA_MAX = ['', "MAX_VALUE", max(app_init_done_delay), max(graph_init_done_delay), max(render_frame_done_delay)] DA_MIN = ['', "MIN_VALUE", min(app_init_done_delay), min(graph_init_done_delay), min(render_frame_done_delay)] DA_AVG = ['', "AVG_VALUE", sum(app_init_done_delay)/len(app_init_done_delay), sum(graph_init_done_delay)/len(graph_init_done_delay), sum(render_frame_done_delay)/len(render_frame_done_delay)] book.writerow(DA_MAX) book.writerow(DA_MIN) book.writerow(DA_AVG) fout.close() 解释一下每行代码的意思

2023-07-15 上传