CAD lisp语言编程!
现在我手里有如图1的表格,然后我现在想根据表上的80坐标把点展到CAD,然后在那个点的旁边注记如图2的对应信息,表上没有信息的,图上对应的位置也空起。...
现在我手里有如图1的表格,然后我现在想根据表上的80坐标把点展到CAD,然后在那个点的旁边注记如图2的对应信息,表上没有信息的,图上对应的位置也空起。
展开
5个回答
展开全部
你这个问题主要的难点还是在如何读入excel文件吧,其他生成图像不是什么难点,这里就不加概述,重点说下怎么读入文件吧。其实挺好解决的,只要将excel表格转换成任何能用记事本打开且不出现乱码的形式,再用open函数加以调用读取即可,刚好excel另存的csv格式正好可以用记事本打开不出现乱码。
首先,你将excel另存成csv格式。然后:
(defun c:GETCSV (/ @file @ascii @char @fullChar @charLength)
(setq @file (open (getfiled "数据读取" "" "csv" 2) "r"));选择并打开csv文件
(setq@char ""
@fullChar ""
@ascii 0
)
(while @ascii
(setq @ascii (read-char @file))
(if @ascii
(setq @char (chr @ascii))
)
(if(= @char ",")
(setq @char " ")
)
(if(= @char "\n")
(setq @char ")(")
)
(setq @fullChar (strcat @fullChar @char))
);读入csv文件的内容,并根据内容转换成特定表样式的字符串,储存到@fullChar中
(setq @charLength (strlen @fullChar))
(while (or (= (substr @fullChar @charLength 1) ")")
(= (substr @fullChar @charLength 1) "(")
)
(setq @fullChar (substr @fullChar 1 (- @charLength 1)))
(setq @charLength (strlen @fullChar))
)处理@fullChar特定表样式的字符串尾部多余的括号
(setq @fullChar (strcat "((" @fullChar "))"));将@fullChar前后各加两个括号和反括号
(setq @pointList (read @fullChar));把字符串转换成表,储存到@pointList中
(setq outside @pointList);将@pointList中的内容赋予全局变量ouside
(close @file);CAD中停止调用之前打开的csv文件
(princ)
)
之后,整个excel表的内容都在变量outside中,搭配car和cdr系列函数以及foreach函数去处理outside变量,并利用entmake创建出相应的CAD图元即可。
展开全部
转成特定测量数据格式就可以了导入cad
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个好弄,不过你这个涉密,不沾为好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这是机密坐标吗,马赛克就像毛毛虫一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我过来看看,学一下!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询