首先,热烈欢迎凯德·雷
我建议使用vlax curve getpointatparam函数,因为LWPolyline的顶点具有整数参数,因此可以在参数的一半值处找到中点。
下面是一些快速编写的代码:
- (defun c:test ( / e i p s ) (vl-load-com)
- (if (setq s (ssget '((0 . "LWPOLYLINE"))))
- (repeat (setq i (sslength s))
- (repeat (1+ (fix (* 2 (vlax-curve-getendparam (setq p -0.5 e (ssname s (setq i (1- i))))))))
- (entmakex (list (cons 0 "POINT") (cons 10 (vlax-curve-getpointatparam e (setq p (+ p 0.5))))))
- )
- )
- )
- (princ)
- )
|