乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 20|回复: 1

怎么创建带有属性的无名块?

[复制链接]

14

主题

32

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
88
发表于 2004-10-24 13:18:00 | 显示全部楼层 |阅读模式
以下是创建无名块的程序,可惜不能容纳带有属性的实体。求助帮我解决这个问题
(defun mc-make-unname-block (ss / count entlist ent blk)
         (entmake '((0 . "BLOCK") (2 . "*U") (70 . 1) (10 0 0 0)))
         (setq count 0)
         (repeat (sslength ss)
                         (setq entlist (entget (setq ent (ssname ss count))))
                         (setq count (1+ count))
                         (entmake entlist)
         )
         (setq count 0)
         (repeat (sslength ss)
                         (setq ent (ssname ss count))
                         (setq count (1+ count))
                         (entdel ent)
         )
         (setq blk (entmake '((0 . "ENDBLK"))))
         (if (princ blk)
                         (entmake (list (cons 0 "INSERT")
                                 (cons 2 blk)
                                 (cons 10 '(0 0 0))
                                         )
                         )
         )
         blk
)
语法         
(mc-make-unname-block ss)         
参数         
ss:选择集
返回值         
无名块         
样例         
(mc-make-unname-block (ssget))         
说明         
函数对选择集中存在具有属性的图块及复杂多义线无效
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-10-24 21:05:00 | 显示全部楼层
  1. (defun c:unblock(/ doc mspace objs pt pt blkdef)
  2.    (vl-load-com)
  3.    (setq doc (vla-get-activedocument (vlax-get-acad-object))
  4.   mspace (vla-get-modelspace doc)
  5.                ss (ssget)
  6.   objs (selectionset->vla-object-list ss)
  7.                pt (getpoint "\n选择插入点:")
  8.                blkdef (blk:make-block pt "*U" objs doc))
  9.    (mapcar 'vla-delete objs)
  10.    (vla-insertblock mspace (vlax-3d-point pt) (vla-get-name blkdef) 1 1 1 0)
  11.    (mapcar 'vlax-release-object (list doc mspace blkdef))
  12.    (princ)
  13. )
  14.    
  15. ;BLK:MAKE-BLOCK_______________________________________________
  16. ;Creates a block out of list of vla-objects
  17. ;Arguments
  18. ; 1) insertion point
  19. ; 2) block name
  20. ; 3) list of entities as vla-objects
  21. ; 4) document object
  22. ; 5) Use "*u" as the blockname argument to this function
  23. ;       TO MAKE AN UNNAMED BLOCK(defun blk:make-block (ip blockname vla-objects doc / blkobj sArray)
  24.    (setq
  25.        blkobj (vla-add (vla-get-blocks doc) (vlax-3d-point ip) blockname)
  26.        sArray
  27.        (vlax-safearray-fill
  28.            (vlax-make-safearray
  29.                vlax-vbObject
  30.                (cons 0 (1- (length vla-objects)))
  31.            )
  32.            vla-objects
  33.        )
  34.    )
  35.    (vla-copyobjects doc sArray blkobj)
  36.    blkobj
  37. )
  38. ;;;
  39. (defun selectionset->vla-object-list (sset / thelist idx)
  40.    (setq  thelist  '()
  41.   idx -1
  42.    )
  43.    (repeat (sslength sset)
  44.        (setq thelist (append thelist
  45.          (list  (vlax-ename->vla-object
  46.            (ssname sset (setq idx (1+ idx)))
  47.         )
  48.          )
  49.        )
  50.        )
  51.    )
  52. )
  53. ;;;
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-20 21:36 , Processed in 1.482842 second(s), 57 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表