【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

相关文章

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(

Go路由注册方法详解

《Go路由注册方法详解》Go语言中,http.NewServeMux()和http.HandleFunc()是两种不同的路由注册方式,前者创建独立的ServeMux实例,适合模块化和分层路由,灵活性高... 目录Go路由注册方法1. 路由注册的方式2. 路由器的独立性3. 灵活性4. 启动服务器的方式5.

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创