起初,但在回溯过程中会对列表进行评估。在这个帖子里,我想讨论的还有很多(我们有点离题了)。我会送你一个下午。 AutoLISP函数按目的排序 ASMI页面上的Bravo-非常有用 大家好,
我是新来的论坛,并寻找一个Lisp程序例行程序,将提请从一个点。txt或。csv文件。看起来很简单,虽然几年前我在学校学的Lisp程序已经不复存在了,因为我从那以后就没用过它。
我查看了上面提到的一些网站和所有的铃声,但只是想知道我是否可以采取懒惰的方式,问这里的专家。
我正在使用Map 3D和Civil 3D-从a开始。dwg包含我希望在文字插入x、y、z处作为ACAD点对象的文字对象。经过一些操作后,我从文字对象中提取了所需的信息,但在将z值输入回基本ACAD点时遇到了问题。AECC_COGO_点似乎对我需要的东西没有帮助。
有什么帮助和建议吗?
谢谢 听起来你有两个要求-
我如何理解它(如果我错了,请纠正我!):
[列表=1]
[*]从txt文件创建ACAD点。
[*]从文本对象的插入点创建ACAD点。
这两个任务似乎都很合理,不应该成为LISP的问题
如果我有任何错误的信息,请纠正我,我会看看我能做些什么
李 也许是这个?(虽然写得很快,但未经测试!)
(defun c:pts (/ *error* vlst ovar chdef ans file ofile pt ss elst)
(defun *error* (msg)
(if ovar (mapcar 'setvar vlst ovar))
(princ (strcat "\n<!> Error: " (strcase msg) " <!>")) (princ))
(setq vlst '("CMDECHO") ovar (mapcar 'getvar vlst))
(setvar "CMDECHO" 0)
(or chdef (setq chdef "File")) (initget "File Text")
(setq ans (getkword (strcat "\nGet Point from File or Text? <" chdef "> : ")))
(if ans (setq chdef ans) (setq ans chdef))
(if (and (eq ans "File")
(setq file (getfiled "Select a Text File" "" "txt" ))
(progn
(setq ofile (open file "R"))
(while (setq pt (read-line ofile))
(command "_POINT" pt))
(close ofile))
(progn
(if (setq ss (ssget "X" (list (cons 0 "*TEXT")
(if (getvar "CTAB")(cons 410 (getvar "CTAB"))
(cons 67 (- 1 (getvar "TILEMODE")))))))
(progn
(setq elst (mapcar '(lambda (x) (cdr (assoc 10 x)))
(mapcar 'entget (mapcar 'cadr (ssnamex ss)))))
(foreach pt elst (command "_POINT" pt)))
(princ "\n<!> No Text Found or no File Selected <!>"))))
(mapcar 'setvar vlst ovar)
(princ))
PS,可能需要一个mod来将这部分线程移动到一个新线程中,而不是hi-jacking这个线程。 谢谢李的回复。
我不知道如何发布新的帖子-对不起,不是故意的。
我有一个带有x,y,z线的txt文件,我想将其作为ACAD点插入。我尝试了你发布的代码,出现了一个错误,没有能力解决这个问题。
中的值。txt文件我有我从ACAD中提取的文字对象,我想成为点。。。。。。如果有帮助的话?
谢谢你的帮助!
黎明 我认为我可能误解了您的请求-我使用了LISP,因此它将要求一个文本文件,其中点列为:
12,1,31等
或者,查找插入点用作ACAD点的文字对象。
出现了什么错误? ACH-它适用于中的文本。DWG!
谢谢你,李。 很高兴你成功了-只是出于兴趣,它对文本文件也有效吗?
李
页:
1
[2]