zxy9108 发表于 2005-11-17 08:33:00

请教两个问题

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近在编一个自动标注某类零件的程序,编程中有以下困难没有找到办法:</P>
<P>&nbsp;&nbsp;&nbsp; 1, 在某个图元中如何找到X或Y坐标最大最小的点;</P>
<P>&nbsp;&nbsp; 2. 在一批图元中(或一个图元中)如何找到UCS的X坐标或Y坐标为0的点.</P>
<P>&nbsp;&nbsp;&nbsp; 特向各位请教</P>

bjzjt 发表于 2005-11-17 09:19:00

<P>1.把点都找出来构成列表 lpts (你不会是做不出这步吧?)</P>
<P>(setq lx (mapcar 'car lpts))</P>
<P>(nth (vl-position (apply 'min lx) lx) lpts)</P>
<P>其他的依此类推</P>
<P>2.(vl-remove-if-not (function (lambda (x) (or (zerop (car x)) (zerop (cadr x))))) lpts)</P>

yxp 发表于 2005-11-17 09:33:00

只需要一个循环就可以把你的两个问题都解决了。

zxy9108 发表于 2005-11-17 10:02:00

<P>&nbsp; 我觉得上面两位可能把问题想简单了,把点全部找出来,只能找一些控制点,只分析控制点得出的东西可能是不正确的</P>

bjzjt 发表于 2005-11-17 14:45:00

<P>噢,原来是位"业余侠客",我说的呢,比我还菜的应该不多了,早知道就不卖这三板斧了.</P>
<P>那就给你第二条提个建议吧:做一条X坐标为0的水平XLINE,用INTERSECTWITH方法求交点.</P>

kccxcc 发表于 2005-11-17 15:38:00

用ap-api中的getboundingbox方法找到封闭一个实体边界框

meflying 发表于 2005-11-17 17:09:00

<P>vlisp中就有getboundingbox的方法,vla-getboundingbox</P>
<P>不过这个方法有些问题,看下面的讨论,,,不知道ap-api中的会不会有不同</P>
<P><A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=15387" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=15387</A></P>
页: [1]
查看完整版本: 请教两个问题