乐筑天下

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

在ACAD中使用一次选择集?

[复制链接]

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2007-12-20 11:01:43 | 显示全部楼层 |阅读模式

,我在VBA中创建了一个名为“Im”的选择集,但我的问题曾经在ACAD中,我还能引用该Sset名称吗?
换句话说,在ACAD中,如果我键入“选择”,我意识到我可以为“上一个”键入P,但是无论如何都可以键入
“选择然后Im”并在ACAD中识别该选择集吗?
谢谢!
马克

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

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

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-20 11:22:44 | 显示全部楼层

哎呀!听起来很可怕
这在ACAD是完全没有意义的事情之一。
我们可以创建所有这些选择集和过滤器等。然而在VBA,一旦我们到了ACAD,我们就不能再直呼其名了?那是愚蠢的。
我想知道小组方法?我还没仔细看过。
此外,在ACAD,我们可以创建过滤器并按名称引用它们,但我不确定我们能否在VBA创建一个过滤器,然后在ACAD引用它。
有些事情我“可能”能够做,但不应该做。
我可以(使用我的函数)将ACAD变量Sset发送到LISP,然后“可能”它(选择集)将至少通过使用!在ACAD,嗯。必须有一种方法来引用ACAD标记中的命名sset
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-20 11:30:15 | 显示全部楼层

我的意思是说VBA变量Sset到LISP
OMG!
马克
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-20 11:31:57 | 显示全部楼层

正如我和其他人在帖子中所说的那样,无论出于何种意图和目的,都没有。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-20 17:14:59 | 显示全部楼层
虽然用一点点lisp就可以做到.....
下面是lisp:
  1. (defun getVBss (name / ss ssnew)
  2.   (if (not (vl-catch-all-error-p
  3.              (vl-catch-all-apply
  4.                '(lambda        ()
  5.                   (setq        ss (vla-item
  6.                              (vla-get-selectionsets
  7.                                (vla-get-activedocument
  8.                                  (vlax-get-acad-object)
  9.                                )
  10.                              )
  11.                              name
  12.                            )
  13.                   )
  14.                 )
  15.              )
  16.            )
  17.       )
  18.     (progn
  19.       (setq ssnew (ssadd))
  20.       (vlax-for        ent ss
  21.         (ssadd (vlax-vla-object->ename ent) ssnew)
  22.       )
  23.     )
  24.   )
  25.   ssnew
  26. )

记住命名的SS是区分大小写的。
回复

使用道具 举报

194

主题

592

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1380
发表于 2007-12-20 18:05:46 | 显示全部楼层

嗨杰夫,
再次感谢!当然,你可以问我;你可以问任何事情。
如果有人只是说不要这样做,那么没有给出一些例子就太疯狂了,那么它并不总是能阻止他们。
至于那个VLAX类,我没有使用它,我也不会使用它
,但是,我发布的2个缩小范围的函数对我来说效果很好。
我能够将getfiled和setq方法与LISP以及我的VBA代码一起使用,并且我遇到了绝对0个问题。
是的!我确实有一个使用“打开FIle对话框”方法的版本,但是对于如此小的返回(例如,使用对话框提示用户选择一个文件)需要很多代码。当然,如果可能的话,我宁愿在VBA中完成所有操作,这是有道理的。出于其他原因,我也经常使用VBScripting代码,但“可能”是可以的;它似乎工作正常。
再次感谢您的代码;我会按照你的建议去做;我将创建一个单独的例程,并将其与 VBA 项目一起加载。
我打算今天早上来尝试一下,然后做这一切。天哪!
杰夫,我不是最有经验的程序员,我只是问它是否可以合并,我确实很期待你的答案,这将是太难了,没有意义。我只是因为我们可以连接到VLISP类型库,所以这可能是可能的;我没有意识到我问这个问题是疯子,所以我道歉。 因此,我不会尝试它,我会去尝试你.lsp例程。
谢谢
马克
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-20 18:41:15 | 显示全部楼层

Jeff
我刚刚尝试了lisp例程;它工作得很好!
再次感谢您!
标记
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-20 19:30:57 | 显示全部楼层
标记,
虽然它与选择集无关,但它与您尝试在2之间来回传递lisp和VBA变量的事实有关。同样,他试图引导您远离不可避免的头部撞击,这将发生(正在发生?)。
在Glenn提到的那个线程中,您说您不喜欢FileOpenDialog代码,因为它太长了。问题是,它已经编写好,所以您不必每次使用它都重写它。当您使用VL.Application.时,同样的、精确的事情也是如此,该代码可能比您尝试不使用的代码大得多。不,你看不到它,但它还是在那里。所以你没有在你的宏中添加一点点代码,而是引用了一个更大的代码。
这有意义吗?请注意,我不是想痛斥你的做法。我只是想解释为什么其他人试图将你引向其他方向。他们中的许多人,包括我自己,都走过你走的路。
以下内容应该放在另一个线程中,但我现在正在输入,所以就在这里了。
而且,FWIW,我确实使用了VLAX.CLS的丑陋之处,与Frank O组合的另一个CURVE.CLS相关联,它向VBA公开了(vlax-curve-*)lisp函数。当然它们很丑,但它们是无需重新发明轮子即可完成工作的工具。然而,如果有VBA特定的方法可以在没有VLAX.CLS和CURVE.CLS的情况下获取曲线数据,我肯定会抓住机会使用它。
回复

使用道具 举报

71

主题

928

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1230
发表于 2007-12-21 11:39:36 | 显示全部楼层

我做了一些“打扫房子”,怎么样?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 12:51 , Processed in 0.745993 second(s), 70 queries .

© 2020-2025 乐筑天下

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