fedd 发表于 2011-3-27 13:45:54

请高手来检查我画垂线的lisp语句哪儿有错

(defun c:cx ()
   (setvar "cmdecho" 0)
   (if (setq en (entsel "选择一条直线:"))
   (if (setq pp (getpoint "选择垂线经过的点"))
       (if (setq l (getreal "输入垂线的长度"))
(progn
    (setq en_data (entget (car en)))
    (setq pts (CDR (assoc 10 en_data)))
    (setq pte (CDR (assoc 11 en_data)))
    (setq Perpt (vlax-curve-getClosestPointTo (car en) pp T));找出垂点
    (setq a (angle pts pte))
    (setq pppp (polar Perpt (+ (* pi 0.5) a) l))
    (setq ppp (polar Perpt (+ (* pi 1.5) a) l))
    (entmake (APPEND '((0 . "LINE")
         (100 . "AcDbEntity")
         (100 . "AcDbLine")
         (8 . "0")
      )
       (LIST (CONS 10 pppp) (CONS 11 ppp))
      )
    )
)
       )
   )
   )
   (princ)
)

Andyhon 发表于 2011-3-27 14:20:57

Ok Here
您的错误讯息是什么?

zlg258369 发表于 2011-3-27 20:53:05

没问题呀??

fedd 发表于 2011-3-28 08:20:34

no function definition: VLAX-CURVE-GETCLOSESTPOINTTO
这个是错误信息

Andyhon 发表于 2011-3-28 08:59:52

(vl-load-com)      ; 加这列   (帮助内详)
(defun c:cx ()

fedd 发表于 2011-3-30 15:13:23

高手 Andyhon高手,谢谢

slzlfs 发表于 2011-3-30 19:48:22

选择一条直线:选择垂线经过的点输入垂线的长度123 ; 错误: 参数值错误:
AcDbCurve 2119234248
这是怎么回事?

yxl88168 发表于 2011-3-30 21:00:47

回复 Andyhon 的帖子

程序挺好的,要是能再加上中垂线就更好了

zyhandw 发表于 2011-10-29 14:36:54

如果是做多段线的垂线呢?程序应该怎么写?

hehaidizhi 发表于 2013-7-10 09:51:56

能不能选择其他线型啊,只是直线啊?
页: [1]
查看完整版本: 请高手来检查我画垂线的lisp语句哪儿有错