我在AutoCAD中创建了一个2D几何图形的dxf文件,我想在现有几何图形的线条上添加点。要添加的点数列表显示在文本文件中。

例如,在上面的图像中,我想在3到2之间的直线上添加10个点。这10个点的(x,y)坐标出现在文本文件中。是否有一种方法来导入和抓取靠近边界的坐标(/line),因为坐标来自于预处理步骤,并且可能与3-2上的实际点有点偏离。
任何建议都会有很大帮助的!
发布于 2020-05-11 03:27:58
最基本的情况是这样的:
(defun C:ImportPoints ( / path coordinates askForFile loadPoints draw
*error* ) (defun *error* ( msg / )
(if (not (null msg ) ) (progn (princ "\nC:ImportPoints:*error*: " ) (princ msg ) (princ "\n") ) )
)
(defun askForFile ( /
*error* ) (defun *error* ( msg / )
(if (not (null msg ) ) (progn (princ "\naskForFile:*error*: " ) (princ msg ) (princ "\n") ) )
)
(getfiled "Select the file with coordinates" "txt" 2)
)
(defun loadPoints ( path /
*error* ) (defun *error* ( msg / )
(if (not (null msg ) ) (progn (princ "\nLoadPoints:*error*: " ) (princ msg ) (princ "\n") ) )
)
(setq filedesc (open Path "r"))
(if filedesc(progn
(setq OutList (list))
(setq linia(read-line filedesc))
(while linia
(progn
(setq OutList (append OutList (list linia)))
(setq linia (read-line filedesc))
))
(close filedesc )
))
OutList
)
(defun draw ( coordinates /
*error* ) (defun *error* ( msg / )
(if (not (null msg ) ) (progn (princ "\ndraw:*error*: " ) (princ msg ) (princ "\n") ) )
)
(setq lastOSMODE (getvar "OSMODE"))
(setvar "OSMODE" 512) ; 512 nearest
(foreach % coordinates
(command "_POINT" %)
)
(setvar "OSMODE" lastOSMODE ) ; ensure You didn't change anything in user settings
)
(setq path (askForFile) )
(setq coordinates (LoadPoints path) )
(draw coordinates))
您必须知道这是功能的基本“骨架”。您必须使用的主要功能是:
(getfiled ...) --允许您选择文件
(setvar "OSMODE" 512) --它的作用将是在线上
(command "_POINT" coordinates)将画出点,结果也将取决于文件中坐标的格式。预期的坐标是2或3个坐标,由,分隔,小数点应该用.分隔,我不记得了,但可能取决于您的本地设置。
https://stackoverflow.com/questions/61716035
复制相似问题