明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1463|回复: 22

[提问] 求教!使用vla-Offset偏移多段线时距离正负如何确定?

[复制链接]
发表于 2024-11-16 21:57:31 | 显示全部楼层 |阅读模式





我想用vla-Offset向内偏移多段线、
但是不知道偏移距离的正负如何确定

求教一下各位大神!
有没有什么方法、可以快速确定这个偏移距离的正负

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2024-11-18 10:33:14 | 显示全部楼层
本帖最后由 llsheng_73 于 2024-11-18 10:45 编辑
xiaocainiao 发表于 2024-11-17 14:59
如何判断先的前进方向啊

起点到下一点的方向啊(站在起点位置往下一点方向看,用负值一定是往左偏移的,正值一定是往右),这个与线是否闭合都适用的,闭合属于特殊情况,它的前进方向表现为顺时针或逆时针方向,如果为了固定往闭合线外偏(或内偏),就需要判断它的顺逆特征,逆时针方向正值往外偏,负值往内偏(顺时针方向则刚好相反),实际上也是符合前进方向左负右正的

多说一句,offset方法返回的是一个variant,因为线段的转折角和偏移量的原因,可能偏移后产生0条线段(因为偏移量过大往内偏移产生错误,比如对圆以大于等于半径的量往内偏移)或多条线段,可以对返回值通过vlax-variant-value转为safearray数组,然后就可以访问所有因为OFFSET产生的新图元对象了
回复 支持 反对

使用道具 举报

发表于 2024-11-18 07:29:10 | 显示全部楼层
查宝典,上面是这么说的
Distance : Double; input-only
The distance to offset the object. The offset can be a positive or negative number, but it cannot equal zero. If the offset is negative, this is interpreted as being an offset to make a "smaller" curve (that is, for an arc it would offset to a radius that is "Distance less" than the starting curve's radius). If "smaller" has no meaning, then it would offset in the direction of smaller X, Y, and Z WCS coordinates.
回复 支持 反对

使用道具 举报

发表于 2024-11-17 00:32:07 | 显示全部楼层
kozmosovia 发表于 2024-11-16 23:35
瞎扯,跟方向没有毛线关系。
正数是生成更长的曲线,负数是短的。

不知道你这个说的是不是 vla-Offset 但是实际测试就是和绘制方向有关的 正数时 偏移的方向 在多段线绘制方向的右侧 弧 不管怎么画 起止点都是逆时针的 正数在右 自然就是更长的那一面
回复 支持 反对

使用道具 举报

发表于 2024-11-16 22:48:36 | 显示全部楼层
本帖最后由 vitalgg 于 2024-11-16 22:49 编辑

需要判断多段线的点的转角方向是顺时针还是逆时针。

(curve:clockwisep (car(entsel)))
回复 支持 反对

使用道具 举报

发表于 2024-11-16 23:35:13 | 显示全部楼层
vitalgg 发表于 2024-11-16 22:48
需要判断多段线的点的转角方向是顺时针还是逆时针。

(curve:clockwisep (car(entsel)))

瞎扯,跟方向没有毛线关系。
正数是生成更长的曲线,负数是短的。

本帖子中包含更多资源

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

x

点评

"正数是生成更长的曲线,负数是短的"一本正经瞎说。。。  发表于 2024-11-17 13:29
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-17 07:47:44 | 显示全部楼层
kozmosovia 发表于 2024-11-16 23:35
瞎扯,跟方向没有毛线关系。
正数是生成更长的曲线,负数是短的。

我之前就是以为负数是始终向内、结果并不是这样、所以才来论坛请教一下、这个正负到底怎么确定
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-17 07:49:08 | 显示全部楼层
vitalgg 发表于 2024-11-16 22:48
需要判断多段线的点的转角方向是顺时针还是逆时针。

(curve:clockwisep (car(entsel)))

我试一下、谢谢大神
回复 支持 反对

使用道具 举报

发表于 2024-11-17 09:41:05 来自手机 | 显示全部楼层
鼠标向量叉乘曲线上某点切向量
回复 支持 反对

使用道具 举报

发表于 2024-11-17 09:54:59 | 显示全部楼层
vla-Offset,先做一个(正),如果检查不对,删掉再做个(负)。
回复 支持 反对

使用道具 举报

发表于 2024-11-17 12:05:31 | 显示全部楼层
最保险的肯定是直接做两个方向偏移,然后判断,不合适的删除。
单纯判断大小或者顺逆时针,对于复杂曲线,可能不准确的。尤其是内凹曲线,有些段是顺的,另外有些段可能是逆的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-17 12:35:11 | 显示全部楼层
kozmosovia 发表于 2024-11-17 12:05
最保险的肯定是直接做两个方向偏移,然后判断,不合适的删除。
单纯判断大小或者顺逆时针,对于复杂曲线 ...

我现在就是这样干的、楼上大神说的 (curve:clockwisep (car(entsel))) 这个其实也是这种方法
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-5 14:43 , Processed in 0.164494 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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