Reverse 方法 (ActiveX)
反转样条的方向。 支持的平台:仅限 Windows 返回值 (RetVal)无返回值。 言论没有其他评论。 例子VBA: Sub Example_Reverse() ' This example creates a spline in model space. ' It then reverses the spline and therefore the ' control point data. Dim splineObj As AcadSpline Dim startTan(0 To 2) As Double Dim endTan(0 To 2) As Double Dim fitPoints(0 To 8) As Double Dim msg As String startTan(0) = 0.5: startTan(1) = 0.5: startTan(2) = 0 endTan(0) = 0.5: endTan(1) = 0.5: endTan(2) = 0 fitPoints(0) = 0: fitPoints(1) = 0: fitPoints(2) = 0 fitPoints(3) = 5: fitPoints(4) = 5: fitPoints(5) = 0 fitPoints(6) = 10: fitPoints(7) = 0: fitPoints(8) = 0 Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan) ZoomAll GoSub GETPOINTS MsgBox "Before the reverse the first control point is " & msg ' Reverse the Spline and therefore control point data splineObj.Reverse ThisDrawing.Regen True GoSub GETPOINTS MsgBox "After the reverse the first control point is " & msg Exit Sub GETPOINTS: msg = "" ' Get the coordinates from the first control point again Dim count As Integer For count = 0 To 2 msg = msg & splineObj.GetControlPoint(0)(count) & ", " Next msg = VBA.Left(msg, Len(msg) - 2) Return End Sub 可视化 LISP: (vl-load-com) (defun c:Example_Reverse() ;; This example creates a spline in model space. ;; It then reverses the spline and therefore the ;; control point data. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Create the spline (setq startTan (vlax-3d-point 0.5 0.5 0) endTan (vlax-3d-point 0.5 0.5 0) fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8))) (vlax-safearray-fill fitPoints '(0 0 0 5 5 0 10 0 0 ) ) (setq modelSpace (vla-get-ModelSpace doc)) (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan)) (vla-ZoomAll acadObj) ;; Get the coordinates from the first control point again (setq msg "" count 0) (while (>= 2 count) (setq msg (strcat msg (rtos (vlax-safearray-get-element (vlax-variant-value (vla-GetControlPoint splineObj 0)) count) 2) ", ") count (1+ count) ) ) (setq msg (vl-string-right-trim ", " msg)) (alert (strcat "Before the reverse the first control point is " msg)) ;; Reverse the Spline and therefore control point data (vla-Reverse splineObj) (vla-Regen doc :vlax-true) ;; Get the coordinates from the first control point again (setq msg "" count 0) (while (>= 2 count) (setq msg (strcat msg (rtos (vlax-safearray-get-element (vlax-variant-value (vla-GetControlPoint splineObj 0)) count) 2) ", ") count (1+ count) ) ) (setq msg (vl-string-right-trim ", " msg)) (alert (strcat "After the reverse the first control point is " msg)) ) |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 11:40
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.