明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1867|回复: 5

怎样在activex中实现选择过滤

[复制链接]
发表于 2012-6-26 15:07:01 | 显示全部楼层 |阅读模式
本帖最后由 liu_kunlun 于 2012-6-26 15:28 编辑

怎样实现选择过滤
    我打算用批处理方法收集文件夹内所有图纸的图框信息,这就必须采用activex方法选出图纸中的具有属性的块.
    先想实现最基本的将块过滤出来:
    在建立选择集ss之后,建立过滤数据:
    1) 数据类型
    (setq dtp (vlax-make-safearray vlax-vbinteger '(0 . 0)))
    (vlax-safearray-fill dtp (list 0 ))
    2) 数据
    (setq dt (vlax-make-safearray vlax-vbstring  '(0 . 0)))
    (vlax-safearray-fill dt (list "INSERT"))
    用 (vlax-invoke-method ss 'Select acSelectionSetAll dtp  dt)未实现过滤,选到了整个图形的内容
    用(vlax-invoke-method ss 'Select acSelectionSetCrossing  (vlax-3D-point (getpoint)) (vlax-3D-point (getpoint)) dtp  dt)显示"参数FilterType(位于Select中)无效"
    用(vlax-invoke-method ss 'Select acSelectionSetCrossing  (vlax-3D-point (getpoint)) (vlax-3D-point (getpoint)) 0  "INSERT")也显示"参数FilterType(位于Select中)无效"
    请高手指教
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-6-26 18:21:49 | 显示全部楼层
vla的select方法是好像有问题。
发表于 2012-6-26 18:53:54 | 显示全部楼层
本帖最后由 Gu_xl 于 2012-6-26 19:00 编辑

  1. (vla-select
  2.   (setq
  3.     ssset (vla-get-ActiveSelectionSet
  4.                      (vla-get-ActiveDocument (vlax-get-acad-object))
  5.                    )
  6.           )
  7.   acSelectionSetAll
  8.   (vlax-safearray-fill
  9.     (vlax-make-safearray
  10.       vlax-vbInteger
  11.       (cons 0 1)
  12.     )
  13.     '(0 8)
  14.   )
  15.   (vlax-safearray-fill
  16.     (vlax-make-safearray
  17.       vlax-vbVariant
  18.       (cons 0 1)
  19.     )
  20.     '("insert" "0")
  21.   )
  22. )
  23. 上面语句相当于
  24. (setq ss (ssget "x" '((0 . "insert") (8 . "0"))))


发表于 2012-6-26 19:55:46 | 显示全部楼层
还是最后一句精练啊.
 楼主| 发表于 2012-6-27 12:06:40 | 显示全部楼层
谢谢版主出面!!
 楼主| 发表于 2012-7-3 17:36:47 | 显示全部楼层
操作其它文档时,仍然是选到全体实体,高手帮忙!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-22 01:29 , Processed in 0.179290 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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