明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 晓雨

请帮帮忙

  [复制链接]
发表于 2004-4-7 16:23 | 显示全部楼层
本帖最后由 作者 于 2004-4-7 20:13:12 编辑

感觉不出用VL有什么优势...之前有讨论过一个问题,就是关于回调函数的问题,在帮助文件的回调函数部分,有不可以使用entget,entmod等函数,可在反应器使用规则里,却没有这样的约束,而且我用了,也没有出现什么问题...不知道究竟是否可以使用,会不会有潜在的问题? (vl-load-com)
(defun Chg_layer (calling-reactor commandInfo / lay doc lays lay1)
(if (setq lay (cdr (assoc (car commandInfo) lay_lst)))
(progn
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(setq lays (vla-get-layers doc))
(setq lay1 (vl-catch-all-apply 'vla-item (list lays lay)))
(if (vl-catch-all-error-p lay1)
(setq lay1 (vla-add lays lay))
)
(vla-put-activelayer doc lay1)
)
)
(princ)
)
(defun test (lst)
(vlr-pers (vlr-command-Reactor
nil
'((:VLR-commandWillStart . Chg_layer))
)
)
(setq lay_lst lst)
)
 楼主| 发表于 2004-4-7 19:58 | 显示全部楼层
我把(defun c:txt
(test '(("LINE" . "0") ("MTEXT" . "w文字标注") ("BHATCH" . "剖面线")))
)加载了,它在命令行出现了下面的提示 命令: E ERASE ; 错误: ActiveX 服务器返回错误: 非选择性的参数。
找到 3 个
发表于 2004-4-7 20:14 | 显示全部楼层
不好意思,把判断忘了,已经改好了...
 楼主| 发表于 2004-4-8 11:33 | 显示全部楼层
我不会用vl,我只会用al
 楼主| 发表于 2004-4-8 20:48 | 显示全部楼层
本帖最后由 作者 于 2004-4-8 22:12:32 编辑

(defun c:bii(/ n pt txt txt0 pt1 pt2 pt3 pttxt d)
(setq txt0 1)
(while (setq pt(getpoint "\n 输入标记线连接点: " ))
(setq n(getint" 请输入零件数目<1>: "))
(if(not n)
(setq n 1)
)
(princ (strcat "\n 输入起始零件序号<" (itoa txt0) ">:"))
(setq txt(getint))
(if(not txt)
(setq txt txt0)
)
(setq d(getstring "\n 在左还是在右<在左r>: "))
(if(= "r" d)
(setq pt(list (- (car pt) (+ (* 6 n) (* 2 (- n 1)))) (cadr pt)))
) (setq pt1(list (+ (car pt) 6) (cadr pt))
pttxt(list (+ (car pt) 3) (+ (cadr pt) 2.4))
)
(setq cl(getvar "clayer"))
(setq os(getvar "osmode"))
(setvar "clayer" "w文字标注")
(setvar "osmode" 0) (command"line" pt pt1 "")
(command"text" "mc" pttxt 3.5 0 txt)
(repeat (- n 1)
(setq pt2(polar pt1 (/ (* pi 7) 4) 1.41421))
(command"line" pt1 pt2 "")
(setq pt3(list (+ (car pt1) 2) (cadr pt1)))
(setq pt4(list (+ (car pt3) 6) (cadr pt3)))
(command"line" pt2 pt3 pt4 "")
(setq pttxt(list (+ (car pt3) 3) (+ (cadr pt) 2.4)))
(setq txt (1+ txt))
(print txt)
(command "text" "MC" pttxt 3.5 0 txt)
(setq pt1 pt4)
)
(setq txt0 (+1 txt)
)
(setvar "clayer" cl)
(setvar "osmode" os)
)
没问题了,衷心感谢飞哥,没有你,就没有我的今天。
发表于 2004-4-8 21:00 | 显示全部楼层
(princ (strcat "\n 输入起始零件序号&lt;" (itoa txt) "&gt;:"))


到这里为止,TXT还是为空的,(itoa 空)肯定就出错了...


另外,输入这样写...(setq n (getint "输入零件数目:"))


其它输入函数也可以这样写,具体查看帮助文件中的介绍...
 楼主| 发表于 2004-4-8 21:57 | 显示全部楼层
你太酷了,你要我怎么感谢你呢
发表于 2004-4-9 17:39 | 显示全部楼层
呵呵,那就来个以生相娶#
发表于 2004-4-9 17:53 | 显示全部楼层
spring发表于2004-4-9 17:39:00呵呵,那就来个以生相娶#

一个成语共4个字,你就错了两个,够厉害的,哈哈
发表于 2004-4-9 17:58 | 显示全部楼层
没办法,书读的不多,小学还没毕业,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 14:45 , Processed in 0.165322 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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