明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3526|回复: 7

为啥不能透明调用命令?

[复制链接]
发表于 2003-8-5 21:15:00 | 显示全部楼层 |阅读模式
我需要自定义的透明命令,但却不成功,请指正.实验如下:
在visual lisp  控制台输入

_$ (defun try() (princ "ok"))

TRY

_$ (VLAX-Add-Cmd "try" 'try "try" 1+4)

"try"

能成功将try命令加入到AutoCAD命令集之中,但却不能用'try命令透明调用.请高手指正.
发表于 2003-8-6 08:01:00 | 显示全部楼层
透明调用要加C:
(defun C:TRY () (princ "ok") (princ))
 楼主| 发表于 2003-8-6 14:38:00 | 显示全部楼层
我加C:后还是不行。能说具体些吗?
发表于 2003-8-6 15:08:00 | 显示全部楼层
(defun C:TRY () (princ "ok") (princ))
(VLAX-Add-Cmd "try" 'c:try "try" 5)
注意:LISP不认识:1+4,必须用(+ 1 4)
 楼主| 发表于 2003-8-6 19:11:00 | 显示全部楼层
好极了,非常感谢
 楼主| 发表于 2003-8-7 12:28:00 | 显示全部楼层
我试了一下,没有运行别的命令时,直接用透明命令还行。但当运行别的命令,命令还没运行完成时,运行我自己加入到cad的透明命令,但总出现致命错误。

;;;在图形中,将鼠标按下点的地方移动到屏幕的中央。
(defun c:mytry (/ p)
  (setq p (getpoint "按下移到屏幕中心的点:"))
  (command "pan" p (getvar "viewctr"))
  (princ)
)

(vlax-add-cmd "mytry" 'c:mytry "mytry" 5)

如果先运行"line"命令,在按下第一点后,运行透明命令'mytry ,反应是,首先是屏幕不会移动,又回到了"line"命令。"line"命令运行完后才移动屏幕。这样的结果并不是我所希望的。我希望的是先移动屏幕再完成"line"命令。到这里,cad就有了致命错误,再运行别的命令,马上就报告致命错误,并退出cad. 经单步运行检测,发现,透明命令里如果有command命令就会出现致命错误。请问,如何才能达到我的目的。
发表于 2003-8-7 13:37:00 | 显示全部楼层
本帖最后由 作者 于 2003-8-7 13:58:49 编辑

用VLISP
ZoomWindow Method代替PAN指令
(VL-LOAD-COM)
(defun C:MYTRY
       (/ HOLDOSMODE P VIEWS CTR SIZE RATE W RT LB P PPT1 PT2 APP)
  (setq HOLDOSMODE (getvar "OSMODE"))
  (setq VIEWS (getvar "viewsize"))
  (setq CTR (getvar "viewctr"))
  (setq SIZE (getvar "screensize"))
  (setq RATE (/ (car SIZE) (cadr SIZE)))
  (setq W (* RATE VIEWS))
  (setq        RT (list (+ (car CTR) (/ W 2))
                 (+ (cadr CTR) (/ VIEWS 2))
           )
  )
  (setq        LB (list (- (car CTR) (/ W 2))
                 (- (cadr CTR) (/ VIEWS 2))
           )
  )
  (setq P (getpoint "按下移到螢幕中心的點: "))
  (setvar "OSMODE" 0)
  (setq PT1 (polar RT (angle CTR P) (distance CTR P)))
  (setq PT2 (polar LB (angle CTR P) (distance CTR P)))
  (setvar "OSMODE" HOLDOSMODE)
  (setq APP (vlax-get-acad-object))
  (vla-zoomwindow APP (vlax-3d-point PT2) (vlax-3d-point PT1))
  (vlax-release-object APP)
  (princ)
)
 楼主| 发表于 2003-8-7 18:48:00 | 显示全部楼层
多谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 20:49 , Processed in 0.181252 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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