Lee Mac 发表于 2022-7-5 17:13:48

属性修改套件

随着最近对LISP的大量请求将改变多个属性,我决定创建这个属性修改套件。
 
目前,它包含三个功能:MvAtt、RoAtt和EdAtt,分别移动、旋转和编辑多个属性。
 
任何建议、评论(当然还有bug报告!),欢迎光临
 
享受
 

此处提供代码。

The Buzzard 发表于 2022-7-5 17:17:55

李炸药,
 
你教你的名字跳舞。
但是它能做三个林迪吗?
 
你真了不起。
干得好!
秃鹰

Lee Mac 发表于 2022-7-5 17:22:12

 
谢谢Buzzard,很高兴你喜欢
 
更多的更新即将到来——正如我经常说的那样,最困难的部分是思考如何制作/添加到程序中。

The Buzzard 发表于 2022-7-5 17:25:54

 
我完全明白你的意思。我发现自己在想很多次“我下一步要从什么开始?”。你和我一样清楚,你对一个实体所能做的只有那么多,但有些人提出了一些令人惊叹的想法,如果不是疯狂的话。我知道你吃了这些东西,并使这些想法成为可能。
 
李,我能说什么?
你是独一无二的。

Lee Mac 发表于 2022-7-5 17:27:24

谢谢Buzzard
 
我已经更新了第一篇文章,加入了一个新版本,包括一个用于编辑属性值的新功能
 

MarcoW 发表于 2022-7-5 17:30:48

李,你说:
 
哈哈,我总是能想出别人必须解决的问题。。。但是我的工作太忙了,所以我不能花足够的时间来编写像样的lisp编程。这就是为什么每当你想到一个想法、解决方案或只是一个例行的尝试时,我都会那么热情。(如果这是我老板说的话,我也不应该那样做)。。。
 
顺便说一句,我画了电气平面图,做了很多工程,所以我有很多带有属性的块。
 
我现在用来旋转属性的例程(atrot.lsp)运行得很好。尽管有一件事仍然让我恼火。
 
(defun c:atrot(/blSet attLst errCount tmp)(或atrot:tag(setq atrot:tag“”)(setq tmp(getstring(strcat“\n指定要旋转的标记:”)(或(eq”“tmp)(setq atrot:tag tmp))(princ“>”(setq errCount 0)(if(setq blSet(ssget’((0。“INSERT”)(66.1))))(progn(setq blSet(mapcar‘vlax ename->vla object(vl remove if“listp(mapcar”cadr(ssnamex blSet)аа))(foreach itm blSet(setq attLst(vlax safearray->list(vlax variant value(vla GetAttributes itm)))(foreach att attLst(和)(eq(if(eq“”atrot:tag)(vla get TagString att)atrot:tag)(vla get TagString att))(如果(vl-catch-all-error-p(vl catch all apply‘vla put Rotation(list att 0.0)))(setq errCount(1+errCount k)а);(princ“>>>未选择任何内容!”(itoa errCount)“属性或块位于锁定层上!

Lee Mac 发表于 2022-7-5 17:34:57

使用LISP程序时遇到的旋转问题是由块中属性的对齐设置引起的。把它调到中间位置,一切都会好起来的。
 
我认识你发布的Lisp程序,因为我相信这是我不久前修改的ASMI原始Lisp程序的修改。我可能会考虑将上述程序更改为包含块选择/全部选项,而不只是默认为全部。
 

Lee Mac 发表于 2022-7-5 17:36:18

我在第一篇文章中更新了代码,将程序的版本3包括在内。
 
用户现在可以选择他/她要修改的块,或点击enter键选择具有相同标记的所有块。
 
享受
 

Lee Mac 发表于 2022-7-5 17:40:56

我对EdAtt函数进行了巨大的更新,第4版现在在第一篇文章中。
 

The Buzzard 发表于 2022-7-5 17:42:34

 
李,太好了!
 
但是,假设您使用具有相同属性标记的不同块,并希望通过标记名进行修改,可以做到这一点吗?
 
秃鹰
页: [1] 2
查看完整版本: 属性修改套件