【python】CAD二次开发,图元对象的交点获取方法IntersectWith

2024-02-08 16:28

本文主要是介绍【python】CAD二次开发,图元对象的交点获取方法IntersectWith,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

连接CAD:
 

import pythoncom
import win32com.client
import math
#连接Python与CAD
cad=win32com.client.Dispatch("AutoCAD.Application")#"AutoCAD.Application.18",默认打开的CAD,也可在后指定版本18
doc=cad.ActiveDocument  #连接活动文档
doc.Utility.Prompt("HELLO,Autocad from pywin32.")#向CAD输入HELLO,CAD
print(doc.Name)#打印文档名称#转换数据类型函数
def vtpnt(x, y, z=0):"""坐标点转化为浮点数"""return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))
def vtobj(obj):"""转化为对象数组"""return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)
def vtfloat(lst):"""列表转化为浮点数"""return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, lst)
def vtint(lst):"""列表转化为整数"""return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, lst)
def vtvariant(lst):"""列表转化为变体"""return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, lst)#定义模型空间
msp=doc.ModelSpace

使用示例:

函数适用对象:All Drawing Objects (Except Pviewport and PolygonMesh)

#创建两直线
startPoint=vtpnt(0,0)
endPoint=vtpnt(49,50)
lineT=msp.AddLine(startPoint,endPoint)startPoint=vtpnt(50,0)
endPoint=vtpnt(50,30)
lineS=msp.AddLine(startPoint,endPoint)#获取交点
point=lineS.IntersectWith(lineT,3)#3表示两条直线都延伸的交点,详见下表
print(point)

 参数对照表

成员名

描述

参数

ExtendBoth

两个图元对象都延伸

3

ExtendArgument

只延伸作为参数的图元对象

2

ExtendThis

只延伸调用该方法的图元对象

1

OnBothOperands

都不延伸

0

这篇关于【python】CAD二次开发,图元对象的交点获取方法IntersectWith的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/691565

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.