drafter007 发表于 2022-7-6 07:49:38

entmake文本-不工作

这个坏了
 

(foreach e elist
   (entmakex
   (list
   (cons 0 "TEXT")
   (cons 100 "AcDbText")
   (cons 10 (cadr e))
   (cons 40 INALT)
   (cons 1 (rtos (car e) 2 0))
   (if (< (caddr (cadr e)) 0.0)
   (cons 62 4))
   (cons 100 "AcDbText")
   )
   )
)

 
 
 
 
 
 
这一个正在工作
 
 

(foreach e elist
   (entmakex
   (list
   (cons 0 "TEXT")
   (cons 100 "AcDbText")
   (cons 10 (cadr e))
   (cons 40 INALT)
   (cons 1 (rtos (car e) 2 0))
   (cons 100 "AcDbText")
   )
   )
)

 
 
 
发生了什么?如何在entmake中设置颜色?如果有什么问题?

MSasu 发表于 2022-7-6 07:54:36

代码可能会失败,因为当条件不满足时,IF测试将返回(并附加)nil。
对于第二个问题,颜色存储为DXF代码62下的整数;如果此代码不存在,则颜色被视为“ByLayer”。

Tharwat 发表于 2022-7-6 07:57:13

你能发布变量列表(elist)吗?

drafter007 发表于 2022-7-6 08:03:01

((10 (21.4577 22886.2 20.0) ) (9 (379.39 22984.3 15.4)
) (8 (-61.2626 23323.3 11. ) (7
(329.486 23185.6 0.0))(6(279.582 22881.0 0.0)名称:7e6d9df0>)(5(252.479 23073.8 0.0))(4(73.0826
23034.2 0.0))(3(113.505 22821.4 0.0)7e6d9e00>)(2(169.449 23147.7-10.0))(1(505.011
23331.8 -24.7) ))
 
这是10个实体的elist示例

MSasu 发表于 2022-7-6 08:06:04

您是否尝试调整代码以考虑假设测试返回?

drafter007 发表于 2022-7-6 08:07:56

我放弃了在entmake中使用if,这很好。还有:假设我有一张画,画上有很多点,在这些点上插入了文字。如果我选择(高亮显示)10个点,我如何选择这10个已经选择(高亮显示)的点周围的所有实体,距离。。。5个单元?已经为这样的任务制作了lisp?

MSasu 发表于 2022-7-6 08:10:57

看来你解决了你的问题。真为你高兴。
 
对于这种选择,我假设您正在寻找一种以所述点为中心的“选择圆”。这是正确的吗?

drafter007 发表于 2022-7-6 08:14:43

是的,是正确的,我想这样做:首先选择几个点,然后插入“选择圆”的半径值。

MSasu 发表于 2022-7-6 08:18:20

我看到的最接近的解决方法是使用选择多边形(检查SSGET函数的WP和CP模式)。然后,您将计算与所述中心等距的十几个或两个点,然后使用它们使用上述模式之一创建所需的选择集。

drafter007 发表于 2022-7-6 08:21:52

或者使用wp或cp进行ssget,使用一个正方形AxA的多边形,其中a=“选择圆”的直径,然后从选择集中删除距离“中心”大于半径值的文本?
还有其他更简单的想法吗?
页: [1] 2
查看完整版本: entmake文本-不工作