maya的重命名物体和材质工具(带ai过程)

对材质同样也有效

被AI干失业的卖衣服的小姐姐,开的士的小哥哥都可以再就业的易上手教程,

先看效果!

对物体命名也是,相当的美观

先提出需求我想在maya中批量重命名物体怎么办?AI给你弄个短代码 ,放进AI进化一下。。

import maya.cmds as cmds
allMat = cmds.ls(mat=True)
for mat in allMat:cmds.rename("Name")

长代码,再次进化。。

import maya.cmds as cmdsclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0def create_layout(self):self.window = cmds.window(title="Maya 重命名工具")layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input+str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)i = 1for mat in materials:new_name = self.char_input + str(i).zfill(self.num_input)cmds.rename(new_name)i += 1if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout()cmds.showWindow(dialog.window)

这代码不是太完美,继续问豆包AI。:

我发现它命名都是从3开始,而材质编辑器里有三个默认的材质球,这个我不想影响它们。

回答一

如果你不想影响 Maya 材质编辑器中的三个默认材质球,可以在重命名材质的代码中添加一个条件判断,排除这三个默认材质球。在这个版本中,定义了一个default_materials列表,列出了三个默认材质球的名称。在重命名循环中,检查当前材质球是否在这个列表中,如果不在才进行重命名操作。这样就可以避免影响默认材质球。

以下是修改后的代码:

import maya.cmds as cmds
import timeclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0def create_layout(self):self.window = cmds.window(title="Maya 重命名工具")layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input+str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)default_materials = ['lambert1', 'particleCloud1', 'shaderGlow1']  # 这里列出默认的三个材质球名称i = 1for mat in materials:if mat not in default_materials:print("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)  # 添加短暂的延迟except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout()cmds.showWindow(dialog.window)

回答二

以下是对这个问题的分析和解决方案:

分析

Maya 材质编辑器中默认有三个材质球(lambert1、particleCloud1、shaderGlow1),你代码中的循环从第一个材质开始处理,所以会对默认材质球进行操作。如果不想影响这三个默认材质球,可以在循环中跳过它们。

解决方案

rename_materials方法的循环中添加条件判断来跳过这三个默认材质球的处理,以下是修改后的代码:

代码中,在rename_materials方法中,当材质球是默认的三个材质球时,使用continue语句跳过当前循环,直接进入下一个材质球的处理,从而避免对默认材质球的重命名操作。

import maya.cmds as cmds
import timeclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0def create_layout(self):self.window = cmds.window(title="Maya 重命名工具")layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input + str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)i = 1for mat in materials:if mat in ["lambert1", "particleCloud1", "shaderGlow1"]:continueprint("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout()cmds.showWindow(dialog.window)

然而,还是不太完美!然后我想在代码中加入一个查找替换功能,并且在UI里面也对应有查找文本输入框替换文本输入框和一个按钮叫查找替换,继续叫AI给我进化。。。

这就更牛逼了!

import maya.cmds as cmds
import timeclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0self.find_text = ""self.replace_text = ""def create_layout(self):self.window = cmds.window(title="Maya 重命名工具")layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)cmds.text(label="查找文本")self.find_field = cmds.textField()cmds.text(label="替换文本")self.replace_field = cmds.textField()cmds.button(label="查找替换", command=self.find_replace)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input + str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)default_materials = ['lambert1', 'particleCloud1', 'shaderGlow1']i = 1for mat in materials:if mat not in default_materials:print("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1def find_replace(self, *args):self.find_text = cmds.textField(self.find_field, query=True, text=True)self.replace_text = cmds.textField(self.replace_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objnew_name = current_name.replace(self.find_text, self.replace_text)cmds.rename(obj, new_name)if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout()cmds.showWindow(dialog.window)

剩下的就只排版一下界面美观一下即可了。哦哈哈!

我如何把窗口的尺寸和位置做个定义?xpos=100, ypos=100, defaultw=200, defaulth=200类似这样的

import maya.cmds as cmds
import timeclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0self.find_text = ""self.replace_text = ""def create_layout(self):# 指定窗口位置和尺寸self.window = cmds.window(title="Maya 重命名工具", widthHeight=(400, 200), topLeftCorner=(100, 100))layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)cmds.text(label="查找文本")self.find_field = cmds.textField()cmds.text(label="替换文本")self.replace_field = cmds.textField()cmds.button(label="查找替换", command=self.find_replace)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input + str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)default_materials = ['lambert1', 'particleCloud1', 'shaderGlow1']i = 1for mat in materials:if mat not in default_materials:print("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1def find_replace(self, *args):self.find_text = cmds.textField(self.find_field, query=True, text=True)self.replace_text = cmds.textField(self.replace_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objnew_name = current_name.replace(self.find_text, self.replace_text)cmds.rename(obj, new_name)if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout()cmds.showWindow(dialog.window)

或者跟c4d里的python一样看齐,

import maya.cmds as cmds
import timeclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0self.find_text = ""self.replace_text = ""def create_layout(self, xpos, ypos, defaultw, defaulth):self.window = cmds.window(title="Maya 重命名工具", widthHeight=(defaultw, defaulth), topLeftCorner=(xpos, ypos))layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)cmds.text(label="查找文本")self.find_field = cmds.textField()cmds.text(label="替换文本")self.replace_field = cmds.textField()cmds.button(label="查找替换", command=self.find_replace)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input + str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)default_materials = ['lambert1', 'particleCloud1', 'shaderGlow1']i = 1for mat in materials:if mat not in default_materials:print("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1def find_replace(self, *args):self.find_text = cmds.textField(self.find_field, query=True, text=True)self.replace_text = cmds.textField(self.replace_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objnew_name = current_name.replace(self.find_text, self.replace_text)cmds.rename(obj, new_name)if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout(xpos=100, ypos=100, defaultw=300, defaulth=200)cmds.showWindow(dialog.window)

越来越喜欢编代码了!来来来!继续问AI!现在在ui排布的界面里,查找文本和替换文本以及他们的输入框都是另起一行排布的我想让它们保持在同一行怎么做到? cmds.text(label="查找文本") self.find_field = cmds.textField() cmds.text(label="替换文本") self.replace_field = cmds.textField()

豆包AI:  在 Maya 的 cmds 中可以使用 rowLayout(行布局)来将多个 UI 元素放在同一行。以下是修改后的代码:

import maya.cmds as cmds
import timeclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0self.find_text = ""self.replace_text = ""def create_layout(self, xpos=100, ypos=100, defaultw=200, defaulth=200):self.window = cmds.window(title="Maya 重命名工具", widthHeight=(defaultw, defaulth), topLeftCorner=(xpos, ypos))layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')cmds.text(label="前缀")self.prefix_field = cmds.textField()cmds.text(label="位数")self.digit_field = cmds.intField(value=4)# 创建行布局用于放置查找和替换相关的元素find_replace_row = cmds.rowLayout(numberOfColumns=3)cmds.text(label="查找文本")self.find_field = cmds.textField()cmds.text(label="替换文本")self.replace_field = cmds.textField()cmds.setParent('..')  # 返回上一级布局cmds.button(label="查找替换", command=self.find_replace)cmds.button(label="重命名物体", command=self.rename_objects)cmds.button(label="重命名材质", command=self.rename_materials)return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input + str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)default_materials = ['lambert1', 'particleCloud1', 'shaderGlow1']i = 1for mat in materials:if mat not in default_materials:print("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1def find_replace(self, *args):self.find_text = cmds.textField(self.find_field, query=True, text=True)self.replace_text = cmds.textField(self.replace_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objnew_name = current_name.replace(self.find_text, self.replace_text)cmds.rename(obj, new_name)if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout(xpos=100, ypos=100, defaultw=200, defaulth=200)cmds.showWindow(dialog.window)

运行一下,额。。错误 # Error: RuntimeError: file <maya console> line 26: Too many children in layout: rowLayout5 #

直接复制,再提问 豆包AI 。

你可以尝试以下方法来解决这个问题:

  1. 检查rowLayout中的子元素数量,确保没有添加过多的元素。如果可能的话,减少子元素的数量或者使用其他布局方式来组织这些元素。
  2. 确认每个子元素都被正确地添加到布局中,并且没有重复添加。
  3. 检查是否有其他布局嵌套在这个rowLayout中,可能导致子元素数量的混乱。

以下是修改后的代码,确保只在rowLayout中添加必要的元素:额,这里它傻逼了,陷入了死循环的修改状态,手动👀看一下。

最后整理完ui的代码如下:

import maya.cmds as cmds
import time
import reclass MayaRenameDialog:def __init__(self):self.char_input = ""self.num_input = 0self.find_text = ""self.replace_text = ""self.prefix_to_add = ""self.suffix_to_add = ""self.index_to_add = 0self.orderNUM = Noneself.num_input = Nonedef create_layout(self, xpos=100, ypos=100, defaultw=350, defaulth=100):self.window = cmds.window(title="Maya 重命名工具", widthHeight=(defaultw, defaulth), topLeftCorner=(xpos, ypos))layout = cmds.columnLayout()cmds.text(label="阿拉丁的重命名工具", align='center')# 创建行布局用于放置“重命名按钮”相关的元素rename_row = cmds.rowLayout(numberOfColumns=4)cmds.text(label="重命名", parent=rename_row)self.prefix_field = cmds.textField(parent=rename_row)cmds.text(label="位数", parent=rename_row)self.digit_field = cmds.intField(value=4, parent=rename_row)cmds.setParent('..')  # 返回上一级布局# 创建行布局用于放置“重命名物体和材质按钮”相关的元素renameObjMatBT_row = cmds.rowLayout(numberOfColumns=2)cmds.button(label="重命名物体", command=self.rename_objects, parent=renameObjMatBT_row)cmds.button(label="重命名材质", command=self.rename_materials, parent=renameObjMatBT_row)cmds.setParent('..')  # 返回上一级布局# 创建行布局用于放置“查找和替换”相关的元素find_replace_row = cmds.rowLayout(numberOfColumns=5)cmds.text(label="查找文本", parent=find_replace_row)self.find_field = cmds.textField(parent=find_replace_row)cmds.text(label="替换文本", parent=find_replace_row)self.replace_field = cmds.textField(parent=find_replace_row)cmds.button(label="查找替换", command=self.find_replace, parent=find_replace_row)cmds.setParent('..')  # 返回上一级布局# 创建行布局用于增加前缀的元素add_prefix_row = cmds.rowLayout(numberOfColumns=3)cmds.text(label="增加前缀", parent=add_prefix_row)self.prefix_to_add_field = cmds.textField(parent=add_prefix_row)cmds.button(label="应用前缀", command=self.add_prefix, parent=add_prefix_row)cmds.setParent('..')  # 返回上一级布局# 创建行布局用于增加后缀的元素add_suffix_row = cmds.rowLayout(numberOfColumns=3)cmds.text(label="增加后缀", parent=add_suffix_row)self.suffix_to_add_field = cmds.textField(parent=add_suffix_row)cmds.button(label="应用后缀", command=self.add_suffix, parent=add_suffix_row)cmds.setParent('..')  # 返回上一级布局# 创建行布局用于增加序号的元素add_index_row = cmds.rowLayout(numberOfColumns=4)cmds.text(label="增加序号", parent=add_index_row)self.orderNUM = cmds.intField(parent=add_index_row)cmds.button(label="应用序号", command=self.add_index, parent=add_index_row)cmds.button(label="删除序号", command=self.delete_index, parent=add_index_row)cmds.setParent('..')  # 返回上一级布局return Truedef rename_objects(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:new_name = self.char_input +'_'+ str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def rename_materials(self, *args):self.char_input = cmds.textField(self.prefix_field, query=True, text=True)self.num_input = cmds.intField(self.digit_field, query=True, value=True)materials = cmds.ls(mat=True)default_materials = ['lambert1', 'particleCloud1', 'shaderGlow1']i = 1for mat in materials:if mat not in default_materials:print("Before rename: {mat}")if cmds.lockNode(mat, query=True, lock=True):cmds.lockNode(mat, lock=False)print("解锁材质{mat}.")new_name = self.char_input + str(i).zfill(self.num_input)try:cmds.rename(mat, new_name)time.sleep(0.1)except RuntimeError as e:if "Cannot rename a read only node." in str(e):print("错误重命名{mat}. 它可能被锁定或者是只读状态.")i += 1def find_replace(self, *args):self.find_text = cmds.textField(self.find_field, query=True, text=True)self.replace_text = cmds.textField(self.replace_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objnew_name = current_name.replace(self.find_text, self.replace_text)cmds.rename(obj, new_name)def add_prefix(self, *args):self.prefix_to_add = cmds.textField(self.prefix_to_add_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objnew_name = self.prefix_to_add + '_'+ current_namecmds.rename(obj, new_name)def add_suffix(self, *args):self.suffix_to_add = cmds.textField(self.suffix_to_add_field, query=True, text=True)selection = cmds.ls(selection=True)for obj in selection:current_name = objlast_underscore_index = current_name.rfind('_')if last_underscore_index!= -1:new_name = current_name[:last_underscore_index] + '_' + self.suffix_to_add + current_name[last_underscore_index:]else:new_name = current_name + '_' + self.suffix_to_addcmds.rename(obj, new_name)def add_index(self, *args):self.num_input = cmds.intField(self.orderNUM, query=True, value=True)selection = cmds.ls(selection=True)i = 1for obj in selection:current_name = objnew_name = current_name + '_' + str(i).zfill(self.num_input)cmds.rename(obj, new_name)i += 1def delete_index(self, *args):selection = cmds.ls(selection=True)for obj in selection:current_name = objlast_underscore_index = current_name.rfind('_')if last_underscore_index!= -1:new_name = current_name[:last_underscore_index]else:new_name = current_namecmds.rename(obj, new_name)if __name__ == '__main__':dialog = MayaRenameDialog()dialog.create_layout(xpos=100, ypos=100, defaultw=350, defaulth=160)cmds.showWindow(dialog.window)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424928.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频入门基础:AAC专题(5)——FFmpeg源码中,判断某文件是否为AAC裸流文件的实现

一、引言 通过FFmpeg命令&#xff1a; ./ffmpeg -i XXX.aac 可以判断出某个文件是否为AAC裸流文件&#xff1a; 所以FFmpeg是怎样判断出某个文件是否为AAC裸流文件呢&#xff1f;它内部其实是通过adts_aac_probe函数来判断的。从《FFmpeg源码&#xff1a;av_probe_input_for…

3. 进阶指南:自定义 Prompt 提升大模型解题能力

怎么判断 Prompt 的好坏&#xff0c;有什么问题有着标准答案么&#xff1f; 答&#xff1a;让大模型求解数学问题。 李宏毅老师的 HW4 正好提到了有关数学问题的 Prompt&#xff0c;所以我决定中间插一篇这样的文章。通过本文你将&#xff1a; 了解各种 Prompt 如何影响大型语言…

无人机飞手培训机构组建及市场分析

飞手培训机构是专门为培养无人机飞行员&#xff08;飞手&#xff09;而设立的教育机构。这些机构通过提供专业的培训课程&#xff0c;帮助学员掌握无人机飞行技术、了解相关法规、提升实战能力&#xff0c;并最终获得相关证书&#xff0c;以便在航拍摄影、农业植保、物流配送、…

图新地球-将地图上大量的地标点批量输出坐标到csv文件【kml转excel】

0.序 有很多用户需要在卫星影像、或者无人机航测影像、倾斜模型上去标记一些地物的位置&#xff08;如电线杆塔、重点单位、下水盖等&#xff09; 标记的位置最终又需要提交坐标文本文件给上级单位或者其他部门使用&#xff0c;甚至需要转为平面直角坐标。 本文的重点是通过of…

【Go开发】Go语言基本语法入门:数据类型与方法定义

文章目录 环境准备一、引言二、Var关键字三、数据类型1. 整型符号表示值的范围 2. 浮点型精度范围性能 3. 布尔型4. 字符串 三、变量声明1. 指定变量类型2. 自动推导类型3. 批量声明 四、方法定义五、总结 环境准备 开发环境&#xff1a;MacOS Go版本&#xff1a;go version g…

单线程与2个线程的简易理解

前言 有个需要10个步骤完成的任务&#xff0c;假设每个步骤需要1秒 单线程耗费10秒完成任务 2根线程可能耗费6秒&#xff0c;也可能更少 单线程程序 单线程下&#xff0c;步骤按照次序顺序执行&#xff0c;共计耗费10秒 2个线程的程序 有步骤可以在同一时刻同时运行&…

python-素数中的等差数列

题目描述 质数是在数论中很有意思的数&#xff0c;有很多题都可以围绕它来出&#xff0c;就如你眼前所见的这道题。 给定一个闭区间 [a,b] ,将此范围内的所有素数进行从小到大排序&#xff0c;对于连续的素数&#xff0c;我们可以发现很多等差数列(元素个数大于等于 3 )&#x…

【Leetcode:1184. 公交站间的距离 + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

第十一章 【后端】商品分类管理微服务(11.1)——创建父工程

第十一章 【后端】商品分类管理微服务 11.1 创建父工程 项目名称:EasyTradeManagerSystem:Easy 表示简单易用,Trade 表示交易,Manager 表示管理,System 表示系统,强调系统在商品交易管理方面的便捷性,简称 etms。 新建工程 yumi-etms yumi-etms 作为所有模块的父工程,…

汽车免拆诊断案例 | 沃尔沃V40 1.9TD断续工作

故障现象 一辆04款的沃尔沃V40 1.9 TD&#xff0c;发动机代码D4192T3&#xff0c;使用博世EDC15C发动机管理。客户说车子断续工作&#xff0c;怀疑是正时皮带出现问题。卸下上皮带盖&#xff0c;检查发现皮带仍然在原来的位置上并且没有出现松动。起动发动机&#xff0c;车辆能…

整数在内存中的存储原码反码补码

目录 1.整数在内存中以二进制的形式存在 1.1&#xff08;正数存储情况&#xff09; 1.2 负数存储情况 1.3整数的补码如何得到原码 2.无符号整数的原反补码 小心&#xff01;VS2022不可直接接触&#xff0c;否则&#xff01;没这个必要&#xff0c;方源面色淡然一把抓住&am…

使用原生HTML的drag实现元素的拖拽

HTML 拖放&#xff08;Drag and Drop&#xff09;接口使应用程序能够在浏览器中使用拖放功能。例如&#xff0c;用户可使用鼠标选择可拖拽&#xff08;draggable&#xff09;元素&#xff0c;将元素拖拽到可放置&#xff08;droppable&#xff09;元素&#xff0c;并释放鼠标按…

vue3使用provide和inject传递异步请求数据子组件接收不到

前言 一般接口返回的格式是数组或对象&#xff0c;使用reactive定义共享变量 父组件传递 const data reactive([])// 使用settimout模拟接口返回 setTimeout(() > {// 将接口返回的数据赋值给变量Object.assign(data, [{ id: 10000 }]) }, 3000);provide(shareData, dat…

C++第五十一弹---IO流实战:高效文件读写与格式化输出

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1. C语言的输入与输出 2. 流是什么 3. CIO流 3.1 C标准IO流 3.2 C文件IO流 3.2.1 以写方式打开文件 3.2.1 以读方式打开文件 4 stringstre…

「数组」十大排序:精讲与分析(C++)

概述 截止目前&#xff0c;我们已经讲解并分析了十种最常见的排序算法&#xff0c;下附对应文章链接和全体Code。 链接 「数组」冒泡排序|选择排序|插入排序 / 及优化方案&#xff08;C&#xff09; 「数组」归并排序 / if语句优化|小区间插入优化&#xff08;C&#xff09…

在k8s中,客户端访问服务的链路流程,ingress--->service--->deployment--->pod--->container

ingress是一个API资源。 其核心作用是nginx网页服务器。 当客户端访问服务器不同的url时, 用不同的location提供服务。 在k8s之外&#xff0c;nginx的配置一般如下&#xff1a; http {server {listen 80;server_name localhost;location / {root html; …

HarmonyOS开发之(下拉刷新,上拉加载)控件pulltorefresh组件的使用

效果图&#xff1a; 一&#xff1a;下载安装&#xff08;地址&#xff1a;OpenHarmony-SIG/PullToRefresh&#xff09; ohpm install ohos/pulltorefresh 二&#xff1a;使用lazyForEarch的数据作为数据源 export class BasicDataSource implements IDataSource{private l…

外卖会员卡是不是一个骗局?

大家好&#xff0c;我是鲸天科技千千&#xff0c;大家都知道我是做小程序开发的&#xff0c;平时会给大家分享一些互联网相关的创业项目&#xff0c;感兴趣的可以跟我关注一下。 首先就是要搭建一个自己的外卖会员卡系统小程序&#xff0c;我们自己的工作就是把这个小程序推广…

海外云手机——跨国业务的高效工具

海外云手机是一种基于云计算的虚拟手机服务&#xff0c;依托海外服务器实现跨国网络访问。这项服务不仅具备传统智能手机的所有功能&#xff0c;还突破了地域限制&#xff0c;为跨国业务提供更加便捷、高效、安全的解决方案。 随着全球化的加速和互联网的快速普及&#xff0c;跨…

LabVIEW减速机加载控制系统

为了保障减速机的产品质量&#xff0c;开发了一套基于LabVIEW的减速机加载控制系统。该系统利用先进的传感技术与自动化控制理念&#xff0c;实现了减速机性能的全面测试与分析&#xff0c;有效提升了生产线的自动化水平与检测效率。 项目背景 随着工业自动化水平的不断提高&a…