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中设置颜色?如果有什么问题? 代码可能会失败,因为当条件不满足时,IF测试将返回(并附加)nil。
对于第二个问题,颜色存储为DXF代码62下的整数;如果此代码不存在,则颜色被视为“ByLayer”。 你能发布变量列表(elist)吗? ((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示例 您是否尝试调整代码以考虑假设测试返回? 我放弃了在entmake中使用if,这很好。还有:假设我有一张画,画上有很多点,在这些点上插入了文字。如果我选择(高亮显示)10个点,我如何选择这10个已经选择(高亮显示)的点周围的所有实体,距离。。。5个单元?已经为这样的任务制作了lisp? 看来你解决了你的问题。真为你高兴。
对于这种选择,我假设您正在寻找一种以所述点为中心的“选择圆”。这是正确的吗? 是的,是正确的,我想这样做:首先选择几个点,然后插入“选择圆”的半径值。 我看到的最接近的解决方法是使用选择多边形(检查SSGET函数的WP和CP模式)。然后,您将计算与所述中心等距的十几个或两个点,然后使用它们使用上述模式之一创建所需的选择集。 或者使用wp或cp进行ssget,使用一个正方形AxA的多边形,其中a=“选择圆”的直径,然后从选择集中删除距离“中心”大于半径值的文本?
还有其他更简单的想法吗?
页:
[1]
2