lemonx 发表于 2007-7-16 20:36:00

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

搜了半天没找到,烦请高人贴一个,谢谢

oyxx1023 发表于 2007-7-16 20:56:00

<table id="AutoNumber1" height="77" cellspacing="1" width="100%" background="banner.jpg" border="1"><tbody><tr><td width="50%" height="72"><font color="#ffffff" size="5"><b>vla-get-</b></font><b><font color="#ffffff" size="5">Coordinate </font></b><font color="#ffffff" size="5"><b>函数</b></font></td></tr></tbody></table><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%;"><font face="华文行楷" size="5">功能</font></p><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%;"><font face="华文行楷" size="5">&nbsp;&nbsp;&nbsp;&nbsp; </font>取得<font size="3">对象中一个顶点的坐标。</font></p><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%;"><font face="华文行楷" size="5">语法及参数</font></p><table id="AutoNumber2" height="26" cellspacing="1" width="925" align="left" border="0"><tbody><tr><td width="53" height="5"></td><td width="997" colspan="2" height="5">(vla-<font size="3">get-Coordinate </font>Object <font size="3">index</font>)</td></tr><tr><td width="53" height="1"></td><td width="292" height="1"><font size="3">Object </font></td><td width="705" height="1"><font size="3"><a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/3DPolyline%20对象.htm">3DPoly</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Leader%20对象.htm">Leader</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/LightweightPolyline%20对象.htm">LightweightPolyline</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Point%20对象.htm">Point</a>,&nbsp;<br/><a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/PolyfaceMesh%20对象.htm">PolyfaceMesh</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/PolygonMesh%20对象.htm">PolygonMesh</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Polyline%20对象.htm">Polyline</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Solid%20对象.htm">Solid</a>, <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Trace%20对象.htm">Trace</a></font></td></tr><tr><td width="53" height="1"></td><td width="292" height="1"></td><td width="705" height="1"><font size="3">这个属性适用的对象。</font></td></tr><tr><td width="53" height="1"></td><td width="292" height="1"><font size="3">Coordinate</font></td><td width="705" height="1"><font size="3">变体(双精度的三元素或二元素数组);读/写</font></td></tr><tr><td width="53" height="1"></td><td width="292" height="1"></td><td width="705" height="1"><font size="3">指定的顶点的X、Y与Z坐标值的数组。<br/><a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/LightweightPolyline%20对象.htm">LightweightPolyline</a>对象:具有两个元素的变体,表示OCS中<br/>的X与Y坐标值。<br/><a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Polyline%20对象.htm">Polyline</a>对象:具有三个元素的变体,代表OCS的X与Y坐标值。<br/>Z坐标以变体表示但被忽略。<br/>所有其它对象:变体具有三个元素,代表WCS的X与Y坐标,Z坐<br/>标在当前的UCS上将默认为0</font></td></tr><tr><td width="53" height="1"></td><td width="292" height="1"><font size="3">index</font></td><td width="705" height="1"><font size="3">整数</font></td></tr><tr><td width="53" height="1"></td><td width="292" height="1"></td><td width="705" height="1"><font size="3">顶点数组中要设定或查询的顶点的索引。<br/>顶点数组是以0为基底。</font></td></tr></tbody></table><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%; TEXT-ALIGN: left;"><font size="3"><br/></font><font face="华文行楷" size="5"><br/><br/><br/></font><font size="3"><br/><br/></font></p><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%; TEXT-ALIGN: left;"> </p><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%; TEXT-ALIGN: left;"> </p><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%; TEXT-ALIGN: left;"> </p><p class="MsoNormal" align="left" style="LINE-HEIGHT: 150%; TEXT-ALIGN: left;"><font face="华文行楷" size="5">说明&nbsp;</font><font size="3"><b><br/></b>&nbsp;&nbsp;&nbsp; 这个属性会置换指定对象的任何已有的顶点。可使用标准的数组处理方法来处理这个<br/>属性包含的值。<br/>&nbsp;&nbsp;&nbsp; 3DPoly, Polyline, PolygonMesh:如果是简单多段线(不是样条曲线或曲线拟合),<br/>这个属性指定简单顶点。如果是样条曲线或曲面拟合多段线,这个属性指定顶点的控制点。<br/>&nbsp;&nbsp;&nbsp; <a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/Polyline%20对象.htm">Polyline</a>与<a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/LightweightPolyline%20对象.htm">LightweightPolyline</a>对象的OCS坐标值可使用<a href="mk:@MSITStore:C:/cbz242/VBA%20鍑芥暟璇存槑.chm::/TranslateCoordinates%20方法.htm">TranslateCoordinates</a>方法<br/>转换成其它坐标系统,或从其它坐标系统转换为OCS坐标值。<br/><br/></font><font face="华文行楷" size="5"><br/>范例</font>&nbsp; </p><p class="MsoNormal">(defun Example_Coordinate()</p><p class="MsoNormal">;;; <font size="3">这个范例在模型空间中建立一条Polyline,接着<br/>;;; 查询与改变第一个索引位置的坐标</font></p><p class="MsoNormal">&nbsp; (VL-LOAD-COM)</p><p class="MsoNormal">&nbsp; (setq AcadObject(vlax-get-acad-object)</p><p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp; AcadDocument(vla-get-ActiveDocument Acadobject)</p><p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                &nbsp;mSpace(vla-get-ModelSpace Acaddocument)
        </p><p class="MsoNormal">&nbsp; )</p><p class="MsoNormal">;;;
                <font size="3">定义 2D 多段线的点</font></p><p class="MsoNormal">&nbsp; (setq pnts(vlax-make-safearray vlax-vbDouble '(0 . 14)))</p><p class="MsoNormal">&nbsp; (vlax-safearray-fill pnts '(10 10 0 10 20 0 20 20 0 30 20 0 40 40 0))</p><p class="MsoNormal">;;;
                <font size="3">在模型空间中建立一个轻Polyline对象</font></p><p class="MsoNormal">&nbsp; (setq PolylineObj(vla-AddPolyline mSpace pnts))</p><p class="MsoNormal">&nbsp; (vla-ZoomExtents AcadObject)</p><p class="MsoNormal">;;;
                <font size="3">找出第一个索引位置的坐标</font></p><p class="MsoNormal">&nbsp; (setq coord(vla-get-Coordinate PolylineObj 0))</p><p class="MsoNormal">&nbsp; (princ (STRCAT "多义线的第一个索引位置的坐标是:" (rtos (vlax-safearray-get-element (vlax-variant-value coord) 0))</p><p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;"," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 1))</p><p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;"," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 2)) "\n"</p><p class="MsoNormal">     )</p><p class="MsoNormal"> )</p><p class="MsoNormal">&nbsp; (PROMPT "&lt;Enter&gt;进行:")(VL-CMDF pause)</p><p class="MsoNormal">;;;
                <font size="3">改变坐标</font></p><p class="MsoNormal">&nbsp; (setq temp(+ (vlax-safearray-get-element (vlax-variant-value coord) 0) 1))</p><p class="MsoNormal">&nbsp; (setq coord(vlax-variant-value coord))</p><p class="MsoNormal">&nbsp; (vlax-safearray-put-element coord 0 temp)</p><p class="MsoNormal">&nbsp; (vla-put-Coordinate PolylineObj 0 coord)</p><p class="MsoNormal">&nbsp; (vla-Update PolylineObj)</p><p class="MsoNormal">;;;
                <font size="3">查询新的坐标</font></p><p class="MsoNormal">&nbsp; (setq coord(vla-get-Coordinate PolylineObj 0))</p><p class="MsoNormal">&nbsp; (princ (STRCAT "多义线的第一个索引位置的坐标当前是:" (rtos (vlax-safearray-get-element (vlax-variant-value coord) 0))</p><p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;"," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 1))</p><p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;"," (rtos (vlax-safearray-get-element (vlax-variant-value coord) 2))</p><p class="MsoNormal">     )</p><p class="MsoNormal"> )</p><p class="MsoNormal">&nbsp; (princ)</p><p class="MsoNormal">)</p>

lemonx 发表于 2007-7-17 06:16:00

<p>十分感谢</p><p>这个语句好难理解,待我慢慢研究</p>

hisum 发表于 2014-3-6 10:57:23

如何获得顶点数?
页: [1]
查看完整版本: 请教:如何取得pline线某个直线段的顶点坐标