乐筑天下

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

请教各位大侠:自己做的LSP怎样能在别的命令中被透明调用?

[复制链接]

15

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2004-9-2 17:34:00 | 显示全部楼层 |阅读模式
比如我在执行PLINE命令时调用一个我自己开发的LSP程序进行一些操做,在这个LSP执行完后,使之可以接着执行刚才没有执行完的PLINE命令!
望不吝指教!!!当万分感激!
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-9-2 18:16:00 | 显示全部楼层
看你的操作具体是什么?不是所有操作都可以的。
回复

使用道具 举报

15

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2004-9-2 18:42:00 | 显示全部楼层
其实我只是想缩放一下图形,但不是简单的缩放!
比如我的图中有很多个点和相应的点号,我的LSP就是给出点号并找到这一点的位置,我要做的就是用PLINE把找到的每一点都连起来!即我找到一个点之后要执行PLINE命令,再运行自己的LSP查找下一个点,之后接着画线!
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-9-2 20:40:00 | 显示全部楼层
将你的LISP程序生成独立变量名空间的VLX程序,再用vlax-add-cmd导入命令,参数选择可以透明使用。注意LISP程序中不能调用command。
回复

使用道具 举报

15

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2004-9-3 08:58:00 | 显示全部楼层
请问版主:不能用command命令怎么才能在程序中完成缩放任务?有用ZOOM吗?
我只是初用LSP,你说的生成独立变量名空间的VLX程序,是怎么操做?
回复

使用道具 举报

16

主题

909

帖子

8

银币

中流砥柱

Rank: 25

铜币
973
发表于 2004-9-3 09:06:00 | 显示全部楼层
To create VLX files with seperate namespace, in VLISPIDE, try         File->Build Application.... I am not sure it is necessary.
You should use ActiveX method to Zoom.
BTW, the best way to solve your problem is, paste you LISP here so others can help you.
回复

使用道具 举报

57

主题

466

帖子

8

银币

中流砥柱

Rank: 25

铜币
694
发表于 2004-9-3 09:10:00 | 显示全部楼层

好象不用这么麻烦吧???
以下是帮助文件
-----------------------------------------------
如果定义了名称格式为 C:XXX 的 AutoLISP 函数,则该函数可以象内置的 AutoCAD 命令一样在 AutoCAD 命令行提示中使用。无论任务是在 Visual LISP 中还是在 AutoCAD 命令提示下定义和加载此函数,情况都是一样。可以用这个功能为 AutoCAD 添加新命令或重定义现有的命令。
要将函数用作 AutoCAD 命令,必须确保它们遵循如下规则:
函数名必须使用格式 C:XXX 格式(大写或小写字符)。名称的 C: 部分必须存在;XXX 部分是用户选择的命令名。C:XXX 可以用来替代内置的 AutoCAD 命令。(详细信息请参见重定义 AutoCAD 命令。)
        函数必须定义为不带参数。然而,允许使用局部变量,并且使用局部变量是一个很好的编程习惯。
可以在任何内置 AutoCAD 命令的提示中透明地调用按此方式定义的函数。透明调用的函数不能调用 command 函数。(command 函数是用来调用 AutoCAD 命令的 AutoLISP 函数,请参见 AutoLISP 参考中的 command。)当透明地发布 C:XXX 定义的命令时,必须在 XXX 部分前加上单引号 (')。
当通过前缀单引号 (') 激活某个 C:XXX 命令时,用户可以透明地发布内置命令,就象对所有透明发布的命令一样。但当某个 C:XXX 命令被激活时,用户不能透明地发布该 C:XXX 命令。
回复

使用道具 举报

15

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2004-9-3 10:06:00 | 显示全部楼层
我在用(’)号调用自己的LSP时显示error : Function cancelled
回复

使用道具 举报

15

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2004-9-3 10:14:00 | 显示全部楼层
(defun c:cz ()
         (setq ptlist nil)
         (setq pt22 (getstring "\n指定查询点号:"))
         (setq pf (getfiled "指定坐标数据文件" "D:/观测数据" "txt" 2))
         (if pf
                         (progn
                                         (setq fp (open pf "r"))
                                         (setq reco (read-line fp)
                                 ii         1
                                         )
                                         (setq sxb (flz reco))
                                         (while sxb
        (setq sxb (flz reco)
                                                 n                 (length sxb)
        )
        (if (/= n 3)
                 (cwts)
        )
        (setq dh (nth 0 sxb)
                                                 pt (list (atof (nth 2 sxb)) (atof (nth 1 sxb)))
        )
        (setq ptlist (cons (list dh pt) ptlist))
                                                                 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                                                                         (setq dh22 (car (nth 0 ptlist)))
                 (setq iii ii)
                                                                         (if (=         pt22         dh22)
                                 (progn
                                         (setq ii 1)
                                                                                                 (setq pt33 (atof (nth (+ ii 1) sxb)))
                                         (setq pt331 (atof (nth ii sxb)))
                                         (setq pt333 (list (+ pt33 10 ) (+ pt331 10 )))
                                                 (setq pt3333 (list (- pt33 10 ) (- pt331 10 )))         
                                                                                                         (command "zoom" pt333 pt3333)
                                         (setq ii iii)
                                 )
                 )
        (setq reco (read-line fp)
                                                 ii                 (1+ ii)
        )
        (setq sxb (flz reco))
                                         )
                                         (close fp)
                         )
         )
(princ)
)
;;;;;;;;;;;;;;存入到表 char ;;;;;;
(defun flz(reco / i0 ii zc le char)
                 (setq char nil)
                 (if (and reco (/= reco ""))(progn
                                                 (setq i0 1 ii 1 zc (substr reco 1 1))
                                                 (while         (/= zc "")
                 (while (= zc " ")
                                                 (setq i0 (1+ i0))
                                                 (setq zc (substr reco i0 1))
                 )
                 (if (/= zc "")(progn
                                                 (setq ii i0)
                                                 (while (and (/= zc " ") (/= zc ""))
                 (setq ii (1+ ii))
                 (setq zc (substr reco ii 1))
                                                 )
                                                 (setq le (- ii i0))
                                                 (setq str (substr reco i0 le))
                                                 (if (= str ".") (setq str ""))
                                                 (setq char (cons str char))
                                                 (setq i0 ii)
                 ))
                                                 )
                 ))
                 (if char (reverse char) char)
)
(defun cwts()
                 (alert (strcat "\n" pf "文件的第" (itoa ii) "行数据错误!"))
                 (close fp)
                 (exit)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
回复

使用道具 举报

15

主题

31

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
91
发表于 2004-9-3 10:22:00 | 显示全部楼层
观测数据文件及格式:
100 100 200
a1 0 90
a2 90 90
a3 180 90
a4 270 90
程序以上传请各位指教!
       
       
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:xztmetw3bwj.dwg 
下载次数:0  文件大小:22.69 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]


请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:nmbqwkmzm32.dwg 
下载次数:0  文件大小:22.69 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]

回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-8-19 19:47 , Processed in 0.761810 second(s), 79 queries .

© 2020-2025 乐筑天下

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