สลับโหมด X-Ray ใน Maya โดยใช้ Python
ฉันพยายามผูกรหัส Python กับคีย์เพื่อให้สามารถสลับโหมด X-Ray ใน Maya ได้
สิ่งหนึ่งที่ทำให้ฉันสับสนคือเมื่อฉันเรียกใช้โค้ดบรรทัดนี้ ...
def xrayQuery():
cmds.modelEditor('modelPanel4', q=True, xr=True)
xrayQuery()
ไม่มีการส่งคืนผลลัพธ์แม้ว่าฉันจะสอบถามโหมด xray แต่เมื่อฉันเรียกใช้คำสั่งโดยไม่มีฟังก์ชั่น ...
cmds.modelEditor('modelPanel4', q=True, xr=True)
ฉันได้รับสิ่งที่ฉันคาดหวังในครั้งแรกซึ่งเป็นผลลัพธ์แบบบูลีนขึ้นอยู่กับว่าเปิดใช้งานโหมด xray หรือไม่ ใครช่วยบอกทีว่าทำไมถึงเป็นแบบนี้?
ฉันใหม่มากสำหรับ python ใน Maya ดังนั้นความช่วยเหลือใด ๆ จะได้รับการชื่นชมมาก! ขอบคุณ!
คำตอบ
คุณต้องเรียกกลับหากคุณต้องการให้ฟังก์ชันที่ผู้ใช้กำหนดเองส่งคืนผลลัพธ์เดียวกันกับที่เรียกว่าภายใน ชอบด้านล่าง:
def xrayQuery():
return cmds.modelEditor('modelPanel4', q=True, xr=True)
หมายเหตุด้านข้างหากคุณสามารถอธิบายวัตถุประสงค์ในการเขียนฟังก์ชันแทนการเรียกฟังก์ชันเดิมได้การทำความเข้าใจกรณีการใช้งานจะเป็นประโยชน์
ดังนั้นฉันจึงคิดหาวิธีที่จะทำให้สิ่งที่ฉันพยายามบรรลุเป็นเรื่องง่ายขึ้นซึ่งก็คือโค้ดสองสามบรรทัดเพื่อเปิดและปิดโหมดมุมมองเอ็กซ์เรย์สำหรับวิวพอร์ตเฉพาะ ฉันสามารถขจัดความจำเป็นในการใช้คำสั่ง if else โดยใช้ตัวดำเนินการ 'not' ในโค้ดบล็อกนี้:
import maya.cmds as cmds
def xray_toggle():
result = cmds.modelEditor('modelPanel4', q=True, xr=True)
cmds.modelEditor('modelPanel4', e=True, xr=not result)
xray_toggle()