乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 88|回复: 4

再谈获取曲线长度及VLAX类模块

[复制链接]
wmz

50

主题

247

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
447
发表于 2004-6-16 21:31:00 | 显示全部楼层 |阅读模式
明总:我在上个月请购了由张帆 郑立楷 王华杰三位老师编著的>获益匪浅,我就是从这本书里才结识了乐筑天下网站的.特别拜读了第十章第五节的"使用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类模块要写那样长的代码,调试又颇费周折,我在实际使用中便采用了后者,还请明老师指教!
我特别不能明白的是,直接用书中所附光盘里的程序一字不改的加载运行,问题和上面所述一样!特在此洋洋洒洒写上一大篇,希望能从中学到更多东西!
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2004-6-16 21:43:00 | 显示全部楼层
“加载应用程序错误”最主要的原因就是本身Visual LISP ActiveX控件没有注册。必须对其进行注册,置顶中已经提供有注册控件的函数,如果想手工注册,则在引用控件对话框中点击浏览,找到vl16.tlb文件(或其它相关版本文件)并确定就可以。
为什么LISP那么简单,而VBA中那么复杂,其实如果只求长度,VBA也有简单的方法,也就是对象的Length属性,但它不支持所有的曲线对象,只支持直线及多段线。其它的如圆、弧等用其它的属性取得,圆使用Circumference 属性,弧用ArcLength属性。
回复

使用道具 举报

wmz

50

主题

247

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
447
发表于 2004-6-16 22:03:00 | 显示全部楼层
谢谢明总!在2002上不行,明天到2004和2005上试试!
回复

使用道具 举报

wmz

50

主题

247

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
447
发表于 2004-6-17 19:40:00 | 显示全部楼层

明总:这一招也不灵!我将Visual Lisp ActiveX 控件添加,引用,打勾(我已经注意了版本),也不管用,问题依旧.
回复

使用道具 举报

gyl

15

主题

127

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
187
发表于 2004-6-17 23:49:00 | 显示全部楼层
我曾经试验使用VLAX类提取曲线的坐标,但因为速度慢、运行不稳经常导致CAD崩溃而只好放弃,我估计VLAX类有毛病。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-15 21:20 , Processed in 0.331037 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表