明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1752|回复: 3

[讨论]怎样求曲线交点处向量?

[复制链接]
发表于 2004-5-30 15:24:00 | 显示全部楼层 |阅读模式
Public Sub Test()
Dim a As AcadEntity
Dim b As New Curve
Dim e(4) As Variant
Dim f(14) As Double
Dim d As Double
Set a = ThisDrawing.ModelSpace(0)
Set b.Entity = a
c = a.IntersectWith(a, acExtendNone)
d = b.GetDistanceAtPoint(c)
e(0) = b.GetPointAtDistance(0)
e(1) = b.GetPointAtDistance(d / 4)
e(2) = b.GetPointAtDistance(d / 2)
e(3) = b.GetPointAtDistance(d * 3 / 4)
e(4) = b.GetPointAtDistance(d)
f(0) = e(0)(0): f(1) = e(0)(1): f(2) = 0
f(3) = e(1)(0): f(4) = e(1)(1): f(5) = 0
f(6) = e(2)(0): f(7) = e(2)(1): f(8) = 0
f(9) = e(3)(0): f(10) = e(3)(1): f(11) = 0
f(12) = e(4)(0): f(13) = e(4)(1): f(14) = 0
Dim endTan(2) As Double
endTan(0) = 0.5: endTan(1) = -0.35: endTan(2) = 0 ThisDrawing.ModelSpace.AddSpline f, a.StartTangent, endTan End Sub

本帖子中包含更多资源

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

x
发表于 2004-5-31 12:37:00 | 显示全部楼层
VLISP是 傳回曲線上指定位置的第一個衍生向量 (使用 WCS)
(vlax-curve-getFirstDeriv curve-obj param) 引數 curve-obj 測量 VLA 物件。 param 指定在曲線參數的數字。 傳回值 如果成功的話是 3D 向量串列,否則為 nil。 範例 下列的範例中,假設 splineObj 指到顯示於範例中的 vlax-curve-getDistAtParam 函數。
取得曲線的起點參數: _$ (setq startSpline (vlax-curve-getStartParam splineObj)) 0.0 取得曲線的終點參數: _$ (setq endSpline (vlax-curve-getEndParam splineObj)) 17.1546 決定沿曲線在參數中間的第一個衍生向量: _$ (vlax-curve-getFirstDeriv splineObj
( / (- endspline startspline) 2)) (0.422631 -1.0951 0.0)
 楼主| 发表于 2004-5-31 12:45:00 | 显示全部楼层
谢谢,我试试吧


献花一朵
 楼主| 发表于 2004-5-31 13:20:00 | 显示全部楼层
我把后面一部分改为 Dim entt dim g(2) as double
entt = b.GetFirstDerivative(b.GetParameterAtPoint(e(4)))
For i = 0 To 2
g(i) = entt(i)
Next i
ThisDrawing.ModelSpace.AddSpline f, a.StartTangent, g
但这样求出的曲线和原曲线是相交的,我是想用ActiveX方法模拟Break,好像不太成功?还是方法有误?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 05:29 , Processed in 0.162006 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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