明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1107|回复: 1

[函数] 请高手给检测下这句代码错在哪个地方

[复制链接]
发表于 2013-3-29 12:45 | 显示全部楼层 |阅读模式
  1. (defun c:yd(/ AQZB2 EN1 EN2 SS SY1 SY2 VLA1 VLA2 vlax-vbDouble VZB2 ZB1 ZB2)
  2.   (setq ss(ssget'((0 . "lwpolyline")(8 . "jzd"))));选择两条多段线
  3.   (setq vla1(vlax-ename->vla-object (ssname ss 0))vla2(vlax-ename->vla-object (ssname ss 1)))
  4.   (setq zb1(getpoint"\n请选择要移动的顶点:"))
  5.   (setq sy1(vlax-curve-getParamAtPoint vla1 zb1)sy2(vlax-curve-getParamAtPoint vla2 zb1));获取点在各个多段线上的索引
  6.   (setq aqzb2 (vlax-make-safearray vlax-vbDouble '(0 . 1))) ;创建安全数组
  7.   (setq zb2(getpoint"\n请选择要目标顶点:"))
  8.   (setq zb2(list(car zb2)(cadr zb2)))
  9.   (setq vzb2(vlax-safearray-fill aqzb2 zb2));为安全数组赋值
  10.   (vla-put-coordinate vla1 sy1 vzb2);更新顶点
  11.   (vla-put-coordinate vla2 sy2 vzb2)
  12.   (princ)
  13. )
该命令的目的是同时移动2条多段线上的同一顶点到指定位置,我在使用该命令时,提示:请选择要移动的顶点:; 错误: 参数类型错误: fixnump: nil ,根据上一断点源代码发现是(vlax-make-safearray vlax-vbDouble '(0 . 1))出现了类型错误,我实在想不明白,这是一句简单地创建安全数组的代码,怎么会出错呢?请高手们给解答下啊。
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2013-3-29 13:14 | 显示全部楼层
找到错了,原来把vlax-vbDouble 设成变量了。粗心呐
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-19 00:52 , Processed in 0.180425 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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