[请教]有什么快速方法写个10x10的坐标点集
本帖最后由 tigcat 于 2024-3-1 01:13 编辑如题:有什么好办法可以快速写个如下的坐标点集,其中(0 0)可以是用getpoint获取的点,点的X和Y的距离可以指定,下面示意坐标以(0 0)为起点,X和Y的间距都为100。
(0 0)(100 0)(200 0)....(900 0)
(0 100)(100 100)(200 100)...(900 100)
(0 200)(100 200)(200 200)...(900 200)
...
(0 900)(100 900)(200 900)...(900 900)
都是night cat:lol ;; 把第一个作为变量点,后面的点作为向量,变量点与每一个向量相加
(defun C:TT (/ P)
(if (setq P (getpoint "\n指定点: "))
(cons P
(mapcar '(lambda (P1) (mapcar '+ P P1))
'((100 0) (200 0) (300 0) (400 0) (500 0) (600 0) (700 0) (800 0) (900 0)
;; 此处自行添加完整的点集
)
)
)
)
) caoyin 发表于 2024-3-1 01:23
;; 把第一个作为变量点,后面的点作为向量,变量点与每一个向量相加
(defun C:TT (/ P)
(if (setq P (g ...
谢谢caoyin版主指点,我自己写了一个,不太简洁
(setq pt0 (getpoint "\n输入起始点"))
(setq pt0 (list (car pt0)(cadr pt0)))
(setq lst nil)
(setq ii 0)
(setq flag T)
(repeat 16
(setq lst (cons pt0 lst))
(setq pt0 (mapcar '+ '(10 0) pt0))
)
(setq lst0 lst)
(repeat 15
(setq lst (mapcar '(lambda(x)(apply '(lambda(a b)(list a (+ 10 b)))x)) lst))
(setq lst0 (append lst lst0))
) tigcat 发表于 2024-3-1 01:41
谢谢caoyin版主指点,我自己写了一个,不太简洁
(setq pt0 (getpoint "\n输入起始点"))
(setq pt0...
还能简化
(defun tt(pt m n dis / i lst1 lst2)
(setq i (- (car pt)dis))
(repeat m (setq lst1 (cons (setq i (+ dis i)) lst1)))
(setq i (- (cadr pt)dis))
(repeat n (setq lst2 (cons (setq i (+ dis i)) lst2)))
(setq lst1 (reverse lst1)
lst2 (reverse lst2))
(mapcar '(lambda (x) (mapcar '(lambda (y) (list y x)) lst1))
lst2))
(tt '(123 456)10 10 100) 本帖最后由 kucha007 于 2024-3-1 10:07 编辑
while方便一点
(defun K:Grid->100 (StaPT / x y PTLst)
(setq x 0.0 y 0.0)
(while (<= x 900)
(while (<= y 900)
(setq PTLst (cons (list x y) PTLst))
(setq y (+ y 100))
)
(setq x (+ x 100))
(setq y 0)
)
(mapcar '(lambda (XX) (mapcar '+ StaPT XX)) (reverse PTLst));累加
)
如果要生成实体点集也可以这样
(progn ;指定起点和行间距、列间距生成10X10的阵列点集
(setq p (getpoint "\n 指定起点"))
(entmakex (list '(0 . "POINT") (cons 10 p)))
(setq hjj (getdist "\n 指定y增量") ljj (getdist "\n 指定x增量"))
(command "array" (entlast) "" "R" 10 10 hjj ljj)
) 太感谢各位大佬出手,集思广益 夏生生 发表于 2024-3-1 08:59
还能简化
谢谢大佬简化 kucha007 发表于 2024-3-1 09:35
while方便一点
谢谢,这个写的好
页:
[1]
2