功能 取得对象中一个顶点的坐标。 语法及参数 | (vla-get-Coordinate Object index) | | Object | MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/3DPolyline%20对象.htm">3DPoly, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Leader%20对象.htm">Leader, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/LightweightPolyline%20对象.htm">LightweightPolyline, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Point%20对象.htm">Point, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/PolyfaceMesh%20对象.htm">PolyfaceMesh, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/PolygonMesh%20对象.htm">PolygonMesh, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Polyline%20对象.htm">Polyline, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Solid%20对象.htm">Solid, MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Trace%20对象.htm">Trace | | | 这个属性适用的对象。 | | Coordinate | 变体(双精度的三元素或二元素数组);读/写 | | | 指定的顶点的X、Y与Z坐标值的数组。 MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/LightweightPolyline%20对象.htm">LightweightPolyline对象:具有两个元素的变体,表示OCS中 的X与Y坐标值。 MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Polyline%20对象.htm">Polyline对象:具有三个元素的变体,代表OCS的X与Y坐标值。 Z坐标以变体表示但被忽略。 所有其它对象:变体具有三个元素,代表WCS的X与Y坐标,Z坐 标在当前的UCS上将默认为0 | | index | 整数 | | | 顶点数组中要设定或查询的顶点的索引。 顶点数组是以0为基底。 |
说明 这个属性会置换指定对象的任何已有的顶点。可使用标准的数组处理方法来处理这个 属性包含的值。 3DPoly, Polyline, PolygonMesh:如果是简单多段线(不是样条曲线或曲线拟合), 这个属性指定简单顶点。如果是样条曲线或曲面拟合多段线,这个属性指定顶点的控制点。 MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Polyline%20对象.htm">Polyline与MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/LightweightPolyline%20对象.htm">LightweightPolyline对象的OCS坐标值可使用MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/TranslateCoordinates%20方法.htm">TranslateCoordinates方法 转换成其它坐标系统,或从其它坐标系统转换为OCS坐标值。
范例 (defun Example_Coordinate() ;;; 这个范例在模型空间中建立一条Polyline,接着 ;;; 查询与改变第一个索引位置的坐标 (VL-LOAD-COM) (setq AcadObject(vlax-get-acad-object)
AcadDocument(vla-get-ActiveDocument Acadobject)
mSpace(vla-get-ModelSpace Acaddocument)
) ;;;
定义 2D 多段线的点 (setq pnts(vlax-make-safearray vlax-vbDouble '(0 . 14))) (vlax-safearray-fill pnts '(10 10 0 10 20 0 20 20 0 30 20 0 40 40 0)) ;;;
在模型空间中建立一个轻Polyline对象 (setq PolylineObj(vla-AddPolyline mSpace pnts)) (vla-ZoomExtents AcadObject) ;;;
找出第一个索引位置的坐标 (setq coord(vla-get-Coordinate PolylineObj 0)) (princ (STRCAT "多义线的第一个索引位置的坐标是:" (rtos (vlax-safearray-get-element (vlax-variant-value coord) 0)) "," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 1)) "," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 2)) "\n" ) ) (PROMPT "<Enter>进行:")(VL-CMDF pause) ;;;
改变坐标 (setq temp(+ (vlax-safearray-get-element (vlax-variant-value coord) 0) 1)) (setq coord(vlax-variant-value coord)) (vlax-safearray-put-element coord 0 temp) (vla-put-Coordinate PolylineObj 0 coord) (vla-Update PolylineObj) ;;;
查询新的坐标 (setq coord(vla-get-Coordinate PolylineObj 0)) (princ (STRCAT "多义线的第一个索引位置的坐标当前是:" (rtos (vlax-safearray-get-element (vlax-variant-value coord) 0)) "," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 1)) "," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 2)) ) ) (princ) ) |