明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1016|回复: 1

[讨论] 大佬帮我改个做匿名块的程序程序

[复制链接]
发表于 2023-8-4 15:31:36 | 显示全部楼层 |阅读模式
帮我把插入点改成自动获取选择集的中线作为插入点  

;做匿名块的程序
(defun Nblock (ss insertpt / InstPt blocks blk i Objs)
  (setq InstPt (vlax-3d-point insertpt))             ;转化为ActiveX的点
  (setq blocks (vla-get-blocks *DOC))
  (setq blkobj (vla-add blocks InstPt "*U"))         ;定义匿名图块
  (setq i -1)
  (repeat (sslength ss)
    (setq objs (cons (vlax-ename->vla-object (ssname ss (setq i(1+ i)))) objs))
  )                                                  ;把选择集的物体加入到匿名图块
  (vlax-invoke *DOC 'copyobjects objs blkobj)        ;采用 copyobjects方式插入图块
  (mapcar 'vla-delete objs)                          ;删除选择集
  (vla-insertblock *MSP InstPt (vla-get-name blkobj) 1 1 1 0)
  blkobj
)
;;测试程序
(defun C:tt()
  (vl-load-com)
  (setq        *OBJ   (vlax-get-acad-object)
        *DOC (vla-get-activeDocument *OBJ)
        *MSP   (vla-get-Modelspace *DOC)
  )
  (if (setq ss (ssget))                              ;取得选择集
    (if (setq insertpt (getpoint "\n请输入插入点: "));取得插入点
      (nblock ss insertpt)                           ;做匿名图块
    )
  )
)

 楼主| 发表于 2023-8-4 16:28:23 | 显示全部楼层
已经解决  谢谢大佬
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 00:53 , Processed in 0.155247 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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