012集—二维轻量多线段LWpolyline设置凸度bulge——vba实现

  本文主要讲LightweightPolyline  ,即轻量多段线。

 ObjectARX 中提供了三种多段线的相关类:AcDbPolyline(对应vba中lightweightpolyline) 、AcDb2dPolyline (对应vba中polyline)和

AcDb3dPolyline

Polyline就是(轻量)多段线,用PEDIT命令的“拟合”选项或“样条曲线”选项拟合成曲线后就变成Polyline2d,即二维多段线。

vba中 ,  LightweightPolyline (每一顶点用2个元素表示,数组大小必须为2的倍数)对象, 而对比polyline(每一顶点用三个元素表示,数组大小必须为3的倍数)

优化多段线(轻量多段线),由线和弧段组成的可调节宽度的二维线。

VBA 类名:

AcadLWPolyline 

创建方法:

ModelSpace.AddLightweightPolyline
PaperSpace.AddLightweightPolyline
Block.AddLightweightPolyline 

访问途径:

ModelSpace.Item
PaperSpace.Item
Block.Item
SelectionSet.Item
Group.Item 

要创建优化多段线,可使用 AddLightweightPolyline 方法。要编辑或查询优化多段线,可使用以下方法和属性:

方法

AddVertex

ArrayPolar

ArrayRectangular

Copy

Delete

Explode

GetBoundingBox

GetBulge

GetExtensionDictionary

GetWidth

GetXData

Highlight

IntersectWith

Mirror

Mirror3D

Move

Offset

Rotate

Rotate3D

ScaleEntity

SetBulge

SetWidth

SetXData

TransformBy

Update

属性

Application

Area

Closed

ConstantWidth

Coordinate

Coordinates

Document

Elevation

Handle

HasExtensionDictionary

Hyperlinks

Layer

Length

Linetype

LinetypeGeneration

LinetypeScale

Lineweight

Normal

ObjectID

OwnerID

PlotStyleName

Thickness

TrueColor

Visible

AddLightweightPolyline 方法

由顶点列表创建优化多段线。

参阅 | 示例

语法

RetVal = object.AddLightweightPolyline(VerticesList)

Object

ModelSpace 集合, PaperSpace 集合, Block
使用该方法的对象。

VerticesList

Variant[变体] (双精度数组)
指定多段线顶点的二维 OCS 坐标数组。至少需要两点(四个元素)以构成优化多段线。数组大小必须为2的倍数。

RetVal

LightweightPolyline 对象
新创建的 LightweightPolyline 对象。

说明

顶点是生成多段线的线段端点。要添加弧段,首先创建全部为直线段的多段线,然后为个别需要变为弧段的线段添加凸度。要为线段添加凸度值,可使用 SetBulge 方法。

多段线的标高将被设置为布局的当前标高。使用 ElevationModelspace 或 ElevationPaperspace 属性可确定多段线的标高。

坐标可使用 TranslateCoordinates 方法在OCS坐标与其它坐标系统相互转换。

代码如下:

Sub 二维轻量多段线LWpolyline设置凸度bulge()
Dim ent As AcadEntity
Dim ent1 As AcadObject
Dim pt As VariantDim points(0 To 9) As Double' 定义二维多段线顶点points(0) = 1: points(1) = 1points(2) = 1: points(3) = 2points(4) = 2: points(5) = 2points(6) = 3: points(7) = 2points(8) = 4points(9) = 4
Dim a As AcadPoint
Dim VerticesList As Variant
'VerticesList = ThisDrawing.Utility.GetPoint(, "dian")
'VerticesList1 = ThisDrawing.Utility.GetPoint(, "dian")
Set plobj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
'Set plobj = ThisDrawing.ModelSpace.AddPolyline(points)For Each ent In ThisDrawing.ModelSpaceent.SetBulge 0, 0.5NextThisDrawing.Regen acActiveViewport
Stop
End Sub

如图,已设置好弧度 

 由下图可知,该该线类型为多段线

为了对比,另附polyline(每一顶点用三个元素表示,数组大小必须为3的倍数)

  Polyline 对象

多段线,可调整宽度的二维线,或不可调整宽度的由线和弧段组成的三维线或网络。

VBA 类名

AcadPolyline 

创建方法

ModelSpace.AddPolyline
PaperSpace.AddPolyline
Block.AddPolyline 

访问途径

ModelSpace.Item
PaperSpace.Item
Block.Item
SelectionSet.Item
Group.Item 

语法

RetVal = object.AddPolyline(VerticesList)

Object

ModelSpace 集合, PaperSpace 集合, Block
使用该方法的对象。

VerticesList

Variant[变体] (双精度数组); 仅用于输入
用于创建多段线顶点的OCS坐标数组。每一顶点用三个元素表示,前两个元素为OCS的X和Y坐标;而第三个元素为忽略。至少需要两点(六个元素)来构成一个多段线对象。该数组的大小必须为3的倍数。

RetVal

Polyline 对象
新创建的 Polyline 对象。

Sub LightWeightpolyline()
Dim ent As AcadEntity
Dim ent1 As AcadObject
Dim pt As VariantDim points(9) As Double' 定义二维多段线顶点points(0) = 100: points(1) = 1points(2) = 1: points(3) = 2points(4) = 2550: points(5) = 222points(6) = 3: points(7) = 2points(8) = 4points(9) = 400
'Dim j As Integer
'j = -1
'Dim a(0 To 2) As Variant
'Dim VerticesList As Variant
'VerticesList = ThisDrawing.Utility.GetPoint(, "dian")
'VerticesList1 = ThisDrawing.Utility.GetPoint(, "dian")
'For i = LBound(VerticesList) To UBound(VerticesList)
'j = j + 1
'ReDim Preserve points(j)
' points(j) = VerticesList(j)
'Next
'
'For i = LBound(VerticesList1) To UBound(VerticesList1)
'j = j + 1
'ReDim Preserve points(j)
' points(j) = VerticesList1(j - 3)
'NextSet plobj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)' For Each ent In ThisDrawing.ModelSpace
' ent.SetBulge 0, 0.5  lightweightpolyling不支持setbulge凸度
' NextThisDrawing.Regen acActiveViewportDim coor As Variant
coor = plobj.Coordinates
StopEnd Sub

 结论:vba中, 通过addpolyline方法创建的线的vba类名是acdb2dpolyline,cad类名是acadpolyline,cad中右键特性显示为二维多线段,

而addlightweightpolyline方法创建的线的vba类名是acdbpolyline,cad类名不属于acadpolyline,cad中右键特性显示为多线段。

        ObjectARX 中提供了三种多段线的相关类:AcDbPolyline 、AcDb2dPolyline 和

AcDb3dPolyline 。其中,利用AutoCAD 的内部命令可以创建AcDbPolyline 和AcDb3dPolyline

类的对象,用PLINE 命令创建的对象是轻量多段线(AcDbPolyline ),用3DPOLY 命令创建

的对象是三维多段线(AcDb3dPolyline )。

 

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

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

相关文章

蓝牙BLE 5.0、5.1、5.2和5.3区别

随着科技的不断发展,蓝牙技术也在不断进步,其中蓝牙BLE(Bluetooth Low Energy)是目前应用广泛的一种蓝牙技术,而BLE 5.0、5.1、5.2和5.3则是其不断升级的版本。本文将对这四个版本的区别进行详细的比较。 一、BLE 5.0…

【mysql技巧】如何在这个mysql语句执行前加个前提,也就是只有表里没有相同数据才进行添加插入操作

文章目录 我们正常的mysql插入数据语句加个前提完结 我们正常的mysql插入数据语句 INSERT INTO guild_nakadai.admin_role_permission (role_id, permission_id, type) VALUES ((SELECT id FROM guild_nakadai.admin_roles WHERE name"员工"),(SELECT id FROM guil…

Unity UGUI之Slider基本了解

在Unity中,Slider(滑动条)是一种常用的用户界面控件之一,允许用户通过拖动滑块来选择一个数值。常常应用于调节数值(如调节音量、亮度、游戏难度等)、设置选项等。 以下是Slider的基本信息和用法: 1、创建…

快速幂(求解原理+例题)

目录 反复平方法(快速幂): 代码: 例题:快速幂求逆元 作用: 快速求出 的结果。 时间复杂度: O(logk) 如果使用一般做法,从1循环到k,时间复杂度是O(k) 反复平方法&am…

低代码流程引擎实战:让表单字段成为流程节点审批人的得力助手!

在现代企业的日常运营中,流程审批是保障工作高效、规范进行的关键环节。随着企业对于灵活性和高效性的需求不断增长,传统的固定审批人设置已无法满足多变的业务场景。在JVS低代码中“设置流程节点审批人为表单字段”这一功能,旨在通过动态配置…

C#入门:简单数据类型和强制类型转换

本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com 本期来讲讲 unity 的脚本语言 —C#,C# 的简单数据类型及范围和强制类型转化的方法。这可是 unity 游戏开发必备技能。 1. 简单数据类型 各个类型的范围: byte -> System.Byte (字节…

黑马点评-短信登录业务

原理 模型如下 nginx nginx基于七层模型走的事HTTP协议,可以实现基于Lua直接绕开tomcat访问redis,也可以作为静态资源服务器,轻松扛下上万并发, 负载均衡到下游tomcat服务器,打散流量。 我们都知道一台4核8G的tomca…

网络问题排查必备利器:Pingmesh

背景 当今的数字化世界离不开无处不在的网络连接。无论是日常生活中的社交媒体、电子商务,还是企业级应用程序和云服务,我们对网络的依赖程度越来越高。然而,网络的可靠性和性能往往是一个复杂的问题,尤其是在具有大规模分布式架…

lanqiao:42点

题解: 1.首先,把字符转成数字。 2.创建二维数组存放枚举的结果,第一行一个数字13;第二行4个数字,分别是13和1的加减乘除;第三行16个数字,分别是第二行的每个数和12加减乘除的结果;…

基于SpringBoot的在线拍卖系统

目录 1、 前言介绍 2、主要技术 3、系统流程和逻辑 4、系统结构设计 5、数据库设计表 6、运行截图(部分) 6.1管理员功能模块 6.2用户功能模块 6.3前台首页功能模块 7、源码获取 基于SpringBoot的在线拍卖系统录像 1、 前言介绍 随着社会的发展,社会的各行…

安卓玩机工具推荐----ADB状态读写分区 备份分区 恢复分区 查看分区号 工具操作解析

在以往玩机过程中。很多机型备份分区 备份固件需要借助adb手动指令或者第三方手机软件或者特定的一些工具来操作。有些朋友需要查看当前机型分区名称和对应的分区号。此类操作我前面的博文专门说过对应的adb指令。但有些界面化的工具比较方便简单。 相关分区同类博文&#xff…

SpringBoot源码解读与原理分析(三十七)SpringBoot整合WebMvc(二)DispatcherServlet的工作全流程

文章目录 前言12.4 DispatcherServlet的工作全流程12.4.1 DispatcherServlet#service12.4.2 processRequest12.4.3 doService12.4.3.1 isIncludeRequest的判断12.4.3.2 FlashMapManager的设计 12.4.4 doDispatch12.4.4.1 处理文件上传请求12.4.4.2 获取可用的Handler&#xff0…

优优嗨聚集团:美团代运营服务,商家增长的新引擎

在当今数字化时代,线上平台已成为商家拓展业务、提升品牌影响力的重要渠道。美团作为国内领先的本地生活服务平台,拥有庞大的用户群体和丰富的商业资源。然而,对于许多商家而言,如何在美团平台上进行有效运营,实现业务…

【LeetCode:232. 用栈实现队列 + 栈 | 队列】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

力扣74. 搜索二维矩阵(二分查找)

Problem: 74. 搜索二维矩阵 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1:映射为一维数组二分查找 1.由于题目矩阵中的元素整体是升序的,我们可以将其放置在一个大小为 m n m \times n mn的一维数组array中进行二分查找 2.对应的映射关系是ar…

NACOS在Windows和Linux下的安装教程

目录 1、Windows安装 1.1、下载安装包 1.2、解压 1.3、端口配置 1.4、启动 1.5、访问 2、Linux安装 2.1、安装JDK 2.2、上传安装包 2.3、解压 2.4、端口配置 2.5、启动 3、Nacos的依赖 1、Windows安装 开发阶段采用单机安装即可。 1.1、下载安装包 在Nacos的Git…

Vue+SpringBoot打造图书借阅系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登陆注册模块2.2 图书管理模块2.3 图书评论模块2.4 图书预定模块2.5 图书资讯模块 三、系统设计3.1 系统结构设计3.1.1登陆注册模块的结构设计3.1.2图书管理模块的结构设计3.1.3图书评论模块的结构设计3.1.4图书预定模块…

clickhouse 随心所欲的聚合模型-AggregatingMergeTree

clickhouse 强大的 MergeTree 系列引擎令人信服,其 ReplacingMergeTree、SummingMergeTree 在数据唯一性和汇总场景中表现非凡。但你是否还有保留最小(大)、平均等预聚合需求,甚至在一个模型中既有唯一性语意也有汇总、最小、最大、平均值语意该如何处理…

【C语言】剖析qsort函数的实现原理

主页:17_Kevin-CSDN博客 专栏:《C语言》 本文将从回调函数,qsort函数的应用,qsort函数的实现原理三个方面进行讲解,请自行跳转至相对位置进行阅读~ 目录 回调函数 qsort函数的应用 qsort函数实现原理 回调函数 什…