它将收集位于当前图形目录中的所有dwg名称,并根据拾取的位置将其放置在多行文字对象中。 这一个将为它们编号:
(defun c:Dir2Text (/ #Pnt1 #Pnt2 #List #String)
(cond
((and (setq #Pnt1 (getpoint "\nSpecify first corner: "))
(setq #Pnt2 (getcorner #Pnt1 "\nSpecify opposite corner: "))
) ;_ and
(setq #List (vl-sort (vl-remove-if-not
'(lambda (x) (wcmatch x "*.dwg"))
(vl-directory-files (getvar 'dwgprefix))
) ;_ vl-remove-if-not
'<
) ;_ vl-sort
#String ""
) ;_ setq
(foreach x #List
(setq #String
(strcat #String (itoa (1+ (vl-position x #List))) " - " (vl-filename-base x) "\\P")
) ;_ setq
) ;_ foreach
(AT:MText #Pnt1 #String (abs (- (car #Pnt1) (car #Pnt2))) nil 1)
)
) ;_ cond
(princ)
) ;_ defun
今天过得很慢,我玩得很开心。。。
(defun c:Dir2Text (/ #Pnt1 #List #String #Text #Read)
(cond
((setq #Pnt1 (getpoint "\nSpecify first corner: "))
(setq #List (vl-sort (vl-remove-if-not
'(lambda (x) (wcmatch x "*.dwg"))
(vl-directory-files (getvar 'dwgprefix))
) ;_ vl-remove-if-not
'<
) ;_ vl-sort
#String ""
) ;_ setq
(foreach x #List
(setq #String
(strcat #String (itoa (1+ (vl-position x #List))) " - " (vl-filename-base x) "\\P")
) ;_ setq
) ;_ foreach
(setq #Text (AT:MText #Pnt1 #String 0 nil 1))
(while (eq 5 (car (setq #Read (grread T 15 2))))
(redraw)
(grvecs (list 7
#Pnt1
(list (car (cadr #Read)) (cadr #Pnt1))
(list (car (cadr #Read)) (cadr #Pnt1))
(cadr #Read)
(cadr #Read)
(list (car #Pnt1) (cadr (cadr #Read)))
(list (car #Pnt1) (cadr (cadr #Read)))
#Pnt1
) ;_ list
) ;_ grvecs
(vla-put-width #Text (abs (- (car #Pnt1) (car (cadr #Read)))))
) ;_ while
)
) ;_ cond
(redraw)
(princ)
) ;_ defun
alanjt-是的,我试过了,得到了以下错误消息:错误:没有函数定义:AT:MTEXT
我根据子程序输入多行文字,然后运行这个lisp,它询问我给出的角,然后给出错误。我不知道如何使用它或它做什么。。。
马可-我来自澳大利亚,为什么?
您必须加载此处发布的例程和我链接的AT:MText子例程。它给出了这个错误,因为AT:MText没有加载。 我已经加载了两者,但仍然收到相同的消息。你能告诉我这个函数实际上做什么吗?你在这里发布的视频文件似乎没有显示它做了我想要的(也许你只是发布了它的部分功能?) 我必须在这里发言,并重申/强烈强调图纸集。图纸集管理器可以将图纸管理变成梦想。如前所述,启动它需要时间,但你付出的努力是值得的。如果实现了图纸集,则当前问题的解决方案已经解决。
这是一个“让你开始”。在你发布你想要的实际例子之前,很难解读你的段落。一幅画抵得上千言万语。
如果您在以下位置收到错误消息:MText,则您没有加载它。
同上。。。。。。
为什么我们必须处理这个问题:
我相信这有一个很好的理由(与垃圾邮件有关),这只是令人讨厌。 英雄联盟
这只是一个有趣的练习。。。
我想把1-9的数字改成01-09。
(defun c:Dir2Text (/ #Pnt1 #List #Pos #String #Text #Read)
(cond
((setq #Pnt1 (getpoint "\nSpecify first corner: "))
(setq #List (vl-sort (vl-remove-if-not
'(lambda (x) (wcmatch x "*.dwg"))
(vl-directory-files (getvar 'dwgprefix))
) ;_ vl-remove-if-not
'<
) ;_ vl-sort
#String ""
) ;_ setq
(foreach x #List
(setq #Pos (1+ (vl-position x #List)))
(if (< #Pos 10)
(setq #Pos (strcat "0" (itoa #Pos)))
(setq #Pos (itoa #Pos))
) ;_ if
(setq #String (strcat #String #Pos " - " (vl-filename-base x) "\\P"))
) ;_ foreach
(setq #Text (AT:MText #Pnt1 #String 0 nil 1))
(while (eq 5 (car (setq #Read (grread T 15 2))))
(redraw)
(grvecs (list 7
#Pnt1
(list (car (cadr #Read)) (cadr #Pnt1))
(list (car (cadr #Read)) (cadr #Pnt1))
(cadr #Read)
(cadr #Read)
(list (car #Pnt1) (cadr (cadr #Read)))
(list (car #Pnt1) (cadr (cadr #Read)))
#Pnt1
) ;_ list
) ;_ grvecs
(vla-put-width #Text (abs (- (car #Pnt1) (car (cadr #Read)))))
) ;_ while
)
) ;_ cond
(redraw)
(princ)
) ;_ defun
页:
1
[2]