flopo 发表于 2022-7-6 08:29:00

调试帮助-多段线顶点

大家好,
我需要一些帮助来调试这个:
 
(setq        ent   (car (entsel "\nselect poly:"))
vla-ent (vlax-ename->vla-object ent)
vertexs (vlax-get vla-ent 'coordinates)
n (/ (length vertexs) 2)
)



(repeat        n
       (setq pn (list (car vertexs) (cadr vertexs)))
      vertexs (cdr (cdr vertexs))
      n (- n 1)
      lpoldata(cons pn lpoldata)
)
             

 
我想用多段线顶点制作一个列表。
 
谢谢

Tharwat 发表于 2022-7-6 08:38:29

单向。。。。
 
 

(setq i 0)
(repeat n
(setq pt (cons (list (nth i vertexs) (nth (setq i (1+ i)) vertexs)) pt))
(setq i (1+ i))
)

Tharwat 发表于 2022-7-6 08:48:32

我想这应该好多了
 
还有一个选项
 

(setq ent (car (entsel "\nselect poly:")))

(foreach point (entget ent)
(if (eq (car point) 10)
   (setq lst (cons (list (cadr point) (caddr point)) lst))
)
)

GP_ 发表于 2022-7-6 08:55:24


(setq    ent   (car (entsel "\nselect poly:"))
         vla-ent (vlax-ename->vla-object ent)
         vertexs (vlax-get vla-ent 'coordinates)
         n (/ (length vertexs) 2)
)


(repeat    n
       (setq pn (list (car vertexs) (cadr vertexs));delete ->   )
                  vertexs (cdr (cdr vertexs))
                n (- n 1)
                  lpoldata(cons pn lpoldata)
       )
)


 
 
 
注:
n(/(长度顶点)2)->仅使用PLINETYPE=1创建多段线2D

flopo 发表于 2022-7-6 09:01:07

谢谢GP!
谢谢大家!

Lee Mac 发表于 2022-7-6 09:08:37

另一个:
 
(   (lambda ( f / e )
       (if (setq e (car (entsel)))
         (f (vlax-get (vlax-ename->vla-object e) 'coordinates))
       )
   )
   (lambda ( l )
       (if l (cons (list (car l) (cadr l)) (f (cddr l))))
   )
)

GP_ 发表于 2022-7-6 09:10:01

另外,更新LM代码(适用于所有多段线)。
 
 
6

Lee Mac 发表于 2022-7-6 09:17:19

 
干得好。

GP_ 发表于 2022-7-6 09:22:48

 
我无法复制错误。。。

Lee Mac 发表于 2022-7-6 09:32:46

在提示下单击鼠标右键/输入。
页: [1]
查看完整版本: 调试帮助-多段线顶点