快速LISP放置#个对象
假设我选择了6个对象。我可以运行lisp将“6”复制到剪贴板吗?这是我如何计数/标记块的一部分,我希望尽可能减少人为错误。
在有人问我为什么不使用块计数之前,请相信我的方法对我更有效。
谢谢 我认为不可能通过lisp将文本以外的内容复制到剪贴板,
由于我所看到的是议员在这里(或者/或者李-麦克)发布的消息。
但是,一些人跳出框框思考:
-可以收集对象句柄列表
-将句柄复制到剪贴板
-从剪贴板数据中检索对象
不知道之后该怎么办。。。也许其他人有其他想法。
我相信OP只是希望通过文本将文本复制到剪贴板。
我使用DOS_LIB将文本复制到剪贴板。
(dos_clipboard ) 哦,我现在明白了,他只想要他们的数量,而不是实际的实体:
(defun C:test ( / SS )
(and
(setq SS (vl-some 'ssget (list "_I" nil)))
(_SetClipBoardText (itoa (sslength SS)))
)
(princ)
)
此代码需要MP的_SetClipBoardText子函数。 工作得很有魅力!非常感谢! 现在让我们说,我想无论我选择了什么,也改变颜色,一旦我运行这个lisp。我该如何将这个用于更改颜色的小例程集成到您编写的lisp中?我尝试了两种不同的方法,但都没有成功。
颜色更改组件:
(Defun C:Y ( / change)
(setq ss1 (ssget))
(command "change" ss1 "" "p" "c" "2" "")
(princ)
)
Lisp将其添加到:
(defun C:test ( / SS )
(and
(setq SS (vl-some 'ssget (list "_I" nil)))
(_SetClipBoardText (itoa (sslength SS)))
)
(princ)
)
(defun _SetClipBoardText ( text / htmlfile result )
;;Caller's sole responsibility is to pass a
;;text string. Anything else? Pie in face.
;;Attribution: Reformatted version of
;;post by XShrimp at theswamp.org.
;;
;;See http://tinyurl.com/2ngf4r.
(setq result
(vlax-invoke
(vlax-get
(vlax-get
(setq htmlfile (vlax-create-object "htmlfile"))
'ParentWindow
)
'ClipBoardData
)
'SetData
"Text"
text
)
)
(vlax-release-object htmlfile)
text
)
谢谢你的帮助!
整个魔法来自迈克尔·普克特的密码。
编辑:
尝试
(defun C:test ( / SS )
(and
(setq SS (vl-some 'ssget (list "_I" nil)))
(not (command "_.CHANGE" SS "" "p" "c" "2" ""))
(_SetClipBoardText (itoa (sslength SS)))
)
(princ)
)
而且要小心,因为它适用于隐含选择(如果您已经选择了某些内容,并运行命令调用)。 谢谢Grrr!不幸的是,它给了我:
“需要点或选项关键字。
; 错误:功能已取消
指定更改点或[属性]:
我肯定会先选择,然后运行命令。但我不确定我是否做错了什么。 我认为这是因为命令调用的行为不同,无论选择是隐含的还是提示您进行选择。
然而,通过我在最近创建的相关线程中建议的“PutIndexColor”子功能,它是可以实现的:
(defun C:test(/SS i)(setq SS(ssget“_:L-i”))(\u SetClipBoardText(itoa (sslength SS)(重复(setq i(sslength SS)(PutIndexColor[颜色=绿色](ssname SS(setq i(1-i2(princ)/color(defun PutIndexColor(e col/enx)(和(eq'ENAME(e)(eq'INT(type col b]栗色)( 哦,天哪,太令人兴奋了。美丽的事物。非常感谢您抽出时间!效果极佳。
页:
[1]
2