hamidciv 发表于 2022-7-5 22:26:19

请求捕获大型nu

你好,亲爱的朋友们
:(我想用lisp代码捕捉一个大的坐标点,然后用直线连接,我知道用scr可以做到这一点,但在lisp中怎么做到?
谢谢

marko_ribar 发表于 2022-7-5 22:41:23

有很多可能性。。。捕捉点后,您想要什么类型的阵列-从拾取的起点到最短距离的连接;从拾取的起点到最大距离;通过从拾取的最小x坐标起点最近的x坐标;等

hamidciv 发表于 2022-7-5 22:51:41

尊敬的marko_riber:
我想要捕捉例如点1(5 8 10),点2(20 10 0)。。。。。,点1000(10 20 25)并通过线路连接。
谢谢

marko_ribar 发表于 2022-7-5 22:59:16

您是否已经准备好列表中具有正确阵列的点列表。。。如果是这样,那么这就可以了。。。
 

(mapcar '(lambda ( a b ) (entmake (list '(0 . "LINE") (cons 10 a) (cons 11 b)))) ptlist (cdr ptlist))

hamidciv 发表于 2022-7-5 23:02:12

如果可能的话,举一个简单的例子,捕捉用户命令行中的两个坐标点,并将它们与命令行连接。(我的主要目标是在命令行中输入坐标,这是怎么做到的?)
谢谢

hamidciv 发表于 2022-7-5 23:09:50

如果可能的话,请解释一下这个代码,你放的这个代码是否满足了我的要求?
谢谢

marko_ribar 发表于 2022-7-5 23:19:24

下面是具体lisp例程中的快速解释。。。
 

(defun c:drawlines ( / p ptlist pp )
(setq p (getpoint "\nPick or specify start point : "))
(setq ptlist (cons p ptlist))
(setq pp p)
(while (setq pp (getpoint pp "\nPick or specify next point <Exit> : "))
   (setq ptlist (cons pp ptlist))
)
(setq ptlist (reverse ptlist)) ;;; Here ptlist has been generated ;;;
(mapcar '(lambda ( a b ) (entmake (list '(0 . "LINE") (cons 10 a) (cons 11 b)))) ptlist (cdr ptlist))
;;; Here is the code for drawing lines from list of points (every 2 consecutive points are connected with line entity) ;;;
(princ)
)

 
HTH,M.R。

hamidciv 发表于 2022-7-5 23:27:43

亲爱的marko,我的问题解决了,非常感谢
页: [1]
查看完整版本: 请求捕获大型nu