rengised 发表于 2022-7-6 11:27:36

李,你能给我完整的密码吗?如果你不介意。。比\ks

Lee Mac 发表于 2022-7-6 11:31:53

我解决这个问题的方法是:
[列表]
[*]提示用户选择行(假设此时所有行都是行-稍微简化了一些事情)。
[/列表]
[列表]
[*]将SelectionSet转换为VLA对象列表(更易于使用)。
[/列表]
[列表]
[*]依次为每个对象找到该对象与SelectionSet中每个其他对象之间的交点。
[/列表]
[列表]
[*]对于每一组交叉点,在列表中的前两个交叉点处打断对象(使用用法图的合理假设以及我们仅处理直线的事实)
我使用的库函数:
 
将选择集转换为VLA对象列表:

;; ss~SelectionSet
(defun LM:ss->vla ( ss )
;; © Lee Mac~15.06.10
(if ss
   (
   (lambda ( i / e l )
       (while (setq e (ssname ss (setq i (1+ i))))
         (setq l (cons (vlax-ename->vla-object e) l))
       )
       l
   )
   -1
   )
)
)

 
返回对象和对象列表之间的交点列表:
 
3
 
祝你好运

rengised 发表于 2022-7-6 11:34:53

嗨,李,谢谢你的耐心和帮助,但我不明白,我不知道什么是vla。。。无论如何,非常感谢。。。。。。

Lee Mac 发表于 2022-7-6 11:36:49

你试过了吗?

rengised 发表于 2022-7-6 11:41:22

嗨,利马克,我不知道我所做的是否正确。。我所做的是复制并粘贴代码,并将其另存为。记事本中的lsp(例如LM.lsp)。。。再次感谢李,我真的很感谢你的帮助和耐心。。

Lee Mac 发表于 2022-7-6 11:44:33

这些是可能用于创建程序的唯一库函数,它们本身不是程序。
 
你以前写过LISP吗?

rengised 发表于 2022-7-6 11:48:22

再次感谢李,不幸的是我以前没有写过Lisp程序。这是我的大问题,我也想学习。

alanjt 发表于 2022-7-6 11:50:22

 
我做到了。
 

rengised 发表于 2022-7-6 11:55:08

顺便说一句,李,我不久前在这个论坛上发现了这个Lisp程序的词,但X不起作用。请查看附件。谢谢
墙壁。lsp

Lee Mac 发表于 2022-7-6 11:55:31

 
你检查过这些了吗?
http://www.afralisp.net/
http://www.jefferypsanders.com/autolisptut.html
http://ronleigh.info/autolisp/index.htm
页: 1 [2]
查看完整版本: 从autolisp到图标