K Baden 发表于 2022-7-5 16:09:38

需要一些关于c的帮助

我认为第一个很简单,但我刚刚开始学习lisp。
基本上,我正在尝试更改我所有维度的dimstyle(这是一个现有的dimstyle),但这会将我所有的引线更改为文字垂直位置“上方”,因此我想在其中添加一条线,将其更改回居中。
现在,我已经写下了它的工作原理,但它让我选择了我想要改变的领导人。
我写了一句话,我认为会选择所有的领导者,然后应用更改,但它不适用于这一点,并要求我自己抓住他们。一旦我抓到它们,一切都能正常工作,但我希望它能自动选择它们并进行更改。
该代码如下:
 

(Defun c:dilsl ()
(setq currentdimstyle (getvar 'CROWN))
(command "_.dimstyle" "_restore" "CROWN")
   (setvar "DIMASZ" 0.0625)      ;Arrow size
   (setvar "DIMTXT" 0.0625)      ;Text height
   (setvar "DIMSE1" 0)      ;Un-Suppress the first extension line
   (setvar "DIMSE2" 0)      ;Un-Suppress the second extension line
(command "_.dimstyle" "_save" "CROWN" "_yes")
(command "DimOverride" "c" "all" "")

(setq ss1
(ssget '((0 . "LEADER"))))
(command "DimOverride" "DIMtad" "0" "" ss1 "")

   (princ)
)


 
 
 
 
我的另一项任务更像是提问。我会附上一个代码,很容易阅读/编辑像我这样的人,谁真的不知道他们在做什么。
所以这一个,我基本上想要一个文本和多行文字的查找和替换,我可以预定义。它是一个较大字符串中的文本,但通常会在每个图形上显示大约10-15个不同的更新(字面上是数千个)。
我在我的公司里发现了一个代码,它对属性执行his,但我不知道如何编辑它来查找文本/多行文字。
请记住,这些不是完整的文本/多行文字字符串。这些都是较大字符串中的错误。
这是我正在看的一个小屏幕封盖(不要介意我的测试图中丑陋的引线,请参阅上一期LOL)

 
所以我想让它做的是找出“(典型)把它改成“(TYP)”、“SELF-SUPPORT”和“S.S.”,把它改成“SS”和“OCT”,把它改成“八角形”。
 
我真的很想在不需要任何用户输入的情况下完成这项工作,主要是因为我还有25名其他起草人将使用这项技术。
 
由于多种原因,查找和替换在这方面效率不高。它出现在数千张图纸上,通常每个图纸上只出现一次。使用“查找并替换”的效率低于手动进入并编辑每个文本。
 
在这里,我将附上我们只有寻找属性的代码,也许这可以作为一个起点。
 
(defun attreplace(old-new/aval)(vlax表示n(vla-get-activedocument(vlax-get-acad object))(vlax表示m n(if(and(=“AcDbBlockReference”(vla-get-objectname m))(=:vlax true(vla-get-hasasattributes m))(foreach a(vlax invoke m’getattributes)(setq-aval(vla-get-textstring a))(while(vl-string search old-aval));;
页: [1]
查看完整版本: 需要一些关于c的帮助