明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 自贡黄明儒

[讨论] 块增加对象

  [复制链接]
发表于 2015-6-17 11:05:52 | 显示全部楼层
老黄专研精神可嘉
发表于 2015-6-17 13:53:02 | 显示全部楼层
自贡黄明儒 发表于 2015-6-16 22:50
entmake???  不会吧?

因为时间关系,就用圆来做演示,纯lisp,其他类似,方法不局限这一种,可以考虑混合command移动和分解命令。





本帖子中包含更多资源

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

x

点评

什么意思?为什么不是贴上代码?  发表于 2015-6-17 19:32
发表于 2015-6-17 14:42:02 | 显示全部楼层
看看有什么用处
发表于 2015-6-17 15:37:52 | 显示全部楼层
回复,看帖!
发表于 2015-6-17 18:47:36 | 显示全部楼层
本帖最后由 q3_2006 于 2015-6-17 18:52 编辑

改了下G版的代码...也以加圆为例哈...因为代码量稍微少点...
(defun c:tt ( / a bk blkdef doc e el i name Newobjs obj objs p1 p2 sn v)
  (while
    (and (setq bk (car (entsel "\n点取图块:")))
    (princ "\n选择要增加块内图元:")
    (setq sn (ssget))
    (= "INSERT" (cdr (assoc 0 (setq el (entget bk)))))
    )
     (setq name (cdr (assoc 2 el))
             p1 (cdr (assoc 10 el))
     )
     (setq blkdef (vla-item
                    (vla-get-blocks
                      (setq
                        doc (vla-get-ActiveDocument (vlax-get-acad-object))
                      )
                    )
                    name
                  )
     )
     (vlax-for obj blkdef
       (setq objs (cons obj objs))
     )
     (setq Newobjs (vlax-invoke
                     doc
                     'CopyObjects
                     objs
                     (vla-get-ModelSpace doc)
                   )
     )
     (foreach a objs (vla-delete a))
     (repeat (setq i (sslength sn))
             (setq e (ssname sn (setq i (1- i)))
                     e (vlax-ename->vla-object e)
                     p2 (Vlax-Get e 'Center )
                     v (mapcar '- p2 p1)
                     )
             (Vlax-Put-Property e 'Center (Vlax-3d-Point v) )
             (setq Newobjs (cons e Newobjs))
     )
     (vlax-invoke doc 'CopyObjects Newobjs blkdef)
     (foreach a Newobjs (vla-delete a))
     (vla-regen doc :vlax-true)
  )
  (princ)
)

评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 这个同Mac Lee的差不多

查看全部评分

发表于 2015-6-17 19:01:49 | 显示全部楼层
本帖最后由 lucas_3333 于 2015-6-17 19:10 编辑
q3_2006 发表于 2015-6-17 18:47
改了下G版的代码...也以加圆为例哈...因为代码量稍微少点...
(defun c:tt ( / a bk blkdef doc e el i nam ...

;;块增加对象,我以往用Mac Lee的那个程序,但存在一个问题,增加对象后,框选增加的对象时,选择不到块。

在低版CAD (如CAD2007)中,楼主提到的问题还是没解决哟 !

黄大师, 换个高版CAD吧, 用2010版CAD是没有此问题的

点评

我用16,但是程序必须考虑其它人用,这样才有意义  发表于 2015-6-17 19:33
发表于 2015-6-17 19:13:30 | 显示全部楼层
lucas_3333 发表于 2015-6-17 19:01
在低版CAD (如CAD2007)中,楼主提到的问题还是没解决哟 !

黄大师, 换个高版CAD吧, 用2010版CAD是没 ...

我没用过..低版本也没试过..这个还有版本问题哈...
发表于 2015-6-17 21:44:33 | 显示全部楼层
土办法
发表于 2015-6-18 10:21:53 | 显示全部楼层
黄大师所说这个问题
;;块增加对象,我以往用Mac Lee的那个程序,但存在一个问题,增加对象后,框选增加的对象时,选择不到块。

这个应该是低版本的BUG, 我不认为编程能解决这个问题,要不关闭再开?
发表于 2015-6-19 09:42:39 | 显示全部楼层

回复,学习学习!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-18 08:59 , Processed in 0.171999 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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