乐筑天下

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

程序对带有中心十字标注NEST BLOCK的颜色却有点问题!!!!請指教...

[复制链接]

29

主题

1152

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1268
发表于 2002-11-18 15:32:00 | 显示全部楼层 |阅读模式
;;这是一个修改颜色的程序,
;;几乎对所有对象包括NEST BLOCK均有效
;;但它对带有中心十字标注NEST BLOCK的颜色却有点问题
;;当炸开带有中心十字标注的NEST BLOCK
;;中心十字颜色即恢覆原色
;;可有解决辨法?????
(defun C:CH_COLOR (/ QQ APP APPDOC COL)
  (defun DO_1 (M)
    (vl-catch-all-apply
      (function        (lambda        ()
                  (vla-put-color M COL)
                  (vla-put-dimensionlinecolor M COL)
                  (vla-put-textcolor M COL)
                  (vla-put-extensionlinecolor M COL)
                )
      )
    )
    (if        (and (= (vla-get-objectname M) "AcDbBlockReference")
             (= (vla-get-hasattributes M) :vlax-true)
        )
      (mapcar
        '(lambda (NN)
           (vla-put-color NN COL)
         )
        (vlax-safearray->list
          (vlax-variant-value
            (vla-getattributes
              M
            )
          )
        )
      )
    )
    (if        (= (vla-get-objectname M) "AcDbBlockReference")
      (vlax-for        M1 (vla-item (vla-get-blocks APPDOC) (vla-get-name M))
        (DO_1 M1)
      )
    )
    (if        (= "DIMENSION"
           (cdr (assoc 0 (entget (vlax-vla-object->ename M))))
        )
      (vlax-for        M2
                (vla-item
                  (vla-get-blocks APPDOC)
                  (cdr (assoc 2 (entget (vlax-vla-object->ename M))))
                )
        (DO_1 M2)
      )
    )
  )
  (setq APP (vlax-get-acad-object))
  (setq APPDOC (vla-get-activedocument APP))
  (vla-startundomark APPDOC)
  (setq COL (acad_colordlg 7))
  (defun ACTIVE-SS ()
    (vla-get-activeselectionset APPDOC)
  )
  (setq QQ (ssget (list (cons 410 (getvar "ctab")))))
  (setq QQ (ACTIVE-SS))
  (vlax-for N QQ
    (DO_1 N)
  )
  (vla-update APP)
  (vla-endundomark APPDOC)
  (princ)
)

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
286
发表于 2002-11-19 10:49:00 | 显示全部楼层
您的程序很漂亮,至于圆心标注颜色问题并不完全是程序错误。我试过,您的程序对于图块嵌套(我不知道你说的NEST BLOCK是不是指嵌套图块)没有发现问题,而仅仅只是在处理炸开后的直径或半径的圆心标记时出现您你说的现象。
仔细阅读了您的程序和AutoCAD DXF文档,在程序中,函数DO_1确实将标注颜色更改了,但炸开后,标注成为单一对象,ACAD将从标注样式表中提取标注样式,引出线、文字等有颜色属性的子对象将使用更改后的颜色,而圆心标记我在DXF文档中未找到其颜色属性(甚至在标注样式表也未找到它,否则可以用修改标注样式表的方法解决问题),从而ACAD调用默认颜色绘制圆心标记,以致出现您所说的问题。
我对AutoCAD,尤其是VisualLISP ActiveX函数的熟悉程度和理解程度可能远不及龙龙仔大侠您,您的问题我无法提出解决方案,SRY。不过,您可试着向陈老师提出问题。也欢迎对此有兴趣的网友继续讨论。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-5-28 02:15 , Processed in 0.503994 second(s), 61 queries .

© 2020-2025 乐筑天下

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