帮助绘制点#到的线
我对autolisp完全陌生。我只是想知道如何编写一个lisp,它将使用现有的点号绘制一条多边形线。例如,如果我将点编号引入始终编号为1-10的图形中,无论它们在插入图形时包含什么坐标,我都希望lisp从点#1、到2、到3……绘制一条多边形线。。。。等等。我知道LDD中内置了一个宏,允许您从#到#绘制一条线,但我希望lisp能够自定义我自己。我也不希望必须亲自挑选我想要的点,我希望lisp按数字找到点。提前感谢您的帮助。 如何将点数据导入AutoCAD?-大卫 我正在使用导入它们。csv文件PNEZD
点#,北距,东距,高程,描述 您可能希望发布一个数据样本,以确保什么是实数,什么是字符串
我会假设:
[列表]
[*]点#为整数
[*]北距、东距和高程为实数
[*]描述为字符串
[/列表]
-大卫 我不在我的电脑前,但是的,你可以准确地假设。
1200.44300.56256.43,边缘
2, 212.32... 等 这绝对不会进行错误检查、数据检查和nada操作
(defun c:pt23dpl (/ file rf nl i cl pl)
(while (not file)
(setq file (getfiled "CSV Point Data File" "" "csv" 8)))
(setq rf (open file "r"))
(while (setq nl (read-line rf))
(setq i 1 cl nil)
(repeat (strlen nl)
(if (= "," (substr nl i 1))
(setq cl (cons i cl)))
(setq i (1+ i)))
(setq cl (reverse cl))
(setq pl (cons (list (atof (substr nl (1+ (nth 1 cl))
(- (nth 2 cl) (nth 1 cl) 1)))
(atof (substr nl (1+ (nth 0 cl))
(- (nth 1 cl) (nth 0 cl) 1)))
(atof (substr nl (1+ (nth 2 cl))
(- (nth 3 cl) (nth 2 cl) 1)))) pl)))
(close rf)
(command "_.3DPOLY")
(apply 'command (reverse pl))
(command "")
(prin1))
数据必须按照所述的准确顺序,并且没有任何空行。照原样!
玩得开心-大卫
点。CSV 简直 不可思议!我感谢所有的帮助,我意识到这一定很耗时。我会玩它,然后带着问题回来。谢谢谢谢! 将您的csv放入excel,并编写一个脚本,第一遍是插入点,第二遍是连接线,第三遍是在某些点上插入块。这称为串接,它们是可用的商业软件包。
我很高兴它成功了。为了被视为一个健壮的例程,需要添加很多东西-大卫 使用excel可以完成以下操作:简单介绍如何将列复制到命令行
页:
[1]
2