gvgbabu 发表于 2022-7-6 09:37:29

如何编写2个foreach循环i

大家好
 
如何为附着到此线程的绘图编写lisp程序
我是这样想的
a、 使用getpoint获取左下角坐标
b、 2个foreach循环用于长度和深度
 
但是我不知道如何在程序中编写2个foreach循环
 
谁能帮我找到解决办法吗
 
谢谢

gvgbabu 发表于 2022-7-6 09:43:31

大家好
 
如何编写连接到此线程的绘图lisp程序
我是这样想的
a、 使用getpoint获取左下角坐标
b、 2个foreach循环用于长度和深度
 
但是我不知道如何在程序中编写2个foreach循环
 
谁能帮我找到解决办法吗
 
谢谢
样品图纸

SOliver 发表于 2022-7-6 09:45:13

嵌入式foreach语句的编写方式与单个foreach语句相同

(foreach c someList
(foreach d someOtherList

)
)

只需确保列表元素使用不同的变量名,在本例中为“c”和“d”

gvgbabu 发表于 2022-7-6 09:49:46

谢谢soliver
 
请参阅我的图纸(示例.dwg)
 
我将设置以下两个列表
 
(setq长度(列表1.5 2.5 2.0 3.0))
(setq深度(列表0.23 0.38 0.45 0.6))
 
我的意图是,顶部水平线处于相同的高程,但较低的水平线在深度上不同
 
首先从getpoint中选取左下角
并绘制深度为0.23的垂直线,绘制顶部和底部水平线
长度为1.5
然后从第二个矩形开始,深度为0.38,长度为2.5,它应该从左角开始
ans等等
 
我在问这个Lisp程序怎么写
有人能帮我吗
谢谢

MSasu 发表于 2022-7-6 09:51:50

你不需要两个FOREACH循环来实现这一点(这样做将得到25个矩形,而不是5个)。请检查这是否是您想要的:
 
请注意不要使用“长度”或任何其他受AutoLISP保护的符号来命名变量。
 
当做
米尔恰

gvgbabu 发表于 2022-7-6 09:54:26

谢谢msasu
在ur程序中,矩形重叠。
我的要求如样品所示。图纸
 
你能修改它吗
 
谢谢

MSasu 发表于 2022-7-6 09:58:29

对不起,我现在无法访问AutoCAD;你能贴张照片吗?非常感谢。
 
当做
米尔恰

gvgbabu 发表于 2022-7-6 10:01:05

你好
我附上一个jpeg文件

MSasu 发表于 2022-7-6 10:04:35

因此,请查看以下固定版本:
 
关于,
米尔恰

gvgbabu 发表于 2022-7-6 10:07:44

谢谢Mircea,
我也一样
但是你把选择角作为左上角
如果选定的拾取角点位于左下角
计划是什么
你能修改它吗
 
谢谢
页: [1] 2
查看完整版本: 如何编写2个foreach循环i