walkmanlh 发表于 2003-7-1 22:39:00

[求助]怎样在2002中求型心

请问有没有什么可以快速求pline型心的工具,求出型心希望能自动标注出型心的位置。
大虾帮帮忙!急
walkmanlh@21cn.com

龙龙仔 发表于 2003-7-2 08:28:00

;;For polyline
(defun CENTROID        ()
(setq        POLY(car (entsel "\nPick polyline: "))
        LIS   (MAKEPOINTLIS POLY)
        N   (* 1.0 (length LIS))
        TOTAL (list
                (apply '+ (mapcar 'car LIS))
                (apply '+ (mapcar 'cadr LIS))
              )
)
(setq        X1 (/ (car TOTAL) N)
        Y1 (/ (cadr TOTAL) N)
)
(command "_.POINT" (list X1 Y1))
(prompt (strcat "\n型心=(" (rtos X1) "," (rtos Y1) ")"))
(princ)
)


(defun DXFEG (C E) (cdr (assoc C (entget E))))

(defun DXF (C E) (cdr (assoc C E)))

(defun MAKEPOINTLIS (E / EG LIS)
(setq LIS NIL)
(cond
    ((= "LWPOLYLINE" (DXFEG 0 E))
   (setq EG (entget E))
   (while
       (setq EG (member (assoc 10 EG) EG))
        (setq LIS (cons (cdar EG) LIS)
              EG(cdr EG)
        )
   )
   (reverse LIS)
    )
    ((= "POLYLINE" (DXFEG 0 E))
   (while
       (and
       (setq E (entnext E))
       (setq EG (entget E))
       (/= "SEQEND" (DXFEG 0 E))
       )
        (setq LIS (cons (DXF 10 EG) LIS))
   )
   (reverse LIS)
    )
    (t (alert " not a polyline ") NIL)
)
)

walkmanlh 发表于 2003-7-2 14:40:00

本帖最后由 作者 于 2003-7-2 21:52:19 编辑

请问下斑竹,这个东西怎么用,我太不会lisp 。用2002加载了,但是什么命令?
不好意思了!
我这样试了下就好象可以了,是否对?
给看看!
defun CENTROID 里加了个c:
能否继续完善下它,想让他标出不是点,而是一个直线的十字

龙哥,帮了个大忙,这样免了好多辛苦事。
感谢ing.

龙龙仔 发表于 2003-7-2 17:14:00

1.命令是這樣
(centroid)

2.一个直线的十字
指令: pdmode
輸入 PDMODE 的新值<0>: 2

pfd8667 发表于 2004-8-1 09:15:00

没告诉怎么用

meflying 发表于 2004-8-1 09:39:00

(setvar "pdmode" 2)或(command "pdmode" 2)

pwf 发表于 2004-8-4 18:27:00

异型的形状也可以吗?

它山之石 发表于 2004-8-5 17:50:00

本来也想写个这程序的,试试吧再说。


TSSD的只能对矩形示形心。

alex0007 发表于 2007-7-20 11:22:00

经我实测..(我没有去细读程序)..与tssd2006的求形心及利cad将pline转成region后列表的质量特性有相当大的误差!..估计是算法问题

tchen 发表于 2007-7-27 23:38:00

<p>这个方法求的型心不一定在多边形内哦! &nbsp;对与凹多边形,此程序求的型心在多边形外面了,</p><p>有没有一种方法,求出一个点一定在多边形里面呢,让它与中心位置最接近,我问了很多人他们都说没有这种固定的心,请问大家有简单的办法吗?</p><p>因为我现在在做一个程序,我想在区域里面标号,但是这个标号一定不能在闭合多边形外,最好最接近多边形的中心位置!</p>
页: [1] 2
查看完整版本: [求助]怎样在2002中求型心