倔强的蚂蚁 发表于 2013-11-13 13:07:32

程序还没写完,写到这里,运行,最后提示参数太多,不知道为什么

(defun c:sss ()
(vl-load-com)
(setvar "cmdecho" 0)                        ;关闭回显
(setq os (getvar "osmode"))
(setvar "osmode" 0)

(setq        l1 (entsel "\nSelect line:")
        l2 (entsel "\nSelect line:")
)
(setq        p2 (cadr l1)
        l1 (car l1)
        p3 (cadr l2)
        l2 (car l2)
)

(setq obj1 (vlax-ename->vla-object l1))
(setq obj2 (vlax-ename->vla-object l2))
(setq p1 (vlax-invoke obj1 'IntersectWith obj2 acExtendNone))

(setq r (getdist "\nInput r:"))

(setq        p4 (polar p1 (angle p1 p2) r)
        p5 (polar p1 (angle p1 p3) r)
)

(setq        yuanhu (entmake
               '(0. "arc")
               (cons 8 "0")
               (cons 10 p1)
               (cons 40 r)
               (cons 50 (angle p1 p2))
               (cons 51 (angle p1 p3))
             )
)










(setvar "osmode" os)
(setvar "cmdecho" 1)
(princ)
)






有谁能帮我看看,到底是怎么回事?

倔强的蚂蚁 发表于 2013-11-13 13:09:01

目的是要在两条垂直相交线处,以交点为中心,画一个内凹的圆角。

倔强的蚂蚁 发表于 2013-11-13 13:13:07

感觉问题就出在entmake那块了

倔强的蚂蚁 发表于 2013-11-13 13:23:25

(setq        yuanhu (entmakex
               (list
                   '(0 . "arc")
                   (cons 8 "0")
                   (cons 10 p1)
                   (cons 40 r)
                   (cons 50 (angle p1 p2))
                   (cons 51 (angle p1 p3))
               )
             )
)

这样就可以了。

q3_2006 发表于 2013-11-13 13:37:03

(cons 50 (angle p1 p2))
(cons 51 (angle p1 p3))
改成
(cons 50 (Vlax-Get obj1 'Angle ))
(cons 51 (Vlax-Get obj2 'Angle ))
更好

倔强的蚂蚁 发表于 2013-11-13 14:42:40

q3_2006 发表于 2013-11-13 13:37 static/image/common/back.gif
(cons 50 (angle p1 p2))
(cons 51 (angle p1 p3))
改成


谢谢!我改改试一试。
页: [1]
查看完整版本: 程序还没写完,写到这里,运行,最后提示参数太多,不知道为什么