Author Topic: help for lisp creating points(getpoint) and put table  (Read 2401 times)

0 Members and 1 Guest are viewing this topic.

HOSNEYALAA

  • Newt
  • Posts: 103
help for lisp creating points(getpoint) and put table
« on: November 06, 2018, 06:51:18 AM »
the lisp give me { error: bad argument type: numberp: nil}

can help me

thanks all.

(defun C:xx (/ A acDataRow acHeaderRow acMiddleCenter acTitleRow B C COLWIDTH CURSPACE DOC E HT N NN NUMCOLUMNS NUMROWS OBJTABLE PT PT1 PTCNTR PTS ROWHEIGHT Y )
  (command "layer" "m" "AVG" "")
  (command "color" "t" "253,176,23")
  (command
    "-osnap"
    "endpoint,midpoint,center,node,quadrant,tangent,INTersection,PERpendicular"
  )
 
  (SETQ ht (GETreal "\Enter Text height : "))
  (SETQ n 0)
  (while
    (setq pt (getpoint "\nSpecify a point :"))
;;;     (SETQ SUMM (ATOF (CDR (ASSOC 1 (TYPE pt)))))
     (setq pts (cons pt pts))
    (SETQ n (1+ n))
     (COMMAND "TEXT" pt ht "0" (rtos n))   
     
    (COMMAND "_point" pt "")
  );while
  (reverse pts)
  (vl-load-com)
  (setq ptCntr 1)
  (setq   pt1 (vlax-3d-point
         (getpoint "\nPick point for top left hand of table: ")
       )
  )
 
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (setq curspace (vla-get-modelspace doc))
  (setq numrows (+ 2 n))
  (setq numcolumns 4)
  (setq rowheight 6)
  (setq colwidth 25)
  (setq   objtable (vla-addtable
         curspace pt1   numrows   numcolumns rowheight colwidth)
  )
  (vla-settext objtable 0 0 "جدول الاحداثيات")
  (vla-setcolumnwidth objtable 0 25)
  (vla-setcolumnwidth objtable 1 25)
  (vla-settext objtable 1 0 "رقم النقطة")
  (vla-settext objtable 1 1 "x")
  (vla-settext objtable 1 2 "y")
  (vla-settext objtable 1 3 "z")

  (vla-SetTextHeight
    Objtable
    (+ acDataRow acHeaderRow acTitleRow)
    2.5
  )
  (vla-SetAlignment Objtable acDataRow acMiddleCenter)

   (SETQ Y 2)
   (SETQ nn 0)
  (while
    (progn
    ((<= nn n)
    (SETQ e(nth (- n nn) pts))
    (SETQ a (CAR e))
    (SETQ B (CADR e))
    (SETQ c (CADDR e))
   
    (RTOS a 2 2)
    (RTOS B 2 2)
    (RTOS c 2 2)
    (vla-settext objtable Y 0 (itoa ptCntr))
    (vla-settext objtable Y 1 (rtos a 2 3))
    (vla-settext objtable Y 2 (rtos b 2 3))
    (vla-settext objtable Y 3 (rtos c 2 3))

    (setq y (1+ Y ))
    (setq ptCntr (+ ptCntr 1))
    (setq nn (+ 1 nn))

   
  )





))
  )

efernal

  • Bull Frog
  • Posts: 206
Re: help for lisp creating points(getpoint) and put table
« Reply #1 on: November 06, 2018, 08:36:29 AM »
Code - Auto/Visual Lisp: [Select]
  1. (DEFUN c:xx (/ a b c colwidth curspace doc e ht n nn numcolumns numrows objtable pt pt1 ptcntr pts rowheight y)
  2.   (SETVAR "CECOLOR" "RGB:253,176,23")
  3.   (SETVAR "OSMODE" 35)
  4.   (INITGET 7)
  5.   (SETQ ht (GETREAL "\n-> Enter text height : "))
  6.   (SETQ n 0)
  7.   (WHILE (SETQ pt (GETPOINT "\n-> Specify a point :"))
  8.     (SETQ pts (CONS pt pts))
  9.     (SETQ n (1+ n))
  10.     (COMMAND "_.TEXT" pt ht "0" (ITOA n))
  11.     (COMMAND "_.POINT" pt "")
  12.   )
  13.   (REVERSE pts)
  14.   (SETQ ptcntr 1)
  15.   (SETQ pt1 (VLAX-3D-POINT (GETPOINT "\n-> Pick point for top left hand of table: ")))
  16.   (SETQ curspace (VLA-GET-MODELSPACE doc))
  17.   (SETQ numrows (+ 2 n))
  18.   (SETQ numcolumns 4)
  19.   (SETQ rowheight 6)
  20.   (SETQ colwidth 25)
  21.   (SETQ objtable (VLA-ADDTABLE curspace pt1 numrows numcolumns rowheight colwidth))
  22.   (VLA-SETTEXT objtable 0 0 "جدول الاحداثيات")
  23.   (VLA-SETCOLUMNWIDTH objtable 0 25)
  24.   (VLA-SETCOLUMNWIDTH objtable 1 25)
  25.   (VLA-SETTEXT objtable 1 0 "رقم النقطة")
  26.   (VLA-SETTEXT objtable 1 1 "x")
  27.   (VLA-SETTEXT objtable 1 2 "y")
  28.   (VLA-SETTEXT objtable 1 3 "z")
  29.   (VLA-SETTEXTHEIGHT objtable (+ ACDATAROW ACHEADERROW ACTITLEROW) 2.5)
  30.   (VLA-SETALIGNMENT objtable ACDATAROW ACMIDDLECENTER)
  31.   (SETQ y 2)
  32.   (SETQ nn 0)
  33.   (WHILE (AND (<= nn n) (/= (1- (- n nn)) -1))
  34.     (SETQ e (NTH (1- (- n nn)) pts)
  35.           a (CAR e)
  36.           b (CADR e)
  37.           c (CADDR e)
  38.     )
  39.     (RTOS a 2 2)
  40.     (RTOS b 2 2)
  41.     (RTOS c 2 2)
  42.     (VLA-SETTEXT objtable y 0 (ITOA ptcntr))
  43.     (VLA-SETTEXT objtable y 1 (RTOS a 2 3))
  44.     (VLA-SETTEXT objtable y 2 (RTOS b 2 3))
  45.     (VLA-SETTEXT objtable y 3 (RTOS c 2 3))
  46.     (SETQ y (1+ y))
  47.     (SETQ ptcntr (+ ptcntr 1))
  48.     (SETQ nn (+ 1 nn))
  49.   )
  50.   (PRINC)
  51. )
  52.  
e.fernal

HOSNEYALAA

  • Newt
  • Posts: 103
Re: help for lisp creating points(getpoint) and put table
« Reply #2 on: November 06, 2018, 02:48:21 PM »
Code - Auto/Visual Lisp: [Select]
  1. (DEFUN c:xx (/ a b c colwidth curspace doc e ht n nn numcolumns numrows objtable pt pt1 ptcntr pts rowheight y)
  2.   (SETVAR "CECOLOR" "RGB:253,176,23")
  3.   (SETVAR "OSMODE" 35)
  4.   (INITGET 7)
  5.   (SETQ ht (GETREAL "\n-> Enter text height : "))
  6.   (SETQ n 0)
  7.   (WHILE (SETQ pt (GETPOINT "\n-> Specify a point :"))
  8.     (SETQ pts (CONS pt pts))
  9.     (SETQ n (1+ n))
  10.     (COMMAND "_.TEXT" pt ht "0" (ITOA n))
  11.     (COMMAND "_.POINT" pt "")
  12.   )
  13.   (REVERSE pts)
  14.   (SETQ ptcntr 1)
  15.   (SETQ pt1 (VLAX-3D-POINT (GETPOINT "\n-> Pick point for top left hand of table: ")))
  16.   (SETQ curspace (VLA-GET-MODELSPACE doc))
  17.   (SETQ numrows (+ 2 n))
  18.   (SETQ numcolumns 4)
  19.   (SETQ rowheight 6)
  20.   (SETQ colwidth 25)
  21.   (SETQ objtable (VLA-ADDTABLE curspace pt1 numrows numcolumns rowheight colwidth))
  22.   (VLA-SETTEXT objtable 0 0 "جدول الاحداثيات")
  23.   (VLA-SETCOLUMNWIDTH objtable 0 25)
  24.   (VLA-SETCOLUMNWIDTH objtable 1 25)
  25.   (VLA-SETTEXT objtable 1 0 "رقم النقطة")
  26.   (VLA-SETTEXT objtable 1 1 "x")
  27.   (VLA-SETTEXT objtable 1 2 "y")
  28.   (VLA-SETTEXT objtable 1 3 "z")
  29.   (VLA-SETTEXTHEIGHT objtable (+ ACDATAROW ACHEADERROW ACTITLEROW) 2.5)
  30.   (VLA-SETALIGNMENT objtable ACDATAROW ACMIDDLECENTER)
  31.   (SETQ y 2)
  32.   (SETQ nn 0)
  33.   (WHILE (AND (<= nn n) (/= (1- (- n nn)) -1))
  34.     (SETQ e (NTH (1- (- n nn)) pts)
  35.           a (CAR e)
  36.           b (CADR e)
  37.           c (CADDR e)
  38.     )
  39.     (RTOS a 2 2)
  40.     (RTOS b 2 2)
  41.     (RTOS c 2 2)
  42.     (VLA-SETTEXT objtable y 0 (ITOA ptcntr))
  43.     (VLA-SETTEXT objtable y 1 (RTOS a 2 3))
  44.     (VLA-SETTEXT objtable y 2 (RTOS b 2 3))
  45.     (VLA-SETTEXT objtable y 3 (RTOS c 2 3))
  46.     (SETQ y (1+ y))
  47.     (SETQ ptcntr (+ ptcntr 1))
  48.     (SETQ nn (+ 1 nn))
  49.   )
  50.   (PRINC)
  51. )
  52.  



Thank you so much for answering me
And correct the code
thanks for your care
thanks for your efforts

efernal

  • Bull Frog
  • Posts: 206
Re: help for lisp creating points(getpoint) and put table
« Reply #3 on: November 06, 2018, 07:14:08 PM »
;; with some changes...
Code - Auto/Visual Lisp: [Select]
  1. (DEFUN c:xx (/ a b c colwidth curspace doc e ht n cn numcolumns numrows objtable pt pt1 ptcntr pts rowheight y)
  2.   (SETVAR "CECOLOR" "RGB:253,176,23")
  3.   (SETVAR "OSMODE" 35)                  ; change if necessary...
  4.   (SETQ n 0)
  5.   (INITGET 7)
  6.   (SETQ ht (GETREAL "\n-> Enter text height : "))
  7.   (PRINC "\n-> Specify a point, ENTER for finish:")
  8.   (WHILE (SETQ pt (GETPOINT ""))
  9.     (SETQ pts (CONS pt pts)
  10.           n   (1+ n)
  11.     )
  12.     (ENTMAKE (LIST (CONS 0 "TEXT") (CONS 1 (ITOA n)) (CONS 10 pt) (CONS 40 ht) (CONS 50 0.0)))
  13.     (ENTMAKE (LIST (CONS 0 "POINT") (CONS 10 pt)))
  14.   )
  15.   (IF (> (LENGTH pts) 1)
  16.     (SETQ pts (REVERSE pts))
  17.   )
  18.   (IF (> (LENGTH pts) 0)
  19.     (PROGN (SETQ ptcntr 1
  20.                  pt1 nil
  21.            )
  22.            (PRINC "\n-> Pick point for top left hand of table: ")
  23.            (WHILE (NOT pt1) (SETQ pt1 (GETPOINT "")))
  24.            (SETQ pt1 (VLAX-3D-POINT pt1))
  25.            (SETQ doc        (VLA-GET-ACTIVEDOCUMENT (VLAX-GET-ACAD-OBJECT))
  26.                  curspace   (VLA-GET-MODELSPACE doc)
  27.                  numrows    (+ 2 n)
  28.                  numcolumns 4
  29.                  rowheight  6
  30.                  colwidth   25
  31.                  objtable   (VLA-ADDTABLE curspace pt1 numrows numcolumns rowheight colwidth)
  32.            )
  33.            (VLA-SETTEXT objtable 0 0 "جدول الاحداثيات")
  34.            (VLA-SETCOLUMNWIDTH objtable 0 25)
  35.            (VLA-SETCOLUMNWIDTH objtable 1 25)
  36.            (VLA-SETTEXT objtable 1 0 "رقم النقطة")
  37.            (VLA-SETTEXT objtable 1 1 "x")
  38.            (VLA-SETTEXT objtable 1 2 "y")
  39.            (VLA-SETTEXT objtable 1 3 "z")
  40.            (VLA-SETTEXTHEIGHT objtable (+ ACDATAROW ACHEADERROW ACTITLEROW) 2.5)
  41.            (VLA-SETALIGNMENT objtable ACDATAROW ACMIDDLECENTER)
  42.            (SETQ y 2)
  43.            (SETQ cn 0)
  44.            (REPEAT (LENGTH pts)
  45.              (SETQ e  (NTH cn pts)
  46.                    cn (1+ cn)
  47.              )
  48.              (VLA-SETTEXT objtable y 0 (ITOA ptcntr))
  49.              (VLA-SETTEXT objtable y 1 (RTOS (CAR e) 2 3))
  50.              (VLA-SETTEXT objtable y 2 (RTOS (CADR e) 2 3))
  51.              (VLA-SETTEXT objtable y 3 (RTOS (CADDR e) 2 3))
  52.              (SETQ y (1+ y))
  53.              (SETQ ptcntr (+ ptcntr 1))
  54.            )
  55.            (VLAX-RELEASE-OBJECT curspace)
  56.            (VLAX-RELEASE-OBJECT doc)
  57.     )
  58.   )
  59.   (PRINC)
  60. )
  61.  
e.fernal

HOSNEYALAA

  • Newt
  • Posts: 103
Re: help for lisp creating points(getpoint) and put table
« Reply #4 on: November 07, 2018, 01:31:03 AM »
Thank you very much for the other solution
I wish you success