找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: XDSoft

[研讨] 块中套块的实体修改其中的图元属性的实现

[复制链接]
发表于 2013-4-27 22:50:42 | 显示全部楼层
就是发完贴(用lisp格式选项),显示程序段还是和其他文本一样,没有行号,底色等。但是第二天又正常了,是不是有人帮我改过?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-4-27 23:06:45 来自手机 | 显示全部楼层
发完后要刷新下才行!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-4-29 18:04:17 | 显示全部楼层
好像块内有属性字时候有点问题!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-29 18:17:28 | 显示全部楼层
wowan1314 发表于 2013-4-29 18:04
好像块内有属性字时候有点问题!!!

没明白,什么情况?测试的哪个朋友的代码有问题?把你的图贴上来吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-4-29 18:28:42 | 显示全部楼层
本帖最后由 wowan1314 于 2013-4-29 18:33 编辑
XDSoft 发表于 2013-4-29 18:17
没明白,什么情况?测试的哪个朋友的代码有问题?把你的图贴上来吧。

就是有属性块内! 有属性文字的情况下所有的代码都不理想!!

怎么传DWG文件??

测试.zip

7.65 KB, 下载次数: 8, 下载积分: D豆 -1 , 活跃度 1

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-29 18:37:26 | 显示全部楼层
wowan1314 发表于 2013-4-29 18:28
就是有属性块内! 有属性文字的情况下所有的代码都不理想!!

怎么传DWG文件??

你把上面代码测试的图片截取下贴论坛,看看你的图属性变成啥样了。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-4-29 19:15:56 | 显示全部楼层
本帖最后由 wowan1314 于 2013-4-30 11:23 编辑
XDSoft 发表于 2013-4-29 18:37
你把上面代码测试的图片截取下贴论坛,看看你的图属性变成啥样了。

以院长的程序为例:图中仅改变了线条颜色! 而文字颜色没改变!

其中文字为属性字。所以对于有属性块内的属性字要单独处理下!
原图.jpg
运行程序后.jpg
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

 楼主| 发表于 2013-4-29 21:06:58 | 显示全部楼层
wowan1314 发表于 2013-4-29 19:15
以院长的程序为例:图中仅改变了线条颜色! 而文字颜色没改变!

院长来看看。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2013-4-30 11:30:19 | 显示全部楼层
测试发现。

仅“处处问题鸟”的纯LISP代码能处理属性字(但最外层的属性字没处理)!

其他VLA方法的代码都没处理属性字!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 8121个

财富等级: 富甲天下

发表于 2013-4-30 12:26:09 | 显示全部楼层
本帖最后由 Highflybird 于 2013-4-30 12:30 编辑

5#楼的代码跟我以前写的很相似。
这里我贴出一个简化版本的。
请点击此处下载

查看状态:需购买或无权限

您的用户组是:游客

文件名称:changecolorSimple.LSP 
下载次数:34  文件大小:1.49 KB 
下载权限: 不限 以上  [免费赚D豆]


[pcode=lisp,true];;;=====================================================
;;;功能:修改实体,特别适用于于块及其嵌套块            
;;;输入:Obj -- 实体 ,DoFunc -- 要修改的函数           
;;;输出:无.                                            
;;;=====================================================
(defun NestedModify (obj DoFunc / name blks)
  (DoFunc obj)                                                ; 要加出错处理,因为有的可能被锁定
  (setq name (vla-get-objectname obj))
  (if (or (= name "AcDbBlockReference") (= name "AcDbMInsertBlock"))
    (progn
      (foreach Att (vlax-invoke Obj 'GetAttributes)        ; 这一行用于处理属性
        (DoFunc Att)                        
      )
      (setq name (vla-get-name obj))                        ; 取得块名
      (vlax-for        n (vla-item *BLK name)
        (NestedModify n DoFunc)                                ; 递归进去,用于处理嵌套
      )
    )
  )
)

;;;=====================================================
;;;测试程序                                             
;;;=====================================================
(defun C:Test (/ *BLK ent obj i sel)
  (defun DoFunc (obj)                                       
    (vla-put-color obj Acred)                                ; 这里Dofunc仅是改变颜色,可自定义
  )
  (setq *BLK (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))))
  (if (setq sel (ssget '((0 . "INSERT"))))
    (repeat (setq i (sslength sel))
      (setq ent (ssname sel (setq i (1- i))))
      (setq obj (vlax-ename->vla-object ent))
      (NestedModify obj DoFunc)                                ; 修改块内实体
    )
    (princ "\n你没有选择物体!")
  )
  (princ)
)

(vl-load-com)
(princ "\n测试命令是:Test")
(princ)
[/pcode]

我这里给出的是一个通用函数,就是说,你不仅仅可以更改颜色,你甚至还可以用来查找替换之类的。
或者统计数量等等。

点评

高飞鸟的OK! 属性字也没问题!  发表于 2013-4-30 13:51
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

发表于 2013-4-30 13:32:42 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 3919个

财富等级: 富可敌国

发表于 2013-10-10 23:18:33 | 显示全部楼层
Highflybird 的可改属性及实体,Free-Lancer的第一个也能改实体,:lol
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2015-1-29 16:06:57 | 显示全部楼层
方法听好,没找个合适的工具。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 691个

财富等级: 财运亨通

发表于 2016-10-28 10:20:51 | 显示全部楼层
高手论剑,坐板凳学习!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

发表于 2019-6-15 14:03:02 | 显示全部楼层
还不是我我想要的结果,
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-23 01:17 , Processed in 0.479428 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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