明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: yeahyeah

[基础] 矩形面区域内的均匀布置

[复制链接]
发表于 2013-8-5 23:56:07 | 显示全部楼层
学习能力强大啊...

点评

那里啊……现在一些函数都没记全呢……小弟初学,还望前辈指教!  发表于 2013-8-6 19:03
 楼主| 发表于 2013-8-6 19:02:04 | 显示全部楼层

;***********************今天又在单位把程序优化了一下*************************

;本程序的设计目的是:在某矩形面域内按照均匀分布粘贴程序运行前带基点复制的某一图元
(defun c:fb (/ a b)  ;fb为快捷键,用户可根据自己的需要随便改,只要不与CAD中的命令快捷键重复就行
  (setq cmdecho-bak (getvar "cmdecho"))
  (setvar "cmdecho" 0)                    ;关闭命令行信息提示
  (setq pa (getpoint "\n请指定第一点:"))
  (setq pb (getpoint "\n请指定第二点:"))  ;此点可为对角点,也可为同在x轴或y轴上的点
  (setq pax (car pa))
  (setq pay (cadr pa))
  (setq pbx (car pb))
  (setq pby (cadr pb))
  (or (setq a (getreal  "\n横向布置列数<1>:")) (setq a 1.0))
  (if(= pax pbx)(setq a 1.0))
  (or (setq b (getreal  "\n纵向布置行数<1>:")) (setq b 1.0))
  (if(= pay pby)(setq b 1.0))
  (setq m 1)                             ;设置循环变量
  (while (<= m a)                        ;while1
    (setq mx (+ pax (* (/ (- m 0.5) a) (- pbx pax))))
    (setq n 1)
    (while (<= n b)                        ;while2
      (setq my (+ pay (* (/ (- n 0.5) b) (- pby pay))))
      (setq n (+ n 1))
      (setq newp (list mx my 0))
      (command "pasteclip" newp)
    )                                        ;end while2
    (setq m (+ m 1))
  );end while1
  (setvar "cmdecho" cmdecho-bak)
)      ;end defun
发表于 2014-3-3 10:47:55 | 显示全部楼层
yeahyeah 发表于 2013-8-6 19:02
;***********************今天又在单位把程序优化了一下*************************

;本程序的设计目的 ...

你这操作容易出错
要先复制图元才行
这让多数人难办了啊
感觉是让阵列命令复杂化啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 21:30 , Processed in 0.173385 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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