明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5864|回复: 73

[经验] CAD一键动态块2

  [复制链接]
发表于 2025-2-18 15:14:02 | 显示全部楼层 |阅读模式
本帖最后由 null. 于 2025-2-18 15:23 编辑

自己持续研究,终于搞定,可一键生成动态块!敬请关注!
用LSP代码写:
原讨论贴:一键生成动态块
http://bbs.mjtd.com/forum.php?mo ... 1&extra=#pid1008261
传上来怕被反译!源码直接收币。


V4.15补丁下T30天正软件V1.0互联版及(个人版)










本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2025-2-18 15:44:42 | 显示全部楼层
本帖最后由 kozmosovia 于 2025-2-18 15:46 编辑

用一堆command实现,图形小时还好,图形大时,来回切换显示会比较晃眼睛的。不过的确在VLISP下,也没有其他的方式。

应该直接定义好可见性里面可见的图块,然后用块名代替可见性状态01234,更好的识别。

本帖子中包含更多资源

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

x

点评

再加一个功能,能识别转角标注,按照选定的设定的规则,如转角标注变为拉伸约束标注,就更牛了。就是对象识别功能有点麻烦。  发表于 2025-3-20 00:45
都优秀,“块中块”牛!刚开始我也想的是替换,但不是用块的方式;没成功!  发表于 2025-2-18 16:59
整理图块或者希望图块能实现样式类型切换时,还是有一定的价值。毕竟一方面很多人不会做,另一方面手动操作还是比较繁琐的,尤其是可见性多的时候。  发表于 2025-2-18 16:07
就是玩玩,没有什么实用价值  发表于 2025-2-18 15:49
回复 支持 反对

使用道具 举报

发表于 2025-3-6 10:05:36 | 显示全部楼层
本帖最后由 香远益清 于 2025-3-6 10:10 编辑

这个功能10几年前就在该站上有源代码了,还用大家花钱?我给一个,如下:
;;;【命令:KSJK】快速建块;;
(vl-load-com)
(defun Makeunnameblk (entss / boundingbox pois cenpoi)
   (defun boundingbox (ss / i ent obj pta ptb dwcorn upcorn ptlist x y)
     (setq i 0
           dwcorn nil
           upcorn nil
     )
     (repeat (sslength ss)
       (setq ent (ssname ss i))
       (setq obj (vlax-ename->vla-object ent))
       (vla-GetBoundingBox obj 'pta 'ptb)
       (setq dwcorn (cons (vlax-safearray->list pta) dwcorn))
       (setq upcorn (cons (vlax-safearray->list ptb) upcorn))
       (setq i (1+ i))
     )
     (setq ptlist (append dwcorn upcorn))
     (setq x (mapcar 'car ptlist))
     (setq y (mapcar 'cadr ptlist))
     (list (list (apply 'min x) (apply 'min y))
           (list (apply 'max x) (apply 'max y))
     )
   )
   (if entss
     (progn
       (setq pois (boundingbox entss))
       (command"cutclip" entss "")
       (command"pasteblock" (car pois))
     )
   )
   (command "change" (entlast) "" "P" "la" "0" ""
            "change" (entlast) "" "P" "c" "bylayer" "")
;给块重命名
    (setq ent (entget (entlast)))
    (setq name (cdr (assoc 2 ent))) ;取得块名name
    (setq blkname (strcat "K_" (rtos (* (getvar "cdate") 1e8))));给块名设定时间
    (command "-rename" "b" name blkname)
    (princ (strcat "\n新图块 <" blkname "> 绘制完成. "))
)

(defun c:KSJK(/ entss)
    (princ "快速建块(块基点为左下点)")
    (setq entss (ssget))
    (makeunnameblk entss)
   (princ)
)
;;;========================END=====================;;
回复 支持 反对

使用道具 举报

发表于 2025-2-18 19:34:13 | 显示全部楼层
用处不大                  
回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-18 15:28:24 来自手机 | 显示全部楼层
这个代码用AI写的吧

点评

哈哈,AI挺不错的  发表于 2025-2-18 16:15
我很不想承认,非常不想承认。好吧,是DeepSeek-R1写的。  发表于 2025-2-18 16:01
回复 支持 1 反对 0

使用道具 举报

发表于 2025-2-18 15:16:17 | 显示全部楼层
学习一下,感谢分享
回复 支持 反对

使用道具 举报

发表于 2025-2-18 15:35:18 | 显示全部楼层
顶一个,期待中
回复 支持 反对

使用道具 举报

发表于 2025-2-18 15:46:30 | 显示全部楼层
看一看,感谢分享
回复 支持 反对

使用道具 举报

发表于 2025-2-18 15:46:56 | 显示全部楼层
很好→很棒!很好~很棒!!很好……很棒!!!
回复 支持 反对

使用道具 举报

发表于 2025-2-18 15:48:42 | 显示全部楼层
谢谢分享!学习一下!
回复 支持 反对

使用道具 举报

发表于 2025-2-18 16:38:42 | 显示全部楼层
谢谢分享了
回复 支持 反对

使用道具 举报

发表于 2025-2-18 16:42:02 | 显示全部楼层
感谢分享 感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-1 09:28 , Processed in 0.282760 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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