明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7327|回复: 33

[提问] 批量图框加外框源码求完善!!!

[复制链接]
发表于 2018-12-18 09:18 | 显示全部楼层 |阅读模式
1明经币
平时工作中,图纸的图框的都是块,当图框种类多种批量打印的时候就比较麻烦,所以现在求一个以批量块加矩形外框的lsp,,用秋枫的批量多边形(外框)打印就省事了  但是我的图框是由很多图块组成的,所以求大神把以下的源码优化成 只给图框加外框  谢谢啦

(defun c:tt ( / box e i ss)
(defun ebox (e / pa pb)
         (Vlax-Invoke-Method (Vlax-Ename->Vla-Object e ) 'GetBoundingBox 'pa 'pb )
             (setq pa (trans (vlax-safearray->list pa) 0 1)
                   pb (trans (vlax-safearray->list pb) 0 1)
             )
             (list pa pb)
)
        (setq ss (ssget '((0 . "INSERT"))))
        (repeat (setq i (sslength ss))
                (setq e (ssname ss (setq i (1- i)))
                        box (ebox e)
                )
                (vl-cmdf "rectang" (car box) (cadr box))
        )
)


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

最佳答案

查看完整内容

先点选要添加外框的块,然后在框选所有图元

评分

参与人数 1明经币 +1 收起 理由
fangmin723 + 1 退币

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-12-18 09:18 | 显示全部楼层
本帖最后由 fangmin723 于 2021-4-28 10:15 编辑

先点选要添加外框的块,然后在框选所有图元

点评

最佳代码见11楼  发表于 2021-4-28 08:51
这个不是最佳代码 最佳代码在帖子其他人的回复里面  发表于 2021-1-26 09:09
回复

使用道具 举报

 楼主| 发表于 2018-12-18 10:46 | 显示全部楼层
希望大神能够帮忙解决
回复

使用道具 举报

发表于 2018-12-18 11:30 | 显示全部楼层
图框都是散的,搞不了的,没那么智能
回复

使用道具 举报

 楼主| 发表于 2018-12-18 11:34 | 显示全部楼层
start4444 发表于 2018-12-18 11:30
图框都是散的,搞不了的,没那么智能

没有做不到 只有想不到 加油~~~
回复

使用道具 举报

发表于 2018-12-18 11:58 | 显示全部楼层
一下程序源自明经通道

;;;选择对象的最小包围框
(defun C:qq()
(vl-load-com)
(command "undo" "be")
(setvar "cmdecho" 0)
(command "ucs" "w")
(princ "\n请选择物体:")
(while(null(setq en (ssget))))
(setq minx0 1e6 miny0 1e6 maxx0 -1e6 maxy0 -1e6)
(setq i 0)
(repeat (sslength en)
  (setq end (ssname en i))
  (setq end_data (entget end))
  (Min_Max)
  (setq i(1+ i))
)
(setq pmin (list minx0 miny0)
       pmax (list maxx0 maxy0))
(command ".rectang" "non" pmin "non" pmax)
(command "undo" "e")
(princ)
)
;;;子程序,求选集是大外形坐标
(defun Min_Max()
(vla-getboundingbox(vlax-ename->vla-object end) 'minp 'maxp)
(setq minp (vlax-safearray->list minp)
       maxp (vlax-safearray->list maxp))
(setq minx (car minp)
       maxx (car maxp)
       miny (cadr minp)
       maxy (cadr maxp))
(if (> minx0 minx) (setq minx0 minx))
(if (> miny0 miny) (setq miny0 miny))
(if (< maxx0 maxx) (setq maxx0 maxx))
(if (< maxy0 maxy) (setq maxy0 maxy))
)
回复

使用道具 举报

 楼主| 发表于 2018-12-18 13:01 | 显示全部楼层
yanshengjiang 发表于 2018-12-18 11:58
一下程序源自明经通道

;;;选择对象的最小包围框

这个只能单选  没办法框选所有图框批量加外框  还不够完善哦
回复

使用道具 举报

发表于 2018-12-18 15:38 | 显示全部楼层
批量打印不是可以选择相同名称的块打印吗?何必要生成一个多余的外框
回复

使用道具 举报

 楼主| 发表于 2018-12-18 15:42 | 显示全部楼层
lg328084985 发表于 2018-12-18 15:38
批量打印不是可以选择相同名称的块打印吗?何必要生成一个多余的外框

我每种大小的图框分别是一个块 每张图里面这样的块太多了
回复

使用道具 举报

 楼主| 发表于 2018-12-19 12:18 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 19:51 , Processed in 0.161681 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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