- 积分
- 6961
- 明经币
- 个
- 注册时间
- 2004-4-9
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
明总:我在上个月请购了由张帆 郑立楷 王华杰三位老师编著的<<AutoCAD VBA开发精彩实例教程>>获益匪浅,我就是从这本书里才结识了明经通道网站的.特别拜读了第十章第五节的"使用VLAX类模块",使我对此问题有了一定的了解.但我有几个问题请教: 1,关于获得曲线长度的方法,在上几次贴子里我已重复多次请教过,用书中提供的例子和您在网上发的贴子的源代码里,我均引用在我写的小程序里,结果在自己操作系统是XP,ACAD2005上均顺利通过,到了别人的操作系统是XP,ACAD2004上的好几台机子上却均出现了"加载应用程序错误",为此我折腾了好几天:将一台ACAD2004改装为ACAD2005,问题依旧.这有的能行有的不行,却是为何??? 再则,获得曲线的长度采用Autolisp和Visual lisp 均比较简单,如下两段代码: ;;;求曲线长方法一 (defun c:Curvelength() (command "area" "e" (ssget)) (print (getvar "perimeter")) ) ;;;求曲线长方法二 (defun c:CurveLength() (vl-load-com) (setq splineObj (car (entsel "\n选择线: "))) (setq Ldist (vlax-curve-getDistAtParam splineObj (- (vlax-curve-getEndParam splineObj) (vlax-curve-getStartParam splineObj) ) ) ) (print Ldist) (princ) ) 而采用VLAX类模块要写那样长的代码,调试又颇费周折,我在实际使用中便采用了后者,还请明老师指教!
我特别不能明白的是,直接用书中所附光盘里的程序一字不改的加载运行,问题和上面所述一样!特在此洋洋洒洒写上一大篇,希望能从中学到更多东西!
|
|