永发信息网

vb实现选择cad某一图层全部对象

答案:2  悬赏:60  手机版
解决时间 2021-03-03 19:00
  • 提问者网友:辞取
  • 2021-03-03 02:45
vb实现选择cad某一图层全部对象
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-03-03 03:15
Public Declare Function GdiTransparentBlt Lib "gdi32" (ByVal hdc1 As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal W1 As Long, ByVal H1 As Long, ByVal Hdc2 As Long, ByVal x2 As Long, ByVal y2 As Long, ByVal W2 As Long, ByVal H2 As Long, ByVal Color As Long) As Long
gditransparentblt form1.hdc,0,0,form1.picture1.width,picture1.height,form1.picture1.hdc,0,0,picture1.width,picture1.height,false
在取色函数数的最后,不用rgb,用false
全部回答
  • 1楼网友:山君与见山
  • 2021-03-03 04:47
有一段autolisp程序可以修改图层。操作方法:先点击参考图层,然后选择对象,那么所以的对象变为参考图层。 (defun c:xg (/ #os1 &k1 #k1 %k1 &kw i %k2)  (setvar "cmdecho" 0)  (setvar "blipmode" 0)  (setq #os1 (getvar "osmode"))  (setvar "osmode" 0)  (setq &k1 (entsel "\n请选择参考图层"))  (if (= &k1 nil)   (princ "\n没有选择参考图层")  )  (if (/= &k1 nil)   (progn    (setq &k1 (car &k1)  #k1 (entget &k1)  %k1 (assoc 8 #k1)    )    (princ "\n请选择需要改变的对象")    (setq &kw (ssget))    (if (= &kw nil)     (princ "\n没有选择对象")    )    (if (/= &kw nil)     (progn      (setq i 0)      (repeat (sslength &kw)       (setq &k1 (ssname &kw i)     #k1 (entget &k1)     %k2 (assoc 8 #k1)     #k1 (subst  %k1  %k2  #k1 )     i (+ i 1)       )       (entmod #k1)      )      (princ "\n改变图层完成")     )    )   )  )  (setvar "osmode" #os1)  (prin1) );复制到记事本,以【.lsp】为后缀命名,加载autolisp就可以使用。命令为:xg
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯