找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1218|回复: 1

[求助] 关于用户手册中的多义线代码的疑问

[复制链接]
发表于 2013-10-21 11:04:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
xdrx_api用户手册中的多义线增减节点命令:在CAD2008中为什么不能正常运行。出现以下错误:
命令: POLY_REMOVE_VERTEX
请点取要去掉的多义线上的顶点<退出>no function definition: $GET_VERTEX_INDEX,程序退出!; 错误: *error*
函数中出错参数类型错误: consp nil

为什么呢??????已经加载了ACAD 2008-2009 build 2013.1020

源程序代码:
;|

   命令:poly_add_vertex

   功能:给选择的POLYLINE段加入一个顶点



   说明:程序配合XDRX_API使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的

          LISP目录,自己加入到菜单里面就可以非常方便的使用了。

          关于程序的建议请到“晓东CAD空间-编程申请”论坛

          http://www.xdcad.com/forum留言



|;

(defun $get_vertex_index (e pt / v_num i tf)

    (xdrx_setenttodb e)
将实体的(entget)数据存入XDRX内部数据库的ARX变量,若该变量指针有值,则覆盖。并将(ssname) 的序号 i 置 0

    (if (= "POLYLINE" (xdrx_getentdxf 0))


提取XDRX内部数据库保存的(entget)实体数据的ARX变量中的指定的DXF组码的值     (xdrx_polyline_ConvertFrom e)
从2DPOLYLINE(R13老多义线)转换得到LWPOLYLINE   )

    (setq v_num (xdrx_polyline_numVerts e)
获得LWPOLYLINE的顶点数
        i -1

  )
  (setq tf t)
  (while (and
           tf
           (< i v_num)
         )
    (setq i (1+ i))

    (if (xdrx_polyline_onSegAt e i (trans pt 1 0))
   
    (setq tf nil)

    )

  )
  i
)

(defun c:poly_add_vertex (/ e pt pj)

  (if (and

        (setq e (xdrx_entsel "\n请点取POLY上加入顶点的线段<退出>" '

                             ((0 . "*polyline"))

                )

        )

        (setq pt (getpoint "\n请点取要加入的顶点位置<退出>:"))



      )

    (progn

      (setq pj (trans (cadr e) 1 0)

            pj (osnap pj "nea")

      )

      (setq i ($get_vertex_index (car e) pj))

      (xdrx_polyline_addVertexAt (car e) (1+ i) pt)

    )

  )

  (princ)

)

;|

   命令:poly_remove_vertex

   功能:删除选择的POLYLINE的一个顶点

   说明:程序配合XDRX_API build 20428+版本使用,朋友们可以把这个LISP拷贝到“晓东工具箱”的安装的

          LISP目录,自己加入到菜单里面就可以非常方便的使用了。

          关于程序的建议请到“晓东CAD空间-编程申请”论坛

          http://www.xdcad.com/forum留言  

|;

(defun c:poly_remove_vertex ()

  (xdrx_begin '(("pickbox" 5 "aperture" 5))

  (if (setq e (xdrx_entsel "\n请点取要去掉的多义线上的顶点<退出>" '

                           ((0 . "*polyline"))

              )

      )

    (progn

      (setq pj (trans (cadr e) 1 0)

            pj (osnap pj "int,end")

      )

      (setq i ($get_vertex_index (car e) pj))

      (xdrx_polyline_removeVertexAt
   
                (car e) (1+ i))

    )

  )

  (xdrx_end)

  (princ)

)




论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-21 11:21:53 | 显示全部楼层
提示你 函数 $GET_VERTEX_INDEX 没加载,你贴的代码第一个函数就是它,你加载它了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-3 20:15 , Processed in 0.265809 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表