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

 

posted on   风中狂笑  阅读(2425)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示