notview 发表于 2022-7-6 06:49:29

从t之间的中间移动对象

任何人都可以制作一个lisp程序:从两点中间移动带有基点的对象,然后移动并粘贴到两点中间。
 
Thanx!

notview 发表于 2022-7-6 06:55:01

任何人都可以制作一个lisp程序:从两点中间移动带有基点的对象,然后移动并粘贴到两点中间。
 
Thanx!

marko_ribar 发表于 2022-7-6 07:00:57

只需使用“_m2p”OSNAP。。。键入命令OSNAP并将捕捉设置为例如“_int”、“_mid”、“_end”,然后启用激活检查-或按F3。。。然后,当您想要移动时,键入move,选择对象,当要求第一个点时,按住ctrl键并单击鼠标右键,找到“m2p”OSNAP,拾取第一个辅助点,拾取第二个辅助点(请记住,现在这些点是辅助点,拾取反应器根据之前设置的OSNAP进行反应-因此实际拾取点将位于这两个辅助拾取点之间),最后,当被问及目标点时,与第一个源点相同。。。对象将根据您的请求移动。。。

MSasu 发表于 2022-7-6 07:04:51

您可以转而使用M2P命令修饰符;它将允许您获得两个拾取点之间的中点。
 
 
顺便说一句,通过两次发布同一个帖子,你只会分裂讨论;请邀请版主加入。非常感谢。

notview 发表于 2022-7-6 07:07:27

有时候,我就是这样做的,但如果有其他方法可以只在一个命令中执行,在lisp中谁可以做到,我真的很感激。

Lee Mac 发表于 2022-7-6 07:13:46

(defun c:mm2p ( / p1 p2 p3 p4 ss )
   (if
       (and
         (setq ss (ssget "_:L"))
         (setq p1 (getpoint "\n1st Point of Mid for Basepoint: "))
         (setq p2 (getpoint "\n2nd Point of Mid for Basepoint: "))
         (setq p3 (getpoint "\n1st Point of Mid for Next point: "))
         (setq p4 (getpoint "\n2nd Point of Mid for Next point: "))
       )
       (command "_.move" ss ""
         "_non" (mapcar '(lambda ( a b ) (/ (+ a b) 2.0)) p1 p2)
         "_non" (mapcar '(lambda ( a b ) (/ (+ a b) 2.0)) p3 p4)
       )
   )
   (princ)
)

notview 发表于 2022-7-6 07:19:04

谢谢李!!
这是我真正想要的。
简单的常规但很棒!!

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

没问题!

Paraglide1 发表于 2022-7-6 07:26:34

李,
你的网络帖子一直以来都对我有很大的帮助。
 
有一个新的捕捉MTP,它捕捉到任意两点之间的中点。允许任何类型的点输入(包括其他捕捉,例如int、app、cen等)。这是在2013年,但我不知道它是在哪个版本首次推出。由于它不是基于lisp的,而是一个输入选项,因此可以在任何lisp例程的执行过程中使用。

ReMark 发表于 2022-7-6 07:31:24

回复:MTP。它是一个命令修饰符,可以通过键入MTP或M2P在命令内调用。双向工作。我想有人已经提到了这一点。
页: [1] 2
查看完整版本: 从t之间的中间移动对象