明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1474|回复: 5

[求助]请大家帮忙看看哪出问题?我对Visual LISP不太懂

[复制链接]
发表于 2004-3-2 22:39:00 | 显示全部楼层 |阅读模式
(defun c:test()
(vl-load-com)
(setq n 0)
(setq ss(ssget))
(setq pt1(getpoint "\n指定基点:"))
(setq ang (getangle pt1 "\n请输入角度:"))
(setq point1(vlax-3d-point pt1))
(setq m(sslength ss))
(repeat m
(setq CURVE(append CURVE (list(vlax-ename->vla-object (ssname ss n)))))
(setq n(1+ n))
) (setq objects (vlax-make-safearray vlax-vbObject (cons 0 (1- m))))
(vlax-safearray-fill objects CURVE)
(vla-rotate objects point1 ang)
(setq CURVE nil)
(princ)
)
发表于 2004-3-2 23:15:00 | 显示全部楼层
你对VLISP不太懂,那你想给你怎样的回答?


1、如果解释里面的错误,你可能也不明白


2、改正它,似乎没有任何必要,rotate命令比它完美多了
 楼主| 发表于 2004-3-3 13:52:00 | 显示全部楼层
虽说不太懂,主要是想让你们帮忙改正错误.在这先谢了!
发表于 2004-3-3 14:37:00 | 显示全部楼层
看我说的2,看它的功能就是将选中的对象进行旋转,


如果你是为使用它,完全可以用ROTATE命令,


如果你是为学习,以后不要去找这样的程序来学,没有意义,写这个程序的人可能对一些概念还不清楚,论坛里有很多程序,你都可以找来学习参考的...
 楼主| 发表于 2004-3-3 20:30:00 | 显示全部楼层
这个程序对我而言很重要!也知道用ROTATE命令 我的源程序是: (defun c:test()
(vl-load-com)
(setq n 0)
(setq ss(ssget))
(setq pt1(getpoint "\n指定基点:"))
(setq ang (getangle pt1 "\n请输入角度:"))
(setq point1(vlax-3d-point pt1))
(setq m(sslength ss))
(repeat m
(setq CURVE(vlax-ename->vla-object (ssname ss n))) (vla-rotate CURVE point1 ang)

(setq n(1+ n))
) (setq CURVE nil)
(princ)
) 可以正常运行,但是我实现选择对象集合后再一起进行旋转或移动。
发表于 2004-3-3 21:08:00 | 显示全部楼层
既然你已经知道rotate的方法的了,你就应该知道它使用的对象是MSITStore:D:\Program%20Files\AutoCAD%202004\help\acadauto.chm::/all_drawing_objects.htm" target="_blank" >All Drawing Objects, MSITStore:D:\Program%20Files\AutoCAD%202004\help\acadauto.chm::/idh_attributeref_object.htm" target="_blank" >AttributeReference,而这里并没有说适用其它的如safearray等,所以你这样就得不到正确的结果
具体参考ActiveX and VBA reference 如果我改,就使用(command "_.rotate" ...)我想这不是你要的结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 18:30 , Processed in 0.191305 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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