明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1493|回复: 17

[提问] 点转成阵列点表

[复制链接]
发表于 2024-5-15 16:16:22 | 显示全部楼层 |阅读模式
假设我有一个基点,我想阵列一些点表,如何写呢?

变量的话,可以给行个数,列个数,行距,列距,这四个变量。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-5-15 20:10:31 | 显示全部楼层
;;;_$ (ttt '(0 0) 10 10 1 1)
;;; ((0 0) (1 0) (2 0) (3 0) (4 0) (5 0) (6 0) (7 0) (8 0) (9 0)
;;;  (0 1) (1 1) (2 1) (3 1) (4 1) (5 1) (6 1) (7 1) (8 1) (9 1)
;;;  (0 2) (1 2) (2 2) (3 2) (4 2) (5 2) (6 2) (7 2) (8 2) (9 2)
;;;  (0 3) (1 3) (2 3) (3 3) (4 3) (5 3) (6 3) (7 3) (8 3) (9 3)
;;;  (0 4) (1 4) (2 4) (3 4) (4 4) (5 4) (6 4) (7 4) (8 4) (9 4)
;;;  (0 5) (1 5) (2 5) (3 5) (4 5) (5 5) (6 5) (7 5) (8 5) (9 5)
;;;  (0 6) (1 6) (2 6) (3 6) (4 6) (5 6) (6 6) (7 6) (8 6) (9 6)
;;;  (0 7) (1 7) (2 7) (3 7) (4 7) (5 7) (6 7) (7 7) (8 7) (9 7)
;;;  (0 8) (1 8) (2 8) (3 8) (4 8) (5 8) (6 8) (7 8) (8 8) (9 8)
;;;  (0 9) (1 9) (2 9) (3 9) (4 9) (5 9) (6 9) (7 9) (8 9) (9 9))
(defun ttt (Insert x y dx dy / ret Vx Vy m n)
  (setq ret nil)
  (setq m 0)
  (setq Vy (cadr Insert))
  (while (< m y)
    (setq n 0)
    (setq Vx (car Insert))
    (while (< n x)
      (setq ret (cons (list Vx Vy) ret))
      (setq n (1+ n))
      (setq Vx (+ Vx dx))
    )
    (setq m (1+ m))
    (setq Vy (+ Vy dy))
  )
  (reverse ret)
)
发表于 2024-5-15 21:19:44 | 显示全部楼层
  1. (defun abc (pt nx ny dx dy / ptn tmp p0)
  2.   "点阵列"
  3.   ;; (abc '(0 0) 10 10 1 1)
  4.   (setq p0 pt)
  5.   (repeat ny
  6.     (setq ptn '())
  7.     (repeat nx
  8.       (setq ptn (cons pt ptn)
  9.             pt (polar pt 0 dx)
  10.       )
  11.     )
  12.     (setq tmp (cons (reverse ptn) tmp)
  13.           p0  (polar p0 (* pi 0.5) dy)
  14.           pt  p0
  15.     )
  16.   )
  17.   (reverse tmp)
  18. )
发表于 2024-5-15 22:23:32 | 显示全部楼层
(defun ptlst (p0 xn yn xd yd / i ii plst px)       
(setq plst '())
(setq i -1)       
(repeat xn (setq plst (cons (setq px (polar p0 (* 0 pi) (* (setq i (1+ i)) xd))) plst))        
(setq ii 0)                
(if (/= yn 1)
(repeat (1- yn) (setq plst (cons (polar px (* 0.5 pi) (* (setq ii (1+ ii)) yd)) plst))));re2         
        );re1
plst               
)

点评

偷懒了,院长莫怪哈~~~  发表于 2024-5-16 13:49
(* 0 pi) ?  发表于 2024-5-16 12:57
发表于 2024-5-15 17:25:29 | 显示全部楼层
两层while循环 polar算点 copy复制 (或vla-Copy复制后 vla-Move移动)
 楼主| 发表于 2024-5-15 17:44:08 | 显示全部楼层
飞雪神光 发表于 2024-5-15 17:25
两层while循环 polar算点 copy复制 (或vla-Copy复制后 vla-Move移动)

我意思是通过表操作来转换。
发表于 2024-5-15 17:57:55 | 显示全部楼层
polar计算点坐标加入表保存,关键要确定基础点的位置,左上?右下?中间?之后点表的排列顺序?
 楼主| 发表于 2024-5-15 18:01:24 | 显示全部楼层
start4444 发表于 2024-5-15 17:57
polar计算点坐标加入表保存,关键要确定基础点的位置,左上?右下?中间?之后点表的排列顺序?

都无所谓,默认左下吧
发表于 2024-5-15 19:33:33 | 显示全部楼层
vlisp好像有阵列函数啊
发表于 2024-5-15 19:41:35 | 显示全部楼层
vla-ArrayRectangular     vla-ArrayPolar  
发表于 2024-5-15 19:42:36 | 显示全部楼层
如果没有实体点   就 ploar   或者向量计算
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 18:59 , Processed in 0.188989 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表