ketongin 发表于 2022-7-6 08:45:28

分解多行

大家好,
 
如何:
 
1) 选择一条多线并将其分解。
2) “setq ent”选择用于爆炸多线的线。
3) 使用vlax曲线getclosestpointto的“setq pt”
4) 只需点击鼠标。
 
对不起,伙计们,我在用英语表达自己时遇到了困难(同时也用lisp),所以我只是列举了一下。
非常感谢。

pBe 发表于 2022-7-6 08:59:28

(defun c:test (/ TheLine Ent Npt)
(vl-load-com)
(setq theLine (entsel "\nSelect Mline: "))
(command "_explode" theLine)
(setq Npt (vlax-curve-getClosestPointTo
      (setq Ent
      (vlax-ename->vla-object (car (nentselp (cadr TheLine))))
      )
      (cadr TheLine)
    )
)
(vla-highlight Ent :vlax-true)
(print Npt)
(princ)
)

Lee Mac 发表于 2022-7-6 09:07:20

 
请小心,如果多线周围有其他对象,则很难保证使用nentselp选择正确的实体
 
也许这段旧代码会提供一些想法

pBe 发表于 2022-7-6 09:09:14


(mapcar '(lambda ( x ) (ssadd x ss)) (_Entnext el))

 

(defun _Entnext ( e )
   (if (setq e (entnext e)) (cons e (_Entnext e)))
)

 
非常好,它也适用于块,它给了我一个关于块层的例程的想法
 
凉豆。
 
谢谢李。

Lee Mac 发表于 2022-7-6 09:16:02

谢谢pBe,很高兴我能帮上忙

pBe 发表于 2022-7-6 09:23:56

希望你不介意我“借用”你的下一个例程一段时间,直到我写下我自己的版本
 
再次感谢你,我的朋友
 

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

 
它只有两行代码。。。着手
 
我很感激在服用前有礼貌地询问。

ketongin 发表于 2022-7-6 09:42:27

谢谢李。喜欢它。

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

不客气,祝你愉快
页: [1]
查看完整版本: 分解多行