明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2166|回复: 9

给定XY平面上的n个点,不使用样条曲线怎样光滑连接?

[复制链接]
发表于 2003-10-10 20:57:00 | 显示全部楼层 |阅读模式
VBA二次开发中碰到如下问题,请各位高手指教:
需要将XY平面上n个点光滑封闭连接,又不能使用样条曲线,据说轻便多义线也可以达到这个要求,setbugle,设置凸度,但是又怎么能够实现自动为各段设定凸度?
发表于 2003-10-10 21:09:00 | 显示全部楼层
SetBugle只是设置某一段的凸度,如果要整要曲线光滑的话,就是使用PEdit命令来拟合了。

凸度的计算公式:2 * H / D。
如果等于0,那么就是直线。
如果等于1,那么就是半圆弧。
如果为负值,表示沿时钟方向,顺时针。正值,逆时针。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2003-10-10 21:23:00 | 显示全部楼层
多谢指教!PEdit命令是不是也要设定每个段的凸度?
发表于 2003-10-10 22:02:00 | 显示全部楼层
不要,向ACAD发送PEdit命令,然后传递多义线的对象即可。
如:
ThisDrawing.SendCommand "EDIT" & vbCr & "(Handent """ & PLineObj.Handle & """)" & vbCr & "F" & vbCr & vbCr。
其实它就是相当于在ACAD的命令上行上执行内部的命令。

F表示进行曲线拟合操作,而S表示将其转化为样条曲线。但是它的对象类型依旧是多义线。
 楼主| 发表于 2003-10-11 09:55:00 | 显示全部楼层
多谢指教!已经实现了光滑!
 楼主| 发表于 2003-10-11 10:04:00 | 显示全部楼层
出现新的问题!我是不采用offset进行光顺没有问题,采用offset后不能进行光顺,是不是因为变量不匹配的缘故?
Dim offsetObj As Variant
offsetObj = plineObj.offset(0.25)
发表于 2003-10-11 11:02:00 | 显示全部楼层
Offset函数返回的是一个对象数组。
因而,其中的第一个对象应该是offsetObj(0)。

Dim offsetObj As Variant
offsetObj = plineObj.offset(0.25)
ThisDrawing.SendCommand "EDIT" & vbCr & "(Handent """ & offsetObj(0).Handle & """)" & vbCr & "F" & vbCr & vbCr。
 楼主| 发表于 2003-10-11 11:11:00 | 显示全部楼层
是不是采用SendCommand的方法,基本上能够实现各种二次开发?
发表于 2003-10-11 11:17:00 | 显示全部楼层
SendCommand的意思就是发送命令,它是发送ACAD的内部命令,因而ACAD所具有的基本功能,都可以使用它来完成。不过这种开发效率低,而且没有可视化的效果。只能用于开发语言本身无法实现或者实现比较困难的情况下采用。
 楼主| 发表于 2003-10-11 11:21:00 | 显示全部楼层
多谢多谢,见面了请你吃饭,OK?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 12:38 , Processed in 0.168333 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表