MSasu 发表于 2022-7-6 07:30:39

这意味着你的问题解决了?如果是的话,你能描述一下怎么做吗?

mfahadrazzaq 发表于 2022-7-6 07:33:11

这不行,兄弟

MSasu 发表于 2022-7-6 07:37:35

在我查看你的代码之前,请编辑以上帖子并添加所需的代码标签。非常感谢。

mfahadrazzaq 发表于 2022-7-6 07:39:27

;;; 12345678901234567890123456789012345678901234567890
;;; VERTEXT.LSPA program to extract the xyz
;;; coordinates from any polyline and export them
;;; to an ascii file.

(defun ERR (S)
(if (= S "Function cancelled")
   (princ "\nVERTEXT - cancelled: ")
   (progn (princ "\nVERTEXT - Error: ") (princ S) (terpri)) ;_ progn
) ; if
(RESETTING)
(princ "SYSTEM VARIABLES have been reset\n")
(princ)
) ; err
(defun SETV (SYSTVAR NEWVAL)
(setq X (read (strcat SYSTVAR "1")))
(set X (getvar SYSTVAR))
(setvar SYSTVAR NEWVAL)
) ; setv
(defun SETTING ()
(setq OERR *ERROR*)
(setq *ERROR* ERR)
(SETV "CMDECHO" 0)
(SETV "BLIPMODE" 0)
) ; end of setting
(defun RSETV (SYSTVAR) (setq X (read (strcat SYSTVAR "1"))) (setvar SYSTVAR (eval X)))
; restv
(defun RESETTING () (RSETV "CMDECHO") (RSETV "BLIPMODE") (setq *ERROR* OERR))
; end of resetting

(defun DXF (CODE ENAME) (cdr (assoc CODE (entget ENAME)))) ; dxf

(defun VERTEXT (/ EN VLIST)
(setq EN (GET-EN))
(if (= (DXF 0 EN) "LWPOLYLINE")
   (setq VLIST (GET-LWVLIST EN))
   (setq VLIST (GET-PLVLIST EN))
) ; if
(WRITE-IT VLIST EN)
) ;_ vertext

(defun GET-EN (/ NO-ENT EN MSG1 MSG2)
(setq NO-ENT 1
      EN   NIL
      MSG1   "\nSelect a polyline: "
      MSG2   "\nNo polyline selected, try again."
) ; setq
(while NO-ENT
   (setq EN (car (entsel MSG1)))
   (if (and EN
            (or (= (DXF 0 EN) "LWPOLYLINE") (= (DXF 0 EN) "POLYLINE")) ; or
         ) ; and
      (progn (setq NO-ENT NIL)) ; progn
      (prompt MSG2)
   ) ; if
) ; while
EN
) ; get-en

(defun GET-LWVLIST (EN / ELIST NUM-VERT VLIST)
(setq ELIST    (entget EN)
      NUM-VERT (cdr (assoc 90 ELIST))
      ELIST    (member (assoc 10 ELIST) ELIST)
      VLIST    NIL
) ; setq
(repeat NUM-VERT
   (setq VLIST (append VLIST (list (cdr (assoc 10 ELIST)))) ; append
   ) ; setq
   (setq ELIST (cdr ELIST)
         ELIST (member (assoc 10 ELIST) ELIST)
   ) ; setq
) ; repeat
VLIST
) ; get-lwvlist

(defun GET-PLVLIST (EN / VLIST)
(setq VLIST NIL
      EN    (entnext EN)
) ; setq
(while (/= "SEQEND" (DXF 0 EN))
   (setq VLIST (append VLIST (list (DXF 10 EN))))
   (setq EN (entnext EN))
) ; while
VLIST
) ; get-plvlist

(defun WRITE-IT (VLST EN / NEWVLIST MSG3 FNAME)
(setq NEWVLIST (mapcar '(lambda (X) (trans X EN 0)) ;_ lambda
                         VLST
               ) ;_ mapcar
      MSG3   "Polyline vertex file"
       ;FNAME    (getfiled MSG3 "" "txt" 1)
      F1       (open "FNAME" "w")
) ; setq
(WRITE-HEADER)
(WRITE-VERTICES NEWVLIST)
(setq F1 (close F1))
) ;_ write-it

(defun WRITE-HEADER (/ STR)
(setq STR "      POLYLINE VERTEX POINTS")
(write-line STR F1)
(setq STR (strcat "X            " "Y            " "Z") ;_ strcat
) ;_ setq
(write-line STR F1)
) ;_ write-header


(defun WRITE-VERTICES (NEWVLIST / XSTR YSTR ZSTR STR)

;***************************************************************************
;***************************************************************************
;***************************************************************************
;Change   The   Text   Height   in   Next   Row   Figure

(setq httt "1.5")
;***************************************************************************
;***************************************************************************
;***************************************************************************


(setq gptx (getpoint "\nBasepoint for X axis: "))
(setq gpty (getpoint "\nBasepoint for Y axis: "))

(foreach ITEM NEWVLIST
   (setq XSTR (rtos (nth 0 ITEM) 3 3)
         YSTR (rtos (nth 1 ITEM) 3 3)
         ZSTR (rtos (nth 2 ITEM) 3 3)
         STR(strcat XSTR (SPACES XSTR) YSTR (SPACES YSTR) ZSTR) ;_ strcat
   ) ; setq
;      (write-line STR F1)



(command "Mtext" (list (+(atof xstr)(/ (atof httt) 3.0)) (cadr gptx)) httt "90" (strcat xstr))
(command "Mtext" (list (+(atof xstr)(/ (atof httt) 3.0)) (cadr gpty)) httt "90" (strcat ystr))

) ; foreach

) ; write-vertices


(defun SPACES (STR / FIELD NUM CHAR SPACE)
(setq FIELD 15
      NUM   (- FIELD (strlen STR))
      CHAR" "
      SPACE ""
) ;_ setq
(repeat NUM (setq SPACE (strcat SPACE CHAR))) ;_ repeat
) ;_ spaces

(defun C:prl () (SETTING) (VERTEXT) (RESETTING) (princ)) ; c:nsl

(prompt "\nwritten Azmat Ali 03317605164")
(prompt "\nCommand: PRL to Start ")

mfahadrazzaq 发表于 2022-7-6 07:42:56

;;; 12345678901234567890123456789012345678901234567890
;;; VERTEXT.LSPA program to extract the xyz
;;; coordinates from any polyline and export them
;;; to an ascii file.

(defun ERR (S)
(if (= S "Function cancelled")
   (princ "\nVERTEXT - cancelled: ")
   (progn (princ "\nVERTEXT - Error: ") (princ S) (terpri)) ;_ progn
) ; if
(RESETTING)
(princ "SYSTEM VARIABLES have been reset\n")
(princ)
) ; err
(defun SETV (SYSTVAR NEWVAL)
(setq X (read (strcat SYSTVAR "1")))
(set X (getvar SYSTVAR))
(setvar SYSTVAR NEWVAL)
) ; setv
(defun SETTING ()
(setq OERR *ERROR*)
(setq *ERROR* ERR)
(SETV "CMDECHO" 0)
(SETV "BLIPMODE" 0)
) ; end of setting
(defun RSETV (SYSTVAR) (setq X (read (strcat SYSTVAR "1"))) (setvar SYSTVAR (eval X)))
; restv
(defun RESETTING () (RSETV "CMDECHO") (RSETV "BLIPMODE") (setq *ERROR* OERR))
; end of resetting

(defun DXF (CODE ENAME) (cdr (assoc CODE (entget ENAME)))) ; dxf

(defun VERTEXT (/ EN VLIST)
(setq EN (GET-EN))
(if (= (DXF 0 EN) "LWPOLYLINE")
   (setq VLIST (GET-LWVLIST EN))
   (setq VLIST (GET-PLVLIST EN))
) ; if
(WRITE-IT VLIST EN)
) ;_ vertext

(defun GET-EN (/ NO-ENT EN MSG1 MSG2)
(setq NO-ENT 1
      EN   NIL
      MSG1   "\nSelect a polyline: "
      MSG2   "\nNo polyline selected, try again."
) ; setq
(while NO-ENT
   (setq EN (car (entsel MSG1)))
   (if (and EN
            (or (= (DXF 0 EN) "LWPOLYLINE") (= (DXF 0 EN) "POLYLINE")) ; or
         ) ; and
      (progn (setq NO-ENT NIL)) ; progn
      (prompt MSG2)
   ) ; if
) ; while
EN
) ; get-en

(defun GET-LWVLIST (EN / ELIST NUM-VERT VLIST)
(setq ELIST    (entget EN)
      NUM-VERT (cdr (assoc 90 ELIST))
      ELIST    (member (assoc 10 ELIST) ELIST)
      VLIST    NIL
) ; setq
(repeat NUM-VERT
   (setq VLIST (append VLIST (list (cdr (assoc 10 ELIST)))) ; append
   ) ; setq
   (setq ELIST (cdr ELIST)
         ELIST (member (assoc 10 ELIST) ELIST)
   ) ; setq
) ; repeat
VLIST
) ; get-lwvlist

(defun GET-PLVLIST (EN / VLIST)
(setq VLIST NIL
      EN    (entnext EN)
) ; setq
(while (/= "SEQEND" (DXF 0 EN))
   (setq VLIST (append VLIST (list (DXF 10 EN))))
   (setq EN (entnext EN))
) ; while
VLIST
) ; get-plvlist

(defun WRITE-IT (VLST EN / NEWVLIST MSG3 FNAME)
(setq NEWVLIST (mapcar '(lambda (X) (trans X EN 0)) ;_ lambda
                         VLST
               ) ;_ mapcar
      MSG3   "Polyline vertex file"
       ;FNAME    (getfiled MSG3 "" "txt" 1)
      F1       (open "FNAME" "w")
) ; setq
(WRITE-HEADER)
(WRITE-VERTICES NEWVLIST)
(setq F1 (close F1))
) ;_ write-it

(defun WRITE-HEADER (/ STR)
(setq STR "      POLYLINE VERTEX POINTS")
(write-line STR F1)
(setq STR (strcat "X            " "Y            " "Z") ;_ strcat
) ;_ setq
(write-line STR F1)
) ;_ write-header


(defun WRITE-VERTICES (NEWVLIST / XSTR YSTR ZSTR STR)

;***************************************************************************
;***************************************************************************
;***************************************************************************
;Change   The   Text   Height   in   Next   Row   Figure

(setq httt "1.5")
;***************************************************************************
;***************************************************************************
;***************************************************************************


(setq gptx (getpoint "\nBasepoint for X axis: "))
(setq gpty (getpoint "\nBasepoint for Y axis: "))

(foreach ITEM NEWVLIST
   (setq XSTR (rtos (nth 0 ITEM) 3 3)
         YSTR (rtos (nth 1 ITEM) 3 3)
         ZSTR (rtos (nth 2 ITEM) 3 3)
         STR(strcat XSTR (SPACES XSTR) YSTR (SPACES YSTR) ZSTR) ;_ strcat
   ) ; setq
;      (write-line STR F1)



(command "Mtext" (list (+(atof xstr)(/ (atof httt) 3.0)) (cadr gptx)) httt "90" (strcat xstr))
(command "Mtext" (list (+(atof xstr)(/ (atof httt) 3.0)) (cadr gpty)) httt "90" (strcat ystr))

) ; foreach

) ; write-vertices


(defun SPACES (STR / FIELD NUM CHAR SPACE)
(setq FIELD 15
      NUM   (- FIELD (strlen STR))
      CHAR" "
      SPACE ""
) ;_ setq
(repeat NUM (setq SPACE (strcat SPACE CHAR))) ;_ repeat
) ;_ spaces

(defun C:prl () (SETTING) (VERTEXT) (RESETTING) (princ)) ; c:nsl

(prompt "\nwritten Azmat Ali 03317605164")
(prompt "\nCommand: PRL to Start ")

mfahadrazzaq 发表于 2022-7-6 07:45:25

这不管用亲爱的兄弟

MSasu 发表于 2022-7-6 07:50:44

请耐心等待。我会看看你的代码,但这需要一段时间。也许其他人也会对此进行调查,并尽快发布解决方案。

mfahadrazzaq 发表于 2022-7-6 07:52:14

好的,我会等的

MSasu 发表于 2022-7-6 07:54:51

请告诉我,你希望这个节目做什么?它似乎应该列出多段线的顶点坐标,但是应该用这些数据做什么呢?
此时,它只是将标题写入保存到当前文件夹中的名为“FNAME”的文件(但没有其他数据),并试图绘制一种由于语法错误而失败的表(但具有重叠行)操作。

mfahadrazzaq 发表于 2022-7-6 07:59:59

等待我再次发送
 
;;; 12345678901234567890123456789012345678901234567890
;;; VERTEXT.LSPA program to extract the xyz
;;; coordinates from any polyline and export them
;;; to an ascii file.

(defun ERR (S)
(if (= S "Function cancelled")
   (princ "\nVERTEXT - cancelled: ")
   (progn (princ "\nVERTEXT - Error: ") (princ S) (terpri)) ;_ progn
) ; if
(RESETTING)
(princ "SYSTEM VARIABLES have been reset\n")
(princ)
) ; err
(defun SETV (SYSTVAR NEWVAL)
(setq X (read (strcat SYSTVAR "1")))
(set X (getvar SYSTVAR))
(setvar SYSTVAR NEWVAL)
) ; setv
(defun SETTING ()
(setq OERR *ERROR*)
(setq *ERROR* ERR)
(SETV "CMDECHO" 0)
(SETV "BLIPMODE" 0)
) ; end of setting
(defun RSETV (SYSTVAR) (setq X (read (strcat SYSTVAR "1"))) (setvar SYSTVAR (eval X)))
; restv
(defun RESETTING () (RSETV "CMDECHO") (RSETV "BLIPMODE") (setq *ERROR* OERR))
; end of resetting

(defun DXF (CODE ENAME) (cdr (assoc CODE (entget ENAME)))) ; dxf

(defun VERTEXT (/ EN VLIST)
(setq EN (GET-EN))
(if (= (DXF 0 EN) "LWPOLYLINE")
   (setq VLIST (GET-LWVLIST EN))
   (setq VLIST (GET-PLVLIST EN))
) ; if
(WRITE-IT VLIST EN)
) ;_ vertext

(defun GET-EN (/ NO-ENT EN MSG1 MSG2)
(setq NO-ENT 1
      EN   NIL
      MSG1   "\nSelect a polyline: "
      MSG2   "\nNo polyline selected, try again."
) ; setq
(while NO-ENT
   (setq EN (car (entsel MSG1)))
   (if (and EN
            (or (= (DXF 0 EN) "LWPOLYLINE") (= (DXF 0 EN) "POLYLINE")) ; or
         ) ; and
      (progn (setq NO-ENT NIL)) ; progn
      (prompt MSG2)
   ) ; if
) ; while
EN
) ; get-en

(defun GET-LWVLIST (EN / ELIST NUM-VERT VLIST)
(setq ELIST    (entget EN)
      NUM-VERT (cdr (assoc 90 ELIST))
      ELIST    (member (assoc 10 ELIST) ELIST)
      VLIST    NIL
) ; setq
(repeat NUM-VERT
   (setq VLIST (append VLIST (list (cdr (assoc 10 ELIST)))) ; append
   ) ; setq
   (setq ELIST (cdr ELIST)
         ELIST (member (assoc 10 ELIST) ELIST)
   ) ; setq
) ; repeat
VLIST
) ; get-lwvlist

(defun GET-PLVLIST (EN / VLIST)
(setq VLIST NIL
      EN    (entnext EN)
) ; setq
(while (/= "SEQEND" (DXF 0 EN))
   (setq VLIST (append VLIST (list (DXF 10 EN))))
   (setq EN (entnext EN))
) ; while
VLIST
) ; get-plvlist

(defun WRITE-IT (VLST EN / NEWVLIST MSG3 FNAME)
(setq NEWVLIST (mapcar '(lambda (X) (trans X EN 0)) ;_ lambda
                         VLST
               ) ;_ mapcar
      MSG3   "Polyline vertex file"
       ;FNAME    (getfiled MSG3 "" "txt" 1)
      F1       (open "FNAME" "w")
) ; setq
(WRITE-HEADER)
(WRITE-VERTICES NEWVLIST)
(setq F1 (close F1))
) ;_ write-it

(defun WRITE-HEADER (/ STR)
(setq STR "      POLYLINE VERTEX POINTS")
(write-line STR F1)
(setq STR (strcat "X            " "Y            " "Z") ;_ strcat
) ;_ setq
(write-line STR F1)
) ;_ write-header


(defun WRITE-VERTICES (NEWVLIST / XSTR YSTR ZSTR STR)

;***************************************************************************
;***************************************************************************
;***************************************************************************
;Change   The   Text   Height   in   Next   Row   Figure

(setq httt "1.5")
;***************************************************************************
;***************************************************************************
;***************************************************************************


(setq gptx (getpoint "\nBasepoint for X axis: "))
(setq gpty (getpoint "\nBasepoint for Y axis: "))

(foreach ITEM NEWVLIST
   (setq XSTR (rtos (nth 0 ITEM) 2 2)
         YSTR (rtos (nth 1 ITEM) 2 2)
         ZSTR (rtos (nth 2 ITEM) 2 2)
         STR(strcat XSTR (SPACES XSTR) YSTR (SPACES YSTR) ZSTR) ;_ strcat
   ) ; setq
;      (write-line STR F1)



(command "text" (list (+(atof xstr)(/ (atof httt) 2.0)) (cadr gptx)) httt "90" (strcat xstr))
(command "text" (list (+(atof xstr)(/ (atof httt) 2.0)) (cadr gpty)) httt "90" (strcat ystr))

) ; foreach

) ; write-vertices


(defun SPACES (STR / FIELD NUM CHAR SPACE)
(setq FIELD 15
      NUM   (- FIELD (strlen STR))
      CHAR" "
      SPACE ""
) ;_ setq
(repeat NUM (setq SPACE (strcat SPACE CHAR))) ;_ repeat
) ;_ spaces

(defun C:prl () (SETTING) (VERTEXT) (RESETTING) (princ)) ; c:nsl

(prompt "\nwritten Azmat Ali 03317605164")
(prompt "\nCommand: PRL to Start ")



页: 1 [2]
查看完整版本: 缺少数字