teknomatika 发表于 2022-7-6 08:48:46

帮助-如何移动线条

我需要帮助。解决方案对专家来说很容易,但我有困难:我需要一个例程,允许简单的画线,然后激活移动命令,基线由线上的一个点定义,目标点由pick定义。这基本上是二合一。绘制并移动。
我在这里。
 
;;draw a line and move
(defun c:linm (/ pt1 pt2)
(setq pt1 (getpoint "\nPick start:"))
(setq pt2 (getpoint "\nPick End:"))
(command "line" pt1 pt1)
(command "move")
(princ)
)

Tiger 发表于 2022-7-6 08:54:45

我确信这里有人会回答你,但这让我困惑,所以我要问:你需要这个做什么?最终结果是什么?

teknomatika 发表于 2022-7-6 08:57:16

是的,这似乎太简单了。但基本上是为了抑制第二个命令的调用。

dbroada 发表于 2022-7-6 08:58:31

我和老虎在一起。为什么不从正确的位置开始画呢?

Tharwat 发表于 2022-7-6 09:01:43

未经测试,请尝试。
 

(defun c:linm (/ pt1 pt2)
(setq pt1 (getpoint "\nPick start:"))
(setq pt2 (getpoint "\nPick End:"))
(command "line" pt1 pt1)
(command "move" (entlast) "" "_non" pt1 (getpoint "\n Specify the distination Point:"))
(princ)
)

Tiger 发表于 2022-7-6 09:06:19

我想你误解了我,你觉得这个解决方案能解决你日常绘画中的什么情况?

teknomatika 发表于 2022-7-6 09:09:06

因为我打算沿着第二条线垂直移动这条线,其中移除的值通过键盘指定。也就是说,没有参考文献。在正常情况下,绘制线,然后可以选择偏移或移动,但始终称为第二个命令。正如我所说,我们的想法是一步到位。

Tiger 发表于 2022-7-6 09:12:51

所以你想画一条指定长度的线,在距离一个点指定的距离。
 
如果我理解正确,我会使用带有极轴追踪的扩展OSnap来获得从一条直线上的一个点的距离。在那之后,是一个以直角画新线的问题——我确信这里有一个解释,关于如何从一条线开始画一条垂直的线,但我找不到。
 
我解释这一点不是为了告诉你,你不应该使用Lisp程序。我想指出的是,Lisps并不总是解决问题的答案,您可以在autocad中使用命令完成很多事情。
 
无论如何,请返回您的代码

Tharwat 发表于 2022-7-6 09:16:31

这比第一个好得多。。
 
(defun c:linm (/ pt1 pt2 pt3)
(if (and
       (setq pt1 (getpoint "\nPick start:"))
       (setq pt2 (getpoint pt1 "\nPick End:"))
       (setq pt3 (getpoint "\n Specify distination Point:"))
   )
   (progn
   (entmakex (list '(0 . "LINE")
                     (cons 10 (trans pt1 1 0))
                     (cons 11 (trans pt2 1 0))
               )
   )
   (command "_.move"
            (entlast)
            ""
            "_non"
            pt1
            "_non"
            pt3
   )
   )
   (princ)
)
(princ)
)


Lee Mac 发表于 2022-7-6 09:18:34

由于entmakex返回实体名,因此不需要使用entlast
页: [1] 2
查看完整版本: 帮助-如何移动线条