统一网名 发表于 2024-9-10 10:18:17

zilong136 发表于 2024-9-10 01:45
你没听懂我的意思,我是说如何写一个LISP,可以一键生成这些矩形小方格


[*](defun c:tt (/ dzl dzl2 hcs hdzl jj jx1c jx1k jx2c jx2k lsqd p0 qd scs sdzl)
[*](setq
[*]    jx1c 240 jx1k 240 ;矩形区域的长、宽
[*]    jx2c 4jx2k 4 ;画小矩形的长、宽
[*]    jj 20 ;间距
[*]);该部分可以更改为对话框
[*](setq dzl2 0)
[*](setq hdzl (+ jx2c jj))
[*](setq sdzl (+ jx2k jj))
[*](setq hcs (fix (/ jx1c hdzl)))
[*](setq scs (fix (/ jx1k sdzl)))
[*](setq p0 (getpoint "\n点选起点:"))
[*](repeat scs
[*]    (setq lsqd (list(car p0)(-(cadr p0)dzl2)))
[*]    (setq dzl 0)
[*]    (repeat hcs
[*]      (setq qd (list(+(car lsqd)dzl)(cadr lsqd)))
[*]      (huajuxing qd jx2c jx2k)
[*]      (setq dzl (+ dzl hdzl))
[*]    )
[*]    (setq dzl2 (+ dzl2 sdzl))
[*])
[*])
[*]
[*](defun huajuxing(qd cd kd / djd )
[*](setq djd (list(+(car qd)cd)(-(cadr qd)kd)));左上 右下画矩形
[*](command "rectang" "non" qd "non" djd);画矩形
[*])











qazxswk 发表于 2024-9-10 16:26:36

可以试试这个。
http://bbs.mjtd.com/thread-72956-1-1.html

zilong136 发表于 2024-9-10 23:52:02

统一网名 发表于 2024-9-10 10:18
[*](defun c:tt (/ dzl dzl2 hcs hdzl jj jx1c jx1k jx2c jx2k lsqd p0 qd scs sdzl)
[*](setq
[ ...

我是说这个代码可以根据任意给定的矩形自己来调整这些小方格:
1.指定大矩形对角两点
2.设置xy两个方向小方格的数目以及每小格的间距
3.自动生成标题所示图形。

zilong136 发表于 2024-9-11 01:05:20

qazxswk 发表于 2024-9-10 16:26
可以试试这个。
http://bbs.mjtd.com/thread-72956-1-1.html

这个可以,谢谢。

zilong136 发表于 2024-9-11 11:32:22

kzd2004 发表于 2024-9-10 08:07
已上传附件,你看一下。

你要上传源文件啊

zilong136 发表于 2024-9-11 11:35:09

统一网名 发表于 2024-9-10 10:18
[*](defun c:tt (/ dzl dzl2 hcs hdzl jj jx1c jx1k jx2c jx2k lsqd p0 qd scs sdzl)
[*](setq
[ ...

1、只需要设置XY两个方向矩形数目及间距
2、大矩形满铺。

kwok 发表于 2024-9-11 11:52:41

zilong136 发表于 2024-9-11 11:35
1、只需要设置XY两个方向矩形数目及间距
2、大矩形满铺。


感觉象是要这样

kzd2004 发表于 2024-9-11 11:54:32

kwok 发表于 2024-9-11 11:52
感觉象是要这样

其实还有一个办法,填充也是一个思路。

zilong136 发表于 2024-9-11 11:54:36

本帖最后由 zilong136 于 2024-9-11 11:56 编辑

kwok 发表于 2024-9-11 11:52
感觉象是要这样
对的,这样的话一次性生成就完事了,不用去等分画线,再修剪:handshake,求分享

zilong136 发表于 2024-9-11 11:57:52

统一网名 发表于 2024-9-9 08:28
(defun c:tt (/ a b ename i len lst pts ss dx1)
      (setq ss (ssget '((0 . "LINE"))))
      ( ...

这个一键打断很好用,能不能再搞一个一键合并?
页: 1 2 [3] 4
查看完整版本: 如何批量修剪?