回到CAD游戏中
经过一段时间的外出和不使用CAD的一段时间,我已经变得非常生锈。。。我希望我能从你们这些大师那里得到一些帮助。。。我上次使用的AutoCad平台是2005年。我现在使用2010。
我有一份清单。我保留了我使用最多的lsp例程。我在2010年试过加载它们,但它们不起作用。我现在只从其中的两个开始。
第一个是L8。lsp这个例程简单地将所有不是我的图层更改为8色。代码是这样的:
(定义C:L8()
(命令“-vbarun”“L8”)
)
它丢失了一堆信息,对吗?
我的下一个是mpl2。lsp该例程插入了一个块,其中包含我所有的符号/层等,无论模型空间比例设置为什么。然后,我会分解块,开始布置我的图纸。代码如下所示:
(定义C:mpl2()
(命令“-vbarun”“mpl2”)
)
再一次,我相信我错过了很多信息,让它正常工作。
谢谢 如果没有可从Autodesk下载的附加模块,2010和2011软件包将无法运行VBA应用程序。
由于Microsoft不再支持VBA,Autodesk将来将不再支持VBA。您可以从Autodesk for AutoCAD 2010下载以运行VBA应用程序。建议您将其转换为。净额。
以下是2010年VBA的下载:http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=15077854&linkID=9240618 这些是用于调用VBA模块的唯一lisp包装。
你需要有。DVB文件可用并在其工作之前加载。如前所述,在vanilla AutoCAD 2010和更高版本中,不包括VBA支持,尽管您可以下载它。
我会考虑将代码迁移到。NET或lisp(如果可能),以获得长期支持。 根据您的描述,在Lisp中重新创建例程听起来很容易。你有L8的图层列表吗? fuccaro-Attached是mpl2的模块。lsp将以我的图形设置的比例插入到我的图形中。我的所有层也在块中。然后,我只需分解块并抓取所需的符号。
buzzard-在找到这个很棒的论坛之前,我下载了VBA应用程序。转换为的步骤是什么。网
rkmcswain-是。DVB模块—当我抓取所有硬盘时,我应该将其保存到外部硬盘中。lsp例程并将其保存以供以后使用。
谢谢
ALD_块。图纸 不确定您的意思是将颜色覆盖设置为颜色8还是图层颜色,但这里是一个开始:
(defun c:L8 ( / NewCol layers ss )
;; © Lee Mac 2010
(setq NewCol;; New Colour for Objects
(setq layers
(mapcar 'strcase
'(
;; List your Layers Here:
"0"
"Defpoints"
;;---------------------;;
)
)
)
(if
(setq ss
(ssget "_X"
(list
(cons -4 "<NOT")
(cons 8 (LM:lst->str layers ","))
(cons -4 "NOT>")
)
)
)
(
(lambda ( i / e l )
(while (setq e (ssname ss (setq i (1+ i))))
(entupd
(cdr
(assoc -1
(entmod
(if (assoc 62 (setq l (entget e)))
(subst (cons 62 NewCol) (assoc 62 l) l)
(append l (list (cons 62 NewCol)))
)
)
)
)
)
)
)
-1
)
(princ "\n--> No Objects Found on Other Layers <--")
)
(princ)
)
;;-------------------=={ List to String }==-------------------;;
;; ;;
;;Constructs a string from a list of strings separating ;;
;;each element by a specified delimiter ;;
;;------------------------------------------------------------;;
;;Author: Lee Mac, Copyright © 2010 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;;Arguments: ;;
;;lst - a list of strings to process ;;
;;del - delimiter by which to separate each list element ;;
;;------------------------------------------------------------;;
;;Returns:String containing each string in the list ;;
;;------------------------------------------------------------;;
(defun LM:lst->str ( lst del )
;; © Lee Mac 2010
(if (cdr lst)
(strcat (car lst) del (LM:lst->str (cdr lst) del))
(car lst)
)
)
我猜了一下比例。。。 我不认为应该是这样的。。。我已经有一段时间没用了
明白了,这就是我在看了你的画后得出的结论-我当前的代码是设置颜色覆盖,这显然不理想。。。 李·麦克,
我只需要复制文本框中的内容,粘贴到记事本中并另存为。lsp对吗?对不起,我只是想回到这个。。。
此处的说明:http://www.cadtutor.net/faq/questions/28/How+do+I+use+an+AutoLISP+routine%3F
页:
[1]
2