python cad 二次開發


from pyautocad import Autocad, APoint
import win32com.client
from win32com.client import VARIANT
from win32com.client import Dispatch
import pythoncom

要么用pyautocad這個,要么用win32com

cad不識別直接傳過去的坐標,需要轉換下,以下是關鍵代碼

def vtpnt(x, y, z=0):
    """坐標點轉化為浮點數"""
    return VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))


def vtobj(obj):
    """轉化為對象數組"""
    return VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)


def vtFloat(list):
    """列表轉化為浮點數"""
    return VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, list)


def vtInt(list):
    """列表轉化為整數"""
    return VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, list)


def vtVariant(list):
    """列表轉化為變體"""
    return VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, list)

 下面是如何啟動autocad2007,其他的自己試吧

if __name__ == '__main__':
    # AutoCAD2007 ProgId is "AutoCAD.Application.17"
    acad = Dispatch("AutoCAD.Application.17")
    doc = acad.ActiveDocument
    doc.Utility.Prompt("Hello AutoCAD\n")
    mp = doc.ModelSpace

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM