找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5856|回复: 27

[编程申请] 申请编一个修图块中图线的颜色为选定色的lsp

[复制链接]

已领礼包: 83个

财富等级: 招财进宝

发表于 2014-12-9 09:59:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
申请编一个修图块中图线的颜色为选定色的lsp:
具体要求:1.输入命令后,选择图块(可以同时框选图中多个不同的图块);
             2.选中图块后,命令行中出现几个选项:  修改块中所有图线到一指定图层并颜色随层/修改块中所有图线为一指定颜色并出现"选择颜色对话框",选择颜色后,修改完成,退出例命令.
            多谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-9 10:04:39 | 显示全部楼层
晓东工具箱0.3里面已经有了, 每日插件里面也提供过,去找找。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 83个

财富等级: 招财进宝

 楼主| 发表于 2014-12-9 10:19:59 | 显示全部楼层
@SDSOFT: 我先找找,现正在急着用;
@熊掌设计: 先谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-12-9 10:20:16 | 显示全部楼层
本帖最后由 Free-Lancer 于 2014-12-9 10:25 编辑

这些应用随手写就可以
  1. (defun c:tt (/ _chgBlkcolor blks)
  2.   (defun _chgBlkcolor (blkdef color /)
  3.     (vlax-for obj blkdef
  4.       (vla-put-color obj color)
  5.       (if (and (= (vla-get-objectname obj) "AcDbBlockReference")
  6.                (not (member (vla-get-name obj) blks))
  7.           )
  8.         (_chgBlkcolor (vla-item (fy:acblocks) (vla-get-name obj)))
  9.       )
  10.       (setq blks (cons (vla-get-name obj) blks))
  11.     )
  12.   )
  13.   (fy:begin)
  14.   (if (and (ssget '((0 . "insert")))
  15.            (setq col (acad_colordlg 1))
  16.       )
  17.     (vlax-for blk (fy:cset)
  18.       (_chgblkcolor
  19.         (vla-item (fy:acblocks) (vla-get-name blk))
  20.         col
  21.       )
  22.       (vla-put-color blk col)
  23.     )
  24.   )
  25.   (fy:end)
  26.   (princ)
  27. )



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

使用道具 举报

已领礼包: 83个

财富等级: 招财进宝

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-9 10:32:41 | 显示全部楼层
帮你贴下吧,下面程序可以修改嵌套图块内所有实体的颜色,一改到底。0-随层 256-随块,参数C设置颜色,参数A修改图中所有块。

  1. (defun C:XDTB_BlockRefChgClr (/ clr e e1 elst n na nal ss)
  2.   (defun _blkchgclr (e / elst n)
  3.     (setq elst (xdrx_block->entities e T))
  4.     (foreach n elst
  5.       (xdrx_setpropertyvalue n "color" $xdtb_var_global_blkrefcolor)
  6.     )
  7.     (xdrx_block_update e)
  8.   )
  9.   (if (not $xdtb_var_global_blkrefcolor)
  10.     (setq $xdtb_var_global_blkrefcolor 256)
  11.   )
  12.   (while (progn
  13.            (prompt (strcat "\n**当前颜色:" (cond
  14.                                              ((= 256 $xdtb_var_global_blkrefcolor)
  15.                                                "ByLayer"
  16.                                              )
  17.                                              ((= $xdtb_var_global_blkrefcolor 0)
  18.                                                "ByBlock"
  19.                                              )
  20.                                              (t
  21.                                                (itoa $xdtb_var_global_blkrefcolor)
  22.                                              )
  23.                                            ) "**"
  24.                    )
  25.            )
  26.            (initget "C A")
  27.            (setq e (xdrx_entsel "\n拾取要修改颜色的块实体[C-修改颜色/A-所有块]<退出>:" '((0 . "insert"))))
  28.          )
  29.     (cond
  30.       ((= e "C")
  31.         (if (setq clr (getint (strcat "\n颜色号<" (itoa $xdtb_var_global_blkrefcolor) ">:")))
  32.           (setq $xdtb_var_global_blkrefcolor clr)
  33.         )
  34.       )
  35.       ((= e "A")
  36.         (if (setq ss (ssget "x" '((0 . "insert"))))
  37.           (progn
  38.             (xdrx_setsstodb ss 0)
  39.             (while (setq e1 (xdrx_getentdata 0))
  40.               (setq na (car (xdrx_getpropertyvalue e1 "BlockTableRecord")))
  41.               (if (not (member na nal))
  42.                 (progn
  43.                   (setq nal (cons na nal))
  44.                   (_blkchgclr e1)
  45.                 )
  46.               )
  47.             )
  48.           )
  49.         )
  50.       )
  51.       (t
  52.         (_blkchgclr (car e))
  53.       )
  54.     )
  55.   )
  56.   (princ)
  57. )


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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-9 10:41:12 | 显示全部楼层
你用 图块颜色 搜索论坛就找到插件了:

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

使用道具 举报

已领礼包: 83个

财富等级: 招财进宝

 楼主| 发表于 2014-12-9 10:44:30 | 显示全部楼层
@xdsoft:复制代码运行后出理:
命令: xdtb
**当前颜色:ByLayer**no function definition: XDRX_ENTSEL

点评

这问题还在问,你也注册快10年了,有问题搜索下论坛就知道了。 论坛官方提供的插件,你要加载XDRX_API 和 晓东通用LISP函数库,看我的签名下载。  详情 回复 发表于 2014-12-9 10:47
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-9 10:47:59 | 显示全部楼层
zhuqiqing 发表于 2014-12-9 10:44
@xdsoft:复制代码运行后出理:
命令: xdtb
**当前颜色:ByLayer**no function definition: XDRX_ENTSEL

这问题还在问,你也注册快10年了,有问题搜索下论坛就知道了。
论坛官方提供的插件,你要加载XDRX_API 和 晓东通用LISP函数库,看我的签名下载。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 83个

财富等级: 招财进宝

 楼主| 发表于 2014-12-9 11:04:12 | 显示全部楼层
加载后可以了,多谢!
如果能增加一个框选指定范围内的图块的选项,我的应用就会更方便多了,

点评

图块内的实体颜色,你随便改不是好习惯,你把他们改成BYLAYER, 和BYBLOCK比较好。 这样,你用图层就能控制他们了。选A,把所有图块修改成BYLAYER,然后你去修改层的颜色。  详情 回复 发表于 2014-12-9 11:08
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-9 11:08:15 | 显示全部楼层
zhuqiqing 发表于 2014-12-9 11:04
加载后可以了,多谢!
如果能增加一个框选指定范围内的图块的选项,我的应用就会更方便多了,

图块内的实体颜色,你随便改不是好习惯,你把他们改成BYLAYER, 和BYBLOCK比较好。 这样,你用图层就能控制他们了。选A,把所有图块修改成BYLAYER,然后你去修改层的颜色。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 83个

财富等级: 招财进宝

 楼主| 发表于 2014-12-9 12:51:26 | 显示全部楼层
谢谢!我主要是工作需要,一张图里的各种块都已做好了,但这张图需要作为套入另一张图里作为条件图,在另一张图里,这些块包括嵌套块里的图线需改为一种颜色,但不需改变图层,所以就需要将指定区域内的所有图块(含嵌套块)作一次修改.

点评

把上面代码局部复制出来组合下就能批量了,你试试下面的,如果行,告诉我我发布到插件里面。  详情 回复 发表于 2014-12-9 13:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2014-12-9 13:19:15 | 显示全部楼层
zhuqiqing 发表于 2014-12-9 12:51
谢谢!我主要是工作需要,一张图里的各种块都已做好了,但这张图需要作为套入另一张图里作为条件图,在另一张图 ...

把上面代码局部复制出来组合下就能批量了,你试试下面的,如果行,告诉我我发布到插件里面。

  1. (defun c:tt ( / clr e e1 elst n na nal ss)
  2.   (defun _blkchgclr (e / elst n)
  3.     (setq elst (xdrx_block->entities e T))
  4.     (foreach n elst
  5.       (xdrx_setpropertyvalue n "color" $xdtb_var_global_blkrefcolor)
  6.     )
  7.     (xdrx_block_update e)
  8.   )
  9.   (if (not $xdtb_var_global_blkrefcolor)
  10.     (setq $xdtb_var_global_blkrefcolor 256)
  11.   )
  12.   (if (setq clr (getint (strcat "\n颜色号<" (itoa $xdtb_var_global_blkrefcolor)
  13.                                 ">:"
  14.                         )
  15.                 )
  16.       )

  17.     (setq $xdtb_var_global_blkrefcolor clr)
  18.   )
  19.   (if (setq ss (ssget '((0 . "insert"))))
  20.     (progn
  21.       (xdrx_setsstodb ss 0)
  22.       (while (setq e1 (xdrx_getentdata 0))
  23.         (setq na (car (xdrx_getpropertyvalue e1 "BlockTableRecord")))
  24.         (if (not (member na nal))
  25.           (progn
  26.             (setq nal (cons na nal))
  27.             (_blkchgclr e1)
  28.           )
  29.         )
  30.       )
  31.     )
  32.   )
  33.   (princ)
  34. )



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

使用道具 举报

已领礼包: 83个

财富等级: 招财进宝

 楼主| 发表于 2014-12-9 18:35:06 | 显示全部楼层
{:soso_e181:}
组合起来用很方便实用快捷,在此感谢!

点评

修改了下,加入了普通实体的支持,见: http://bbs.xdcad.net/thread-678051-1-1.html  详情 回复 发表于 2014-12-9 20:06
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 18:32 , Processed in 0.496811 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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