Lisp创建自定义形状
你好!希望有人能帮我。我必须从给定的数据中创建多个简单的形状。手动操作很容易,但非常烦人。
铁路部门向我们提供了信息,以显示铁路负载可以通过的“间隙窗口”。该窗口反映了铁路沿线的障碍物。
给出的数据是轨道上方的高度和给定高度处的宽度。
我现在的过程是选择一个基点,画一条垂直于给定高度的线,然后在给定宽度水平画另一条线。然后我用中心把手把线拉到垂直线的顶部。
我重复上述步骤,直到所有直线都就位,然后用多段线(从基点)连接端点(见附件)
然后删除内部水平线和垂直线。
这给我留下了一个轮廓,我可以放置在轨道车的端部标高和负载上。
数据以以下格式给出(ATR表示轨迹上方):
16英尺11英寸。atr 08英尺02英寸。宽的
16英尺08英寸。atr 09英尺02英寸。宽的
16英尺07英寸。atr 11英尺08英寸。宽的
16英尺02英寸。atr 12英尺02英寸。宽的
14英尺04英寸。atr 12英尺06英寸。宽的
05英尺04英寸。atr 12英尺06英寸。宽的
05英尺03英寸。自动条码读取器12英尺00英寸。宽的
04英尺01英寸。自动条码读取器12英尺00英寸。宽的
03英尺05英寸。atr 11英尺06英寸。宽的
03英尺04英寸。atr 10英尺02英寸。宽的
02英尺05英寸。atr 10英尺01英寸。宽的
是否可以创建一个lisp例程来请求这些数字并生成多段线?
提前感谢!
间隙窗口。pdf 我不明白你到底需要什么
也许这个程序会有所帮助
(defun C:shw(/ data fdesc fname lastp pline points tmp)
(setq fname (getfiled "Select data file:" "C:\\" "txt;csv;dat" 4))
(setq fdesc (open fname "r"))
(while (setq tmp (read-line fdesc))
(setq data (cons tmp data))
)
(close fdesc)
(princ data)
(if data
(progn
(setq data (mapcar (function (lambda (x) (vl-string-subst "," "atr" x)))
(reverse data)))
(setq points
(mapcar (function
(lambda (x)
(setq lastp (substr x (+ 4 (vl-string-search " ," x))))
(list
(+ (atof x)
(/ (atof (substr x
(+ (vl-string-search " ft." x) 5)
(+ 3 (vl-string-search " in. " (car data)))))
12))
(+ (atof lastp)
(/ (atof (substr lastp
(+ (vl-string-search " ft." lastp) 5)
(+ 3 (vl-string-search " in. " lastp))))
12)))))
data)
)
(setvar "osmode" 0)
(command "._pline")
(mapcar 'command points)
(command "")
(setq pline (entlast))
(command "._zoom" "_OB" pline "")
(command "._zoom" ".6x")
(alert "Pick two mirror points, use snap")
(command ".mirror" pline "" pause pause "_n")
(setq mirr (entlast))
(alert "Pick two line points to close contour, use snap")
(command "._line" pause pause "")
(setq line (entlast))
(command "._pedit" "_M" pline mirr line "" "J" "" "")
(command "._regen")
)
(alert "Something wrong")
)
(princ)
)
(princ "Type SHW to execute")
(princ)
~'J'~ 这是非常惊人的代码,谢谢。
我基本上需要它做的是在附加的PDF中创建红色轮廓。
数字是特定高度的宽度(黑线)。随后绘制多段线(红色),以连接每条线的端点;这将创建连接到基点的轮廓。
基点将为0高度和0宽度。
我运行了你的例程,它创建了一个形状。问题是我不能选择镜像点。代码可以自动选择基点。此外,第一个维度是4“,而不是10'-1”
此外,大纲在其一侧。
我希望你明白我在找什么。到目前为止,你帮了我很大的忙,谢谢! 哦,是的,这是因为我的愚蠢,
但我一点也不明白
你能在你将要去的地方创造一些划痕吗
按书写顺序画出所有要点
根据其位置在文本文件中?
换句话说,每一行
文本文件数据?
对不起,我英语不好
~'J'~
页:
[1]