乐筑天下

帖子
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 114|回复: 9

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

[复制链接]

9

主题

24

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2003-10-10 20:57:00 | 显示全部楼层 |阅读模式
VBA二次开发中碰到如下问题,请各位高手指教:
需要将XY平面上n个点光滑封闭连接,又不能使用样条曲线,据说轻便多义线也可以达到这个要求,setbugle,设置凸度,但是又怎么能够实现自动为各段设定凸度?
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-10-10 21:09:00 | 显示全部楼层
SetBugle只是设置某一段的凸度,如果要整要曲线光滑的话,就是使用PEdit命令来拟合了。
凸度的计算公式:2 * H / D。
如果等于0,那么就是直线。
如果等于1,那么就是半圆弧。
如果为负值,表示沿时钟方向,顺时针。正值,逆时针。

uncah1emmxj.bmp

uncah1emmxj.bmp

回复

举报

9

主题

24

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2003-10-10 21:23:00 | 显示全部楼层
多谢指教!PEdit命令是不是也要设定每个段的凸度?
回复

举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-10-10 22:02:00 | 显示全部楼层
不要,向ACAD发送PEdit命令,然后传递多义线的对象即可。
如:
ThisDrawing.SendCommand &quotEDIT" & vbCr & "(Handent """ & PLineObj.Handle & """)" & vbCr & "F" & vbCr & vbCr。
其实它就是相当于在ACAD的命令上行上执行内部的命令。
F表示进行曲线拟合操作,而S表示将其转化为样条曲线。但是它的对象类型依旧是多义线。
回复

举报

9

主题

24

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2003-10-11 09:55:00 | 显示全部楼层
多谢指教!已经实现了光滑!
回复

举报

9

主题

24

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2003-10-11 10:04:00 | 显示全部楼层
出现新的问题!我是不采用offset进行光顺没有问题,采用offset后不能进行光顺,是不是因为变量不匹配的缘故?
Dim offsetObj As Variant
offsetObj = plineObj.offset(0.25)
回复

举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-10-11 11:02:00 | 显示全部楼层
Offset函数返回的是一个对象数组。
因而,其中的第一个对象应该是offsetObj(0)。
Dim offsetObj As Variant
offsetObj = plineObj.offset(0.25)
ThisDrawing.SendCommand &quotEDIT" & vbCr & "(Handent """ & offsetObj(0).Handle & """)" & vbCr & "F" & vbCr & vbCr。
回复

举报

9

主题

24

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2003-10-11 11:11:00 | 显示全部楼层
是不是采用SendCommand的方法,基本上能够实现各种二次开发?
回复

举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-10-11 11:17:00 | 显示全部楼层
SendCommand的意思就是发送命令,它是发送ACAD的内部命令,因而ACAD所具有的基本功能,都可以使用它来完成。不过这种开发效率低,而且没有可视化的效果。只能用于开发语言本身无法实现或者实现比较困难的情况下采用。
回复

举报

9

主题

24

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2003-10-11 11:21:00 | 显示全部楼层
多谢多谢,见面了请你吃饭,OK?
回复

举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁體中文

GMT+8, 2025-3-15 03:15 , Processed in 2.504408 second(s), 75 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表