026集—CAD中多段线批量增加折点(相交点)——vba代码实现

news2024/11/16 3:21:45

当需要批量在多段线中加入顶点(与多段线相交的点)时,如下图所示:若干条线相交:

我们想在相交处增加折点,可通过vba插件一键完成。

(使用方法命令行输入:vbaman,加载插件,vbarun,运行插件即可。)

 

 同时,本插件支持闭合图形增加相交点为顶点:

当多次执行此程序,多段线不会增加大量重复相交点,避免产生大量距离过近的点、重复点。

另附部分源代码可供参考:

Sub AddIntersectionPointsToMultiplePolylines()
    ' yngqq443440204@2024年8月25日10:41:30
    On Error Resume Next
    Dim polyline1 As AcadLWPolyline ' 用于存储第一批中的单个多段线
    Dim polyline2 As AcadLWPolyline ' 用于存储第二批中的单个多段线
    Dim intersectPoints As Variant ' 用于存储交点
    Dim newVertices() As Double ' 用于存储新的顶点
    Dim oldVertices As Variant ' 用于存储原有的顶点
    Dim selSet1 As AcadSelectionSet ' 第一批多段线的选择集
    Dim selSet2 As AcadSelectionSet ' 第二批多段线的选择集
    Dim i As Integer, j As Integer, k As Integer
    Dim vertexCount As Integer
    Dim vertexinserted As Boolean
    ' 删除已有的选择集,避免冲突

    On Error Resume Next
    ThisDrawing.SelectionSets.Item("selSet1").Delete
    ThisDrawing.SelectionSets.Item("selSet2").Delete
    On Error GoTo 0
    Set selSet1 = ThisDrawing.SelectionSets.Add("selSet1")
    Set selSet2 = ThisDrawing.SelectionSets.Add("selSet2")
    ThisDrawing.Utility.Prompt "请选择第一批需要加点的线,并按空格键结束。"
    selSet1.SelectOnScreen
    If selSet1.Count = 0 Then GoTo erro
       If selSet1.Count = 0 Then GoTo erro
    ' 提示用户选择第二批多段线
    ThisDrawing.Utility.Prompt "请选择第二批线,并按空格键结束。"
    selSet2.SelectOnScreen
    ' 遍历第一批多段线
    For i = 0 To selSet1.Count - 1
        ' 获取当前第一批多段线
        Set polyline1 = selSet1.Item(i)
        'Call SimplifyPolyline(polyline1)

        ' 初始化一个新数组用于存储当前多段线的所有顶点
        oldVertices = polyline1.Coordinates
        vertexCount = UBound(oldVertices) + 1
        ' 遍历第二批多段线
        For j = 0 To selSet2.Count - 1
            ' 获取当前第二批多段线
            Set polyline2 = selSet2.Item(j)
            ' 查找交点
            intersectPoints = polyline1.IntersectWith(polyline2, acExtendNone)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''
''''省略部分源码,qq完整代码443440204

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Next j

    Next i

    ThisDrawing.Utility.Prompt "交点已加入到第一批多段线中。"
erro:
    MsgBox "OK,CAD二次开发", , "443440204"
End Sub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2073572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一本读懂数据库发展史的书

数据库及其存储技术,一直以来都是基础软件的主力。数据库系统的操作接口标准,也是应用型软件的重要接口,关系重大。 作为最“有感”的系统软件,数据库的历史悠久、品类繁多、创新活跃。 对数据库历史发展的介绍,有利…

JavaEE(1):web后端开发环境搭建和创建一个Servlet项目

web后端(javaEE)程序需要运行在服务器的,这样前端才可以访问得到 web后端开发: 服务器? 解释1:服务器就是一款软件,可以向其发送请求,服务器会作出一个响应。可以在服务器中部署文件,让他人访问…

MySQL必会知识精华2(了解基础篇)

我们的目标是:按照这一套资料学习下来,大家可以完成数据库增删改查的实际操作。轻松应对面试或者笔试题中MySQL相关题目 上篇文章我们先做一下MySQL学习的准备工作,如安装MySQL 服务,配置MySQL,连接MySQL。本篇文章注重…

大模型学习笔记 - LLM 之RAG

RAG RAG RAG SuveryRAG 简介RAG 范式的演变 1. 初级 RAG2. 高级 RAG3. 模块化的 RAG 介绍 RAG框架简述 检索技术文本生成增强技术简介 RAG 与 微调的区别RAG 模型评估解析RAG 研究的挑战与前景构建 RAG 系统的工具 在学习RAG中, 发现这个网站的内容特别好,也比较…

决策树算法:ID3与C4.5的对比分析

决策树是一种非常直观且易于理解的机器学习方法,被广泛应用于分类和回归任务中。在这篇文章中,我们将探讨两种经典的决策树算法:ID3与C4.5,并分析它们之间的区别。 一 算法概述 我们每天都做着各种形形色色的决策——周末怎么嗨…

普元EOS-微前端的base基座介绍

1 前言 微前端开发的时候要使用base基座。 这个base基座到底是什么&#xff1f; base基座能提供哪些功能&#xff1f; 本文将进行简单的介绍。 2 高开前端引用base基座 在高开页面引入base基座的语法如下&#xff1a; <script>import { BaseVue, AjaxUtil } from …

五、Centos7-安装Jenkins

目录 一、基础环境准备 1.安装JDK 2.安装Tomcat 二、安装Jenkins 1.配置Jenkins插件镜像源 2.问题&#xff1a;进入manager jenkins页面报错 3.配置Git 4.配置jdk 三、重新安装Jenkins 四、另一种Centos安装jenkins的方式--最终可用版 克隆了一个base的虚拟机&#x…

深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)

目录 &#x1f354; RNN 概述 1.1 循环神经网络 1.2 自然语言处理 &#x1f354; 词嵌入层 2.1 词嵌入层的使用 2.2 关于词嵌入层的思考 2.3 小节 &#x1f354; 循环网络层 3.1 RNN 网络原理 3.1.1 RNN计算过程 3.1.2 如何计算神经元内部 3.2 PyTorch RNN 层的使用…

机器学习(前六关大总结)生动讲解+代码实例

老粉都知道&#xff08;还不点关注&#xff09;我这机器学习已经有几天没更了&#xff0c;主要是最近忙碌比赛&#xff0c;所以时间紧张 那么我为大家总结一下&#xff0c;之前的机器学习知识点&#xff0c;让大家更好了解机器学习领域。 在此阅读前&#xff0c;感谢大家的关…

HTMl标签;知识回忆;笔记分享;

HTML标签是用于定义和组织网页内容的基础构建块。每个标签都有特定的作用。 一&#xff0c;标准结构标签&#xff1a; HTML文档标准结构&#xff1a; <html><head></head><body>this is my second html... </body> </html> 【1】htm…

代码随想录 | day 15 | 二叉树part03

完全二叉树的节点个数 方法一&#xff1a;可以用递归法遍历一遍左子树和右子树的个数之和再加1等于全部节点个数 class Solution { public:int getcount(TreeNode* cur){if(curNULL) return 0;int leftcount getcount(cur->left);int rightcount getcount(cur->right…

Python3.11二进制AI项目程序打包为苹果Mac App(DMG)-应用程序pyinstaller制作流程(AppleSilicon)

众所周知&#xff0c;苹果MacOs系统虽然贵为Unix内核系统&#xff0c;但由于系统不支持N卡&#xff0c;所以如果想在本地跑AI项目&#xff0c;还需要对相关的AI模块进行定制化操作&#xff0c;本次我们演示一下如何将基于Python3.11的AI项目程序打包为MacOS可以直接运行的DMG安…

90. UE5 RPG 实现技能的装配

在上一篇里&#xff0c;我们实现了在技能面板&#xff0c;点击技能能够显示出技能的相关描述以及下一级的技能的对应描述。 在这一篇里&#xff0c;我们实现一下技能的装配。 在之前&#xff0c;我们实现了点击按钮时&#xff0c;在技能面板控制器里存储了当前选中的技能的相关…

企业高性能web服务器(nginx)

目录 Web服务器基础介绍 正常情况下的单次web服务器访问流程 Apache 经典的 Web服务端 Apache prefork 模型 Apache work模型 Apache event模型 服务端的I/O流程 服务器的I/O 磁盘I/O 网络I/O 网络I/O处理过程 I/O模型 I/O模型相关概念 同步/异步 阻塞/非阻塞 网…

Ant-Design-Vue快速入门+排坑全攻略:打造炫酷Vue应用的s实用指南!

Ant-Design-Vue 是一个基于 Vue.js 的高质量 UI 组件库&#xff0c;适用于企业级后台产品的快速开发。下面将提供一份快速上手指南&#xff0c;并分享一些常见的“坑”和解决方案。 一、Ant-Design-Vue 快速上手指南 1. 安装与引入 确保安装了 Node.js&#xff08;推荐使用最新…

数据结构基础详解(C语言): 栈与队列的详解附完整代码

数据结构 栈 栈的核心重点&#xff1a; 栈是只能从表尾插入和删除的数据结构。 栈的顺序存储结构由两部分组成&#xff0c;top指针和数组。 链栈其实本质就是单链表头插法 文章目录 数据结构 栈1.栈的基本概念1.1 栈的常用操作 2.栈的存储结构2.1 栈的顺序存储结构2.1.1 栈的定…

环境配置1-MobaXterm服务器中Anaconda、Pytorch的安装

①登录 Login as 输入密码时密码不显示&#xff0c;正常输入即可 ②进入指定的下载目录 出现类似界面后&#xff0c;键盘操作Ctrlc即可进行输入 cd / …….(要下载到的目录名称)/ Anaconda的安装 ①输入wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux…

如何M3U8视频切片保存到本地,见过视频被别人拿走了吗?

一、数据来源分析 1.明确需求 网址:https://v.qq.com/x/cover/mzc002006n62s11/e0045s2g2eg.html 数据&#xff1a;视频 2.抓包分析 F12 刷新网站 搜索关键字找到对应的数据位置 M3U8 https://vd6.l.qq.com/proxyhttp 二、代码实现步骤 发送请求 …

Linux磁盘操作之df命令

Linux使用df命令&#xff0c;可以查看系统中每个文件系统的总容量、已使用空间、可用空间和使用率。这对于了解磁盘空间的使用情况以及判断是否需要清理或扩展磁盘空间非常有用。 参数说明 df是一个用于显示磁盘空间使用情况的命令&#xff0c;df是disk free的缩写&#xff0…

Kafka事件(消息、数据、日志)的存储

1、查看有关kafka日志配置文件的信息 2、查看kafka全部主题的日志文件 3、查看每个主题的日志文件 4、__consumer_offsets-xx文件夹的作用 package com.power;public class Test {public static void main(String[] args) {int partition Math.abs("myTopic".hashCo…