明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 22878|回复: 48

[转帖]LISP匿名块程序:

  [复制链接]
发表于 2003-8-15 13:19 | 显示全部楼层 |阅读模式
LISP匿名块程序:
(defun c:cb ()
  (setq pt (getpoint "\n插入点: "))
  (entmake
    (list '(0 . "BLOCK") '(2 . "*U") '(70 . 1) (cons 10 pt))
  )
  (prompt "\n选择实体")
  (setq ss1 (ssget)
i   (sslength ss1)
n   (- 1)
  )
  (repeat i
    (entmake (cdr (entget (ssname ss1 (setq n (1+ n))))))
  )     
  (setq num (entmake '((0 . "ENDBLK"))))
  (entmake (list '(0 . "INSERT") (cons 2 num) (cons 10 pt)))
  (command "erase" ss1 "")
  (princ)
)
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-5-12 11:18 | 显示全部楼层
时间虽久,程序在CAD2010中使用良好,谢谢楼主
发表于 2003-8-18 12:38 | 显示全部楼层
程序与目前明经提供的匿名块程序有相同的缺点,对pline及带属性图块会出错,
更简单的方法可以用正常的方式建图块,再改为匿名块

点评

将70组码改为3则不会出错,但是属性不显示也无法编辑,炸开后则又出现  发表于 2011-10-3 09:41
发表于 2003-8-18 12:42 | 显示全部楼层
龙大哥,你写一个用ActiveX方法的建匿名块的函数吧,用AX方法应该可以解决PLINE和属性块问题吧。
发表于 2003-8-18 16:35 | 显示全部楼层
  1. ;;建立匿名块
  2. ;;by 龙龙仔
  3. (defun C:NONAME_BLK (/ HOLDECHO HOLDBLIP A AA BLKREF)
  4.   (command "_.undo" "_group")
  5.   (setq HOLDECHO (getvar "cmdecho"))
  6.   (setq HOLDBLIP (getvar "blipmode"))
  7.   (setvar "cmdecho" 0)
  8.   (setvar "blipmode" 0)
  9.   (prompt "\n选取对象建立匿名块: ")
  10.   (setq AA (ssget))
  11.   (setq A (rtos (* (getvar "CDATE") 1E8)))
  12.   (if (/= AA NIL)
  13.     (progn
  14.       (command "_.BLOCK" A "0,0" AA "")
  15.       (command "_.INSERT" A "@" "" "" "")
  16.       (setq BLKREF (vlax-ename->vla-object (entlast)))
  17.       (vla-put-name
  18. (vla-item (vla-get-blocks
  19.       (vla-get-activedocument (vlax-get-acad-object))
  20.     )
  21.     (vla-get-name BLKREF)
  22. )
  23. "*U"
  24.       )
  25.       (vlax-release-object BLKREF)
  26.     )
  27.     (alert "\n没有选取任何对象!")
  28.   )
  29.   (setvar "blipmode" HOLDBLIP)
  30.   (setvar "cmdecho" HOLDECHO)
  31.   (command "_.undo" "_end")
  32.   (princ)
  33. )
发表于 2003-8-30 03:13 | 显示全部楼层
强! 佩服龙兄
发表于 2003-8-31 22:40 | 显示全部楼层
强,我顶
发表于 2003-9-3 10:39 | 显示全部楼层
好:
我盯
发表于 2006-1-23 16:34 | 显示全部楼层
龙龙仔发表于2003-8-18 12:38:00程序与目前明经提供的匿名块程序有相同的缺点,对pline及带属性图块会出错,更简单的方法可以用正常的方式建图块,再改为匿名块

说的没错,那怎么把正常的图块改名为匿名块???请指教。。
发表于 2006-1-23 17:03 | 显示全部楼层
用VLISP直接改正常的图块为"*U"
发表于 2006-1-24 11:40 | 显示全部楼层
龙龙仔发表于2006-1-23 17:03:00用VLISP直接改正常的图块为\"*U\"

呵呵,还请明示!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 00:59 , Processed in 0.280104 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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