请问各位前辈,我想写一个小程序,实现:点击一矩形,自动在矩形中心处生成面积和重量的标注。以下是我撰写的程序,但是报错了:错误: 参数类型错误: lentityp nil,请问是什么原因呢?代码如下:
 - (defun c:zs ()
- (vl-load-com)
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (setvar "osmode" 0)
- (setq en1 (entsel "Select an object:"))
- (setq bh (getreal "Enter the first number:")
- ch (getreal "Enter the second number:")
- )
- (setq en_data (entget (car en)))
- (setq lx (cdr (assoc 0 en_data)))
- (if (= lx "LWPOLYLINE")
- (progn
- (setq p1 (cdr (assoc 10 en_data)))
- (setq listlength (length en_data))
- (setq p2 (cdr (nth (- listlength 13) en_data)))
- (setq p3 (cdr (nth (- listlength 9) en_data)))
- (setq p4 (cdr (nth (- listlength 5) en_data)))
- (setq midp (list (/ (+ (car p1) (car p3)) 2) (/ (+ (cadr p1) (cadr p3)) 2) 0))
- (setq b1 (distance p1 p2))
- (setq b2 (distance p2 p3))
- (setq area (/ (* b1 b2) 1000000))
- (setq weight (* (* area 0.06) 2.5))
- (setq context1 (strcat (rtos area) "平," (rtos weight) "t"))
- (entmake (list
- '(0 . "TEXT")
- '(100 . "AcDbEntity")
- '(100 . "AcDbText")
- (cons 11 (setq d1 (polar midp (* 1.5 pi) 330)))
- (cons 10 (polar d1 pi 700))
- (cons 40 300)
- (cons 1 context1)
- )
- )
- )
- )
- (princ)
- )
|