BELIEW 发表于 2022-7-6 07:20:13

帮助绘制点#到的线

我对autolisp完全陌生。我只是想知道如何编写一个lisp,它将使用现有的点号绘制一条多边形线。例如,如果我将点编号引入始终编号为1-10的图形中,无论它们在插入图形时包含什么坐标,我都希望lisp从点#1、到2、到3……绘制一条多边形线。。。。等等。我知道LDD中内置了一个宏,允许您从#到#绘制一条线,但我希望lisp能够自定义我自己。我也不希望必须亲自挑选我想要的点,我希望lisp按数字找到点。提前感谢您的帮助。

David Bethel 发表于 2022-7-6 07:27:50

如何将点数据导入AutoCAD?
 
-大卫

BELIEW 发表于 2022-7-6 07:33:45

我正在使用导入它们。csv文件PNEZD
 
点#,北距,东距,高程,描述

David Bethel 发表于 2022-7-6 07:41:27

您可能希望发布一个数据样本,以确保什么是实数,什么是字符串
 
我会假设:
[列表]
[*]点#为整数
[*]北距、东距和高程为实数
[*]描述为字符串
[/列表]
 
-大卫

BELIEW 发表于 2022-7-6 07:43:31

我不在我的电脑前,但是的,你可以准确地假设。
1200.44300.56256.43,边缘
2, 212.32... 等

David Bethel 发表于 2022-7-6 07:47:35

这绝对不会进行错误检查、数据检查和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

BELIEW 发表于 2022-7-6 07:54:43

简直 不可思议!我感谢所有的帮助,我意识到这一定很耗时。我会玩它,然后带着问题回来。谢谢谢谢!

BIGAL 发表于 2022-7-6 07:59:44

将您的csv放入excel,并编写一个脚本,第一遍是插入点,第二遍是连接线,第三遍是在某些点上插入块。这称为串接,它们是可用的商业软件包。

David Bethel 发表于 2022-7-6 08:05:09

 
我很高兴它成功了。为了被视为一个健壮的例程,需要添加很多东西-大卫

BIGAL 发表于 2022-7-6 08:09:38

使用excel可以完成以下操作:简单介绍如何将列复制到命令行
 
页: [1] 2
查看完整版本: 帮助绘制点#到的线