乐筑天下

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

[编程交流] 快速LISP放置#个对象

[复制链接]

13

主题

42

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 16:51:55 | 显示全部楼层 |阅读模式
假设我选择了6个对象。我可以运行lisp将“6”复制到剪贴板吗?
 
这是我如何计数/标记块的一部分,我希望尽可能减少人为错误。
 
在有人问我为什么不使用块计数之前,请相信我的方法对我更有效。
 
谢谢
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:02:54 | 显示全部楼层
我认为不可能通过lisp将文本以外的内容复制到剪贴板,
由于我所看到的是议员在这里(或者/或者李-麦克)发布的消息。
但是,一些人跳出框框思考:
-可以收集对象句柄列表
-将句柄复制到剪贴板
-从剪贴板数据中检索对象
不知道之后该怎么办。。。也许其他人有其他想法。
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-5 17:09:51 | 显示全部楼层
 
我相信OP只是希望通过文本将文本复制到剪贴板。
 
 
我使用DOS_LIB将文本复制到剪贴板。
 
  1. (dos_clipboard [string])
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:13:19 | 显示全部楼层
哦,我现在明白了,他只想要他们的数量,而不是实际的实体:
  1. (defun C:test ( / SS )
  2. (and
  3.    (setq SS (vl-some 'ssget (list "_I" nil)))
  4.    (_SetClipBoardText (itoa (sslength SS)))
  5. )
  6. (princ)
  7. )

此代码需要MP的_SetClipBoardText子函数。
回复

使用道具 举报

13

主题

42

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 17:20:27 | 显示全部楼层
工作得很有魅力!非常感谢!
回复

使用道具 举报

13

主题

42

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 17:23:38 | 显示全部楼层
现在让我们说,我想无论我选择了什么,也改变颜色,一旦我运行这个lisp。我该如何将这个用于更改颜色的小例程集成到您编写的lisp中?我尝试了两种不同的方法,但都没有成功。
 
颜色更改组件:
 
  1. (Defun C:Y ( / change)
  2. (setq ss1 (ssget))
  3. (command "change" ss1 "" "p" "c" "2" "")
  4. (princ)
  5. )

 
Lisp将其添加到:
 
  1. (defun C:test ( / SS )
  2. (and
  3.    (setq SS (vl-some 'ssget (list "_I" nil)))
  4.    (_SetClipBoardText (itoa (sslength SS)))
  5. )
  6. (princ)
  7. )
  8. (defun _SetClipBoardText ( text / htmlfile result )
  9.    ;;  Caller's sole responsibility is to pass a
  10.    ;;  text string. Anything else? Pie in face.
  11.    ;;  Attribution: Reformatted version of
  12.    ;;  post by XShrimp at theswamp.org.
  13.    ;;
  14.    ;;  See http://tinyurl.com/2ngf4r.
  15.    (setq result
  16.        (vlax-invoke
  17.            (vlax-get
  18.                (vlax-get
  19.                    (setq htmlfile (vlax-create-object "htmlfile"))
  20.                   'ParentWindow
  21.                )
  22.               'ClipBoardData
  23.            )
  24.           'SetData
  25.            "Text"
  26.            text
  27.        )
  28.    )
  29.    (vlax-release-object htmlfile)
  30.    text
  31. )

 
谢谢你的帮助!
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:32:59 | 显示全部楼层
 
整个魔法来自迈克尔·普克特的密码。
编辑:
尝试
  1. (defun C:test ( / SS )
  2. (and
  3.    (setq SS (vl-some 'ssget (list "_I" nil)))
  4.    (not (command "_.CHANGE" SS "" "p" "c" "2" ""))
  5.    (_SetClipBoardText (itoa (sslength SS)))
  6. )
  7. (princ)
  8. )

而且要小心,因为它适用于隐含选择(如果您已经选择了某些内容,并运行命令调用)。
回复

使用道具 举报

13

主题

42

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 17:34:22 | 显示全部楼层
谢谢Grrr!不幸的是,它给了我:
“需要点或选项关键字。
; 错误:功能已取消
指定更改点或[属性]:
 
我肯定会先选择,然后运行命令。但我不确定我是否做错了什么。
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

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

铜币
325
发表于 2022-7-5 17:42:00 | 显示全部楼层
我认为这是因为命令调用的行为不同,无论选择是隐含的还是提示您进行选择。
然而,通过我在最近创建的相关线程中建议的“PutIndexColor”子功能,它是可以实现的:
[code]defun C:test/SS isetq SSssget“_:L-i”\u SetClipBoardTextitoa sslength SS重复setq isslength SSPutIndexColor[颜色=绿色](ssname SSsetq i1-i2princ/color([/colordefun PutIndexColore col/enxeq'ENAMEeeq'INTtype col b]栗色)([/color
回复

使用道具 举报

13

主题

42

帖子

29

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-5 17:49:26 | 显示全部楼层
哦,天哪,太令人兴奋了。美丽的事物。非常感谢您抽出时间!效果极佳。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:13 , Processed in 0.540805 second(s), 72 queries .

© 2020-2025 乐筑天下

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