rodrigomachado 发表于 2022-7-5 20:28:26

导出每个的度量值

大家好,
 
首先,我要感谢你们提供了这个非常有用的论坛。你帮了我很多。
 
但现在我需要一个lisp,它将每个多段线线段的度量值导出到excel。有点像附上的图片。
 

 
谢谢

BIGAL 发表于 2022-7-5 20:51:37

很确定李·麦克。com有一个例程可以做到这一点。

rodrigomachado 发表于 2022-7-5 21:02:23

我已经找到了,但那一套比我想要的要多。
 
我想要一个只有片段长度的。并且,如果可能的话,可以为表格选择更多的多段线,如之前附着的图像。

Tharwat 发表于 2022-7-5 21:09:55

是否要导出这些线段的值,或者选择多段线,并将每个线段单独导出到单独的单元格中,如Excel工作表中所示?
 
L1和L2呢?它们是否已经存在,或者您希望命名导出的多段线,以引用每行值
到其多段线?

rodrigomachado 发表于 2022-7-5 21:18:19

 
我想单独处理每个部分,如Excel表。
 
关于L1和L2,它们只是一个例子。对于我需要的,可以只是按选定的每条多段线的顺序进行计算,从1开始。

Tharwat 发表于 2022-7-5 21:32:32

试试看,让我知道。
 

(defun c:Test (/ *error* ss f o i l n in sn lst a d st)
;;;        Author : Tharwat 16.Dec.2014        ;;;
;;; Write Polylines' segments to Excel        ;;;
;;;                                        ;;;
(defun *error* (x)
   (if o
   (close o)
   )
)
(princ "\n Select Polyline :")
(if (and (setq ss (ssget '((0 . "LWPOLYLINE"))))
          (setq f (getfiled "\n Save as :" (getvar 'DWGPREFIX) "csv" 1))
   )
   (progn
   (setq o (open f "w")
         i 0
         l 0.
         n 0
   )
   (write-line "Ref No." o)
   (repeat (setq in (sslength ss))
       (repeat (fix (vlax-curve-getendparam
                      (setq sn (ssname ss (setq in (1- in))))
                  )
               )
         (setq d (vlax-curve-getdistatparam sn (setq i (1+ i))))
         (if (< 0. l)
         (setq lst (cons (setq a (- d l)) lst))
         (setq lst (cons d lst))
         )
         (if a
         (setq l (+ l a))
         (setq l (+ l d))
         )
       )
       (entmake (list '(0 . "TEXT")
                      (setq st (assoc 10 (entget sn)))
                      (cons 11 (cdr st))
                      (cons 40 (getvar 'TEXTSIZE))
                      (cons 1 (itoa (setq n (1+ n))))
                      (cons 7 (getvar 'TEXTSTYLE))
                )
       )
       (write-line
         (apply 'strcat
                (mapcar '(lambda (x) (strcat (rtos x 2 2) ";"))
                        (append (list n) lst)
                )
         )
         o
       )
       (setq lst nil
             i   0
             l   0.
       )
   )
   (close o)
   )
)
(princ)
)(vl-load-com)

页: [1]
查看完整版本: 导出每个的度量值