明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3674|回复: 16

[源码] 套图框(练手作)

[复制链接]
发表于 2021-8-26 11:31:43 | 显示全部楼层 |阅读模式
本帖最后由 kkq0305 于 2021-8-26 12:26 编辑
  1. (defun c:tt (/ tk tklst apt bpt ty sc obj)
  2.   (vl-load-com)
  3.   (prompt "选择图框:")
  4.   (setq tk (ssget))
  5.   (setq
  6.     apt
  7.      (car
  8.        (mapcar '(lambda        (x)
  9.                   (vla-GetBoundingBox
  10.                     (vlax-ename->vla-object x)
  11.                     'minpt
  12.                     'maxpt
  13.                   )
  14.                   (list        (vlax-safearray->list minpt)
  15.                         (vlax-safearray->list maxpt)
  16.                   )
  17.                 )
  18.                (vl-remove-if-not
  19.                  '(lambda (x) (= 1 (cdr (assoc 62 (entget x)))))
  20.                  (setq tklst (vl-remove-if-not
  21.                                '(lambda (x) (= 'ENAME (type x)))
  22.                                (apply 'append (ssnamex tk))
  23.                              )
  24.                  )
  25.                )
  26.        )
  27.      )
  28.   )
  29.   (prompt "\n选择需要套图框的图形:")
  30.   (while (setq ty (ssget))
  31.     (setq
  32.       bpt (apply 'append
  33.                  (mapcar '(lambda (x)
  34.                             (vla-GetBoundingBox
  35.                               (vlax-ename->vla-object x)
  36.                               'minpt
  37.                               'maxpt
  38.                             )
  39.                             (list (mapcar '*
  40.                                           '(1.0 1.0)
  41.                                           (vlax-safearray->list minpt)
  42.                                   )
  43.                                   (mapcar '*
  44.                                           '(1.0 1.0)
  45.                                           (vlax-safearray->list maxpt)
  46.                                   )
  47.                             )
  48.                           )
  49.                          (vl-remove-if-not
  50.                            '(lambda (x) (= 'ENAME (type x)))
  51.                            (apply 'append (ssnamex ty))
  52.                          )
  53.                  )
  54.           )
  55.     )
  56.     (setq bpt (list (mapcar '- (apply 'mapcar (cons 'min bpt)) '(5 5))
  57.                     (mapcar '+ (apply 'mapcar (cons 'max bpt)) '(5 5))
  58.               )
  59.     )
  60.     (setq sc (apply 'max
  61.                     (mapcar '/
  62.                             (apply 'mapcar (cons '- (reverse bpt)))
  63.                             (apply 'mapcar (cons '- (reverse apt)))
  64.                     )
  65.              )
  66.     )
  67.     (foreach n tklst
  68.       (setq obj (vla-copy (vlax-ename->vla-object n)))
  69.       (vla-move        obj
  70.                 (vlax-3D-point
  71.                   (mapcar '* '(0.5 0.5) (apply 'mapcar (cons '+ apt)))
  72.                 )
  73.                 (vlax-3D-point
  74.                   (mapcar '* '(0.5 0.5) (apply 'mapcar (cons '+ bpt)))
  75.                 )
  76.       )
  77.       (vla-ScaleEntity
  78.         obj
  79.         (vlax-3D-point
  80.           (mapcar '* '(0.5 0.5) (apply 'mapcar (cons '+ bpt)))
  81.         )
  82.         sc
  83.       )
  84.     )
  85.     (prompt "\n选择需要套图框的图形或[空格(退出)]:")
  86.   )
  87.   (princ)
  88. )

;图框中间矩形框为红色,才能识别。

评分

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

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-9-6 11:57:04 | 显示全部楼层
yanchao316 发表于 2021-9-6 10:14
是换不同单位图框,套框方法统一不了。

https://mp.weixin.qq.com/s/ospTcU37yteunZvN_sYtuQ

只能帮到这了
回复 支持 1 反对 0

使用道具 举报

发表于 2021-9-4 21:40:10 | 显示全部楼层
yanchao316 发表于 2021-8-26 17:38
经常遇到换图框,然后要复制原图名等相关信息。为避免看错、看漏,会将图框套好的图框相对原图形上偏移一定 ...

图框用外部参照的,图框内文字用属性块做,块插入点都在右下角,以后换啥图框,替换一下文件就搞定,100张图全换也花不了5分钟,改属性块命令就是在位编辑,编辑完后, (command "_attsync" "" (ssget) "y")
发表于 2021-8-27 10:23:16 | 显示全部楼层
kkq0305 发表于 2021-8-26 19:49
如果不想缩放图框  sc赋值 1 就行 或者把缩放相关代码删除就行

要缩放,只是想要套好的图框   位置整体  向某一边移动,非完全重合。开始的建议基本上能满足了,谢谢。
发表于 2021-8-26 15:46:44 | 显示全部楼层
本帖最后由 yanchao316 于 2021-8-27 10:23 编辑

测试了,很实用,谢谢分享!

发表于 2021-8-26 17:38:54 | 显示全部楼层
经常遇到换图框,然后要复制原图名等相关信息。为避免看错、看漏,会将图框套好的图框相对原图形上偏移一定距离(距离是相同比例)或右偏移一定距离,改完后,再把图框移到正确位置。请问怎么改下楼主的工具达到这个目的?

本帖子中包含更多资源

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

x
 楼主| 发表于 2021-8-26 17:44:41 | 显示全部楼层
yanchao316 发表于 2021-8-26 17:38
经常遇到换图框,然后要复制原图名等相关信息。为避免看错、看漏,会将图框套好的图框相对原图形上偏移一定 ...

哪里有四个5 可以对这个进行修改
发表于 2021-8-26 18:37:15 | 显示全部楼层
多谢!基本上能满足了。如果是针对不同大小图框,能等比例的偏移就更好了。
 楼主| 发表于 2021-8-26 19:49:00 | 显示全部楼层
yanchao316 发表于 2021-8-26 18:37
多谢!基本上能满足了。如果是针对不同大小图框,能等比例的偏移就更好了。

如果不想缩放图框  sc赋值 1 就行 或者把缩放相关代码删除就行
发表于 2021-9-6 10:14:32 | 显示全部楼层
alexmai 发表于 2021-9-4 21:40
图框用外部参照的,图框内文字用属性块做,块插入点都在右下角,以后换啥图框,替换一下文件就搞定,100 ...

是换不同单位图框,套框方法统一不了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 12:45 , Processed in 0.417614 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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