明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2907|回复: 3

请教:如何取得pline线某个直线段的顶点坐标

[复制链接]
发表于 2007-7-16 20:36:00 | 显示全部楼层 |阅读模式
搜了半天没找到,烦请高人贴一个,谢谢
发表于 2007-7-16 20:56:00 | 显示全部楼层
vla-get-Coordinate 函数

功能

     取得对象中一个顶点的坐标。

语法及参数

(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">PolylineMSITStore: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)

)

 楼主| 发表于 2007-7-17 06:16:00 | 显示全部楼层

十分感谢

这个语句好难理解,待我慢慢研究

发表于 2014-3-6 10:57:23 | 显示全部楼层
如何获得顶点数?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-25 12:52 , Processed in 0.166548 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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