Tharwat 发表于 2022-7-6 10:31:39

我如何使用entmakex来

你好
 
是否可以只使用一个entmakex来绘制以下四个点
不重复同一个恩他美三次?

(setq p1 (getpoint        "\n Specify a point :")
   p2 (getpoint        "\n Specify a point :")
   p3 (getpoint        "\n Specify a point :")
   p4 (getpoint        "\n Specify a point :")
   )
(entmake (list
   (cons 0 "LINE")
   (cons 10 p1)
   (cons 11 p2)
   )
)

 
谢谢
 
塔瓦特

fixo 发表于 2022-7-6 10:37:28

你在说台词吗?

(setq p1 (getpoint "\n Specify a point :")
   p2 (getpointp1 "\n Specify a point :")
   p3 (getpointp2 "\n Specify a point :")
   p4 (getpointp3 "\n Specify a point :")
   )
(mapcar '(lambda(a b)
(entmake (list
   (cons 0 "LINE")
   (cons 10 a)
   (cons 11 b)
   )
)
   )
   (list p1 p2 p3 p4)
   (list p2 p3 p4 p1)
   )

Tharwat 发表于 2022-7-6 10:41:14

是的,我的问题是关于画线的。
 
非常感谢菲索。这是一项伟大的工作。
 
使用entmake“TEXT”或“MTEXT”也可以吗?
 
非常感谢。
 
塔瓦特

Lt Dan's l 发表于 2022-7-6 10:44:00


(defun c:test (/ p1 p2)
(repeat 4
   (if (not p2)
   (setq p1 (getpoint "\n Specify a point :"))
   (setq p1 p2)
   )
   (setq p2 (getpoint p1 "\n Specify a point :"))
   (entmakex
   (list
       (cons 0 "LINE")
       (cons 10 p1)
       (cons 11 p2)
   )
   )
)
(princ)
)

 
 
____编辑___
 
对不起,没有看到fixo的回复。滚动到它的右上方

Lee Mac 发表于 2022-7-6 10:47:51

 

(if (setq p (getpoint "\nFirst Point: "))
(while (setq q (getpoint "\rPick Next Point: " p))
   (entmake
   (list
       (cons 0 "LINE")
       (cons 10 (trans p 1 0))
       (cons 11 (trans (setq p q) 1 0))
   )
   )
)
)

 

(defun line ( p1 / p2 )
(cond
   ( (and p1 (setq p2 (getpoint "\rPick Next Point: " p1)))
   (entmakex
       (list
         (cons 0 "LINE") (cons 10 (trans p1 1 0)) (cons 11 (trans p2 1 0))
       )
   )
   (line p2)
   )
)
)

(line (getpoint "\nFirst Point: "))

Tharwat 发表于 2022-7-6 10:52:37

对。非常棒的作品。
 
但我指的是fixo在他的第一篇文章中给我的相同套路,这是在套路中已经提出的观点
并且只使用一个entmake(s)将它们全部绘制在一个中。
 
在你们编写的强大代码中,出现了一个问题。
 
是否也可以使用一个entmake作为文本?
 
非常感谢。
 
塔瓦特

Lee Mac 发表于 2022-7-6 10:55:20

您可以使用entmake创建几乎任何实体-包括文本。
 
在entmake调用中只能创建一个实体。
 
也许您正在考虑LW多段线。

Tharwat 发表于 2022-7-6 10:57:16

谢谢。
 
我在想已经在一个例程中生成的所有文本的文本entmakex。例如
我有带值的X,Y,Z,那么我如何只使用一个entmakex来插入它们呢。这可能吗?
 

(setq x '10.0
   y '20.0
   z 30.0
   )

(setq pt (getpoint "\n Specify text location :"))
   
(entmakex (list (cons 0 "TEXT")
               (cons 10pt)
               (cons 40 (getvar 'textsize))
               (cons 1(rtos x 2 1))
))

 
太好了,谢谢。
 
塔瓦特

Tharwat 发表于 2022-7-6 11:03:20

Mybe和strcat函数,它不会将它们相互连接,在这种情况下“\n”也没有帮助。

(setq x '10.0
   y '20.0
   z 30.0
   )
(setq pt (getpoint "\n Specify text location :"))
   
(entmakex (list (cons 0 "TEXT")
               (cons 10pt)
               (cons 40 (getvar 'textsize))
               (cons 1(strcat (rtos x 2 1)"\n"(rtos y 2 1)"\n"(rtos z 2 1)))))

Lt Dan's l 发表于 2022-7-6 11:03:55

它必须是(cons 1 mtext),我不完全确定,但我认为您必须这样做
页: [1] 2
查看完整版本: 我如何使用entmakex来