明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 722|回复: 9

[讨论] 有问,请问怎样将点先对象改框选对象?

[复制链接]
发表于 2019-2-28 23:48:49 | 显示全部楼层 |阅读模式
各位大侠,在社区里找到xiang19751218的
定数等分复制图形代码,我想要更改点先对象改框选对象。请问怎样改?

(defun c:tes  ( / en xfx pt1 pt2 zljl sl)
(setvar 'cmdecho 0)
(setq en (car(entsel "\n选择对象:")))
(setq xfx (car(apply 'mapcar(cons '- (bwh en)))))
(setq pt1 (getpoint "\n指定第一点:"))
(setq pt2 (getpoint "\n指定第二点:"))
(setq zljl (- (distance pt1 pt2) (abs xfx) ) )
(setq sl (getint "输入间隔数<2>:") )
(if (not sl) (setq sl 2))
(command "-array" en "" "r" 1 sl (/ zljl (float sl))  )
(setvar 'cmdecho 1)
(princ)
)


(defun bwh (en / p1 p2)
  (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
  (setq p1 (vlax-safearray->list p1)
        p2 (vlax-safearray->list p2)
  )
  (list p1 p2)
)

本帖子中包含更多资源

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

x
发表于 2019-3-1 13:52:57 | 显示全部楼层
本帖最后由 start4444 于 2019-3-1 14:25 编辑

把自定义函数改为选集外框函数就行了,我测试你的原代码根本就不是那个效果,阵列间距搞错了

(defun c:tes( / ss xfx pt1 pt2  sl)
(setvar 'cmdecho 0)
(setq ss (ssget))
(setq xfx (car(apply 'mapcar(cons '- (bwhss ss)))))
(setq pt1 (getpoint "\n指定第一点:"))
(setq pt2 (getpoint pt1 "\n指定第二点:"))
;(setq zljl (- (distance pt1 pt2) (abs xfx) ) )
(setq sl (getint "输入间隔数<2>:") )
(if (not sl) (setq sl 2))
(command "-array" ss "" "r" 1 sl (/ (distance pt1 pt2) (1- sl)))
(setvar 'cmdecho 1)
(princ)
)
(defun bwhss (ss / p1 p2)
(setq BLK_BOUND (ACET-GEOM-SS-EXTENTS ss t))
(setq P1 (car BLK_BOUND))
(setq P2 (cadr BLK_BOUND))
(list p1 p2))

评分

参与人数 1明经币 +1 收起 理由
sdls + 1 很给力!

查看全部评分

发表于 2019-3-1 15:21:11 | 显示全部楼层
start4444 发表于 2019-3-1 13:52
把自定义函数改为选集外框函数就行了,我测试你的原代码根本就不是那个效果,阵列间距搞错了

(defun c:t ...

请教,我运行时提示, 错误: no function definition: ACET-GEOM-SS-EXTENTS
发表于 2019-3-1 15:35:36 | 显示全部楼层
sunny_8848 发表于 2019-3-1 15:21
请教,我运行时提示, 错误: no function definition: ACET-GEOM-SS-EXTENTS

这个我也是论坛看到了,我能用,应该要装了ET才行吧
 楼主| 发表于 2019-3-1 20:42:52 | 显示全部楼层
start4444 发表于 2019-3-1 13:52
把自定义函数改为选集外框函数就行了,我测试你的原代码根本就不是那个效果,阵列间距搞错了

(defun c:t ...

十分感谢!你随手一码,解决了我的一个工作难题!
发表于 2019-3-3 12:27:01 | 显示全部楼层
论坛有个递增刷,可快速实现你的目的,使用性更强
 楼主| 发表于 2019-3-3 19:12:54 | 显示全部楼层
alexmai 发表于 2019-3-3 12:27
论坛有个递增刷,可快速实现你的目的,使用性更强

只看到有文字的增递刷,看到有图形的增递刷!再说我是想要在两次之间确定数量或等分!
发表于 2019-3-4 16:47:58 | 显示全部楼层
start4444 发表于 2019-3-1 15:35
这个我也是论坛看到了,我能用,应该要装了ET才行吧

谢谢,确实可以
发表于 2019-3-6 11:25:55 | 显示全部楼层
sdls 发表于 2019-3-3 19:12
只看到有文字的增递刷,看到有图形的增递刷!再说我是想要在两次之间确定数量或等分!

把你想要的东西建个块,等分用DIVIDE,距离偏移用MEASURE,按提示选 block ,写入block文件名,就行了
 楼主| 发表于 2019-3-6 21:02:46 | 显示全部楼层
alexmai 发表于 2019-3-6 11:25
把你想要的东西建个块,等分用DIVIDE,距离偏移用MEASURE,按提示选 block ,写入block文件名,就行了

谢谢,这也是个办法!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 01:20 , Processed in 0.201540 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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