(defun creationbois ( nom dim1 dim2 )
(if (not (tblsearch "block" nom))
(progn
(entmake (list '(0 . "BLOCK") '(8 . "0") (cons 2 nom) (list 10 (/ dim1 2.0) dim2) '(70 . 0)))
(foreach x
(list
(list '(10 0 0) (list 11 dim1 0))
(list(list 10 dim1 0) (list 11 dim1 dim2))
(list(list 10 dim1 dim2) (list 11 0 dim2))
(list(list 10 0 dim2) '(11 0 0))
(list '(10 0 0) (list 11 dim1 dim2))
(list(list 10 0 dim2) (list 11 dim1 0))
)
(entmake (list '(0 . "LINE") '(8 . "_LU BOIS") (car x) (cadr x)))
)
(entmake '((0 . "ENDBLK") (8 . "0")))
)
)
) 好的,谢谢大家!
我本应该把清单放在桌子里的
不管是谁!
Works like a charm现在希望使我的代码更小、更可读。
干杯
总有一天我会成为像你们这样的专家!
不客气-但请注意,列表并不是foreach表达式的“内部”,它仍然构成foreach函数的列表参数(即,您之前代码中的“points”变量)。 如果你有3行、4行、5行或20行,我会采取一种稍微不同的方法来制作代码。每次我制作列表外部使用长度时,你都需要重做代码,以找出有多少行,并使用第n个函数处理10和11个点((1 2)(3 4)(5 6)(7……)
是的,我可能在这里表达了我自己,但这正是我的意思。谢谢李!
不知道你的意思!我的清单总是不同的。你有更多的例子吗。
看到不同的思维方式总是很好。
干杯 如果你看Lees代码,你已经硬编码了6行,你可以传递任意数量的行,例如((0 0)(1 1))((1 1)(11 5 5))((5 5)(22 6)),这将是3行。
好吧,我明白你的意思。但这段代码将始终使用6行。因为它创建了相同类型的块。
但如果我想用它在其他地方,但它将是一个好主意,把它作为你说。
比如说,我想做一个矩形或一个5号的多边形。
谢谢你的建议!
页:
1
[2]