我有一个非常有用的mass properties lisp(mp.lsp)。我已经有很多年了,我不记得我从哪里得到它。
- ;
- ; CALCULATION OF MASS PROPERTIES (This won't work if C: drive is locked
- by your administrator)
- ;
- (defun c:mp()
- (setq fn
- "c:/mass.mpr")
- (princ "\n Please select a region:")
- (setq ss
- (ssget))
- (command "massprop" ss "" "y" fn)
- (setq fn1 (open fn
- "r"))
- (setq x (read-line fn1))
- (setq n 1)
- (while (/=
- n 5)
- (setq x (read-line fn1))
- (setq y
- (read-line fn1))
- (setq n (+ n 1))
- )
- (close
- fn1)
- (setq x1 (read (substr x 26)))
- (setq y1 (read (substr y
- 26)))
- (setq pt1 (list x1 y1))
- (command "point"
- pt1)
- (command "ucs" "o" pt1)
- (command "massprop" ss "" "y"
- fn)
- (textscr)
- (command "ucs" "w")
- )
它创建了一个扩展名为的临时文本文件。可以用任何文本编辑器打开的mpr。它将文本文件放在C:drive中。
我要找的是一个lisp,它可以打开文本文件,然后在每行的末尾添加预定义的文本,然后将修改后的文本插入到图形中。
例如,这是文本文件中的典型读数。它始终具有相同的文本行数:-
----------------地区-------------
面积:2500.000
周长:200.000
边界框:X:-25.000--25.000
Y: -25.000--25.000
质心:X:0.000
Y: 0.000
惯性矩:X:520833.334
Y: 520833.334
惯性积:XY:0.000
回转半径:X:14.434
Y: 14.434
关于质心的主矩和X-Y方向:
一: 520833.333沿[1.000 0.000]
J: 520833.333沿[0.000 1.000]
这是我希望最终文本的示例,每行都添加了一个后缀:-
----------------地区-------------
面积:2500.000 mm^2
周长:200.000 mm
边界框:X:-25.000--25.000 mm
Y: -25.000-25.000毫米
质心:X:0.000 mm
Y: 0.000毫米
惯性矩:X:520833.334 mm^4
Y: 520833.334毫米
惯性积:XY:0.000 mm^2
回转半径:X:14.434 mm
Y: 14.434毫米
关于质心的主矩和X-Y方向:
一: 520833.333沿[1.000 0.000]mm^4
J: 520833.333沿[0.000 1.000]mm^4
我进行了搜索,可以通过手动为每一行输入一个后缀,找到在单个文本行上应用后缀的lisp例程。但如果我能把它自动化,那就更好了。
另一个充满希望的帖子是我在寻求帮助。 |