TwoSixSix 发表于 2022-7-5 15:52:55

帮助从中的某个点进行跟踪

长期潜伏者,第一次海报。
 
我Lisp程序。下面是我试图做的过于简单化,但问题就在这里。
 
我试图创建一系列点,同时从“pt1”跟踪。它将第一次工作,但随后结束命令。
 
(DEFUN C:测试()
(虽然
(setq pt1(列表0)
(命令“POINT”“\u tt”pt1 pause)
)
(普林斯)
)
 
如果我删除{u tt“pt1},这是告诉它跟踪的内容,该命令将根据需要连续运行,但如果我告诉它跟踪,它会工作一次,然后停止。
 
请帮忙?

David Bethel 发表于 2022-7-5 16:13:23

如果我理解正确,可能:
 

(defun c:foo (/ bp pt1)
(setq bp (list 0 0 0)
(while (setq pt1 (getpoint bp "\nNext Point:   "))
         (command "_.POINT" "_non" pt1))
(prin1))

 
 
未测试
 
-大卫

TwoSixSix 发表于 2022-7-5 16:23:08

谢谢David,但我需要它从“point”命令中跟踪,而不是在创建点之前。

ronjonp 发表于 2022-7-5 16:38:21

David的代码从一个点(您要求的)开始跟踪。。也许您希望将p1更改为循环中拾取的最后一个点?以下是我的库中的一些旧代码:
(defun c:mdist (/ d p1 p2 v)
(setq d 0)
(while (and (or p1 (setq p1 (getpoint "\nSpecify start point: ")))
      (setq p2 (getpoint p1 "\nSpecify next point: "))
      (setq d (+ d (distance p1 p2)))
      (setq v (append v (list p1 p2)))
      (setq p1 p2)
)
   (grvecs (append v '(1)))
   (princ (strcat "\nRunning total: " (rtos d)))
)
(princ)
)
 
还是这个?
(defun c:test (/ p1 p2)
(while (and (or p1 (setq p1 (getpoint "\nSpecify start point: ")))
      (setq p2 (getpoint p1 "\nSpecify next point: "))
)
   (entmakex (list '(0 . "point") (cons 10 p1) '(8 . "point")))
   (setq p1 p2)
)
(princ)
)

David Bethel 发表于 2022-7-5 16:48:08

你知道(command)总是返回nil吗。(AFAIK)?

SLW210 发表于 2022-7-5 16:54:43

请阅读代码发布指南,并编辑代码以包含在代码标签中。
Your Code Here=
Your Code Here
页: [1]
查看完整版本: 帮助从中的某个点进行跟踪