Lisp导入坐标和代码
大家好!!我需要一个LISp从txt或xls/csv文件中导入X、Y、Z和代码或其他一些属性,并将其分别放入新层,如下所示:
含coodrinates(X;Y;Z)的点应为layer TOCKA(*克罗地亚语*)
高度(Z坐标)应为层VISINA
点数应为图层BROJ TOCKE
代码应为图层KOD
如果存在其他属性,则可能成为层OSTALO
我看到很多Lisp都能完成这一部分,但没有找到任何可以将其放在不同层中的Lisp,所以如果有人知道怎么做的话。。。这对大地测量学和世界上许多大地测量学都有好处,因为这也是我的工作。。。。THX提前。。 我有一个可以读取坐标并用你选择的块填充图形。它还将按块属性在excel/text文件中的显示顺序填充块属性。
例子:
X坐标y坐标属性1属性2
你想让我把它寄出去还是与你的设计不兼容? 我有一个类似的东西,它把每一个坐标都放在它的轴上,你可以发送它,这样我就可以试试了,thx人!! 这是可以做到的-
不过有几件事要问:
点编号、Z坐标和代码都是属性吗?还是有些只是文字?
此外,如果它们都是属性,它们是否包含在您拥有的块中? 新图层:点-->TOCKA(这些是克罗地亚文字)
Z高度-->VISINA
代码-->KOD
点编号-->BROJ TOCKE
是的,这三个是唯一的属性。
例子:
点编号Y X Z代码
1 100.00 20.11 2.45道路
点(TOCKA)是Y、X、Z坐标,在dwg文件中是唯一的点。
代码(KOD)是文本,但它位于点位置
点编号(BROJ TOCKE)类似于代码
高度Z是显示数字的文本,在本例中为2.45,位于点位置附近
它们不是块,它们只是文本和点(在本例中为点)。。。有点清楚??我的英语不是很好,所以我无法解释最好的 我可以给你发送一些示例dwg文件吗??
啊,好吧-我明白, 我有一些有趣的东西给你(txt,csv,xls-trebam-tvoj-mail)。
不是lsp,而是dvb。 dmikicic1981@yahoo.com
dvb??类似lisp命令的东西??我读了一些关于dvb的文章。。但是没关系,我会解决的,克罗地亚的戈兰?? 试试这个Goldy
(defun c:goldy (/ doc spc file nl lst pt)
(vl-load-com)
(setq doc (vla-get-ActiveDocument
(vlax-get-Acad-Object))
spc (if (zerop (vla-get-activespace doc))
(if (= (vla-get-mspace doc) :vlax-true) ; Vport
(vla-get-modelspace doc)
(vla-get-paperspace doc))
(vla-get-modelspace doc)))
(or (tblsearch "LAYER" "TOCKA")
(vla-add (vla-get-layers doc) "TOCKA"))
(if (setq file (getfiled "Select Text File"
(if *load$file* *load$file* "") "txt" )
(progn
;(vlp file)
(setq *load$file* file file (open file "r"))
(while (setq nl (read-line file))
(setq lst (cons (StrBrk nl 32) lst)))
(close file)
(foreach line lst
(setq pt
(mapcar 'distof
(list (caddr line) (cadr line) (cadddr line))))
(vla-put-layer
(vla-AddPoint spc (vlax-3D-point pt)) "TOCKA")
(Make_Text pt (last line) 0.0 "KOD" 1 2)
(Make_Text pt (car line) 0.0 "BROJ TOCKE" 1 0)
(Make_Text pt (cadddr line) 0.0 "VISINA" 1 3)))
(princ "\n<!> No File Selected <!>"))
(princ))
(defun StrBrk (str chrc / pos lst)
(while (setq pos (vl-string-position chrc str))
(setq lst (cons (substr str 1 pos) lst)
str (substr str (+ pos 2))))
(reverse (cons str lst)))
(defun Make_Text(pt val rot lay |72 |73)
(entmake
(list
(cons 0 "TEXT")
(cons 8lay)
(cons 10 pt)
(cons 40 (getvar "TEXTSIZE"))
(cons 1val)
(cons 50 rot)
(cons 7(getvar "TEXTSTYLE"))
(cons 71 0)
(cons 72 |72)
(cons 73 |73)
(cons 11 pt))))
页:
[1]
2