网通访问 |电信访问 | 网络测速 | 联系管理员 |安全退出论坛,保护账号安全!
发新话题
打印

答谢论坛朋友:版主解决问题专栏!!

我KAO,老师,你不在家好好调养,还写程序,精神可嘉,功底也可嘉。程序很好,我没后悔跟你学。我狂顶!

TOP

局部放在命令有点小bug,现经同事测试已经修改好了,重新上传。[attach]429713[/attach]

[此贴子已经被作者于2005-12-9 13:34:04编辑过]

你的进步就是我的成绩! 紧急问题请发Email:xmltc@163.com

TOP

版主你好:

想请你帮忙,我想写一程式:

有关做放大细图的

具体的如下: 首先选择可以是圆,也可以是矩形,其次是做好的放大,我想它是块,可以直接标注它不用选择标准比例,后给它一个命令(如a)(先选择它,在按快捷键)就可以退出细图标注对别的图进行标注,当中我又发现放大细图没标完整,我想重复a命令再增加放大细图的标注,ok后在按a退出!请您帮忙帮忙!不甚感激!

TOP

23楼,你把22楼程序下载了修改一个就可以了。
你的进步就是我的成绩! 紧急问题请发Email:xmltc@163.com

TOP

以下是引用pwints1在2005-12-4 19:08:20的发言:

谢谢

请斑竹在看看这个程序,倒角标注程序

我刚编的,水平有限,运行起来有问题,请指正:

(defun c:as()
(setvar "cmdecho" 0)
(prompt "\n 倒角标注:2x45度...")
(setq osm (getvar "osmode"))
(setvar "osmode" 1)
(setq pt2 (getpoint "\n 请选择标注起点:"))
(setq pt3 (getpoint pt2 "\n请选择文字存放位置: "))
(if (and ( >= (angle pt2 pt3) (/ pi 2) ) ( <= (angle pt2 pt3) (/ (* pi 3) 2)) )
(progn
(setq pt4 (list(-(car pt3)23)(cadr pt3)))
(setq pt5 (list(+(car pt4)2)(+(cadr pt4)2)))
(command "pline" pt2 pt3 pt4 "")
(setq str (getint "\n请输入倒角大小:<2>"))
(if (null str) ( setq str 2 ))
(setq str1 (strcat (rtos str) "x45%%d"))
(command "text" pt5 6 0 str1 "")


)

(progn
(setq pt4 (list(+(car pt3)23)(cadr pt3)))
(setq pt5 (list(+(car pt3)2)(+(cadr pt3)2)))
(command "pline" pt2 pt3 pt4 "")
(setq str (getint "\n请输入倒角大小:<2>"))
(if (null str) ( setq str 2 ))
(setq str1 (strcat (rtos str) "x45%%d"))
(command "text" pt5 6 0 "2x45%%d" "")


)
)
(setvar "cmdecho" 1)
(setvar "osmode" osm)
)

再次言谢

你的程序问题还太多了,甚至低级错误都还有,要多加努力。
我给你修改了一部分问题。还有<2>里面的默认值要是可以变动的,
下一次使用该命令显示的是上一次输入的值。
程序如果按ESC退出,你的程序就有问题了,更改的系统变量不会被恢复。
学习一下ap-api或学会自定义*error*,错误处理函数。
基本功不扎实,建议你买本专业的书学习一下。

下面是修改了的程序,可以运行了。
(defun c:dcf(/ osm pt2 pt3 pt4 pt5 str str1);;局部变量要加上,否则成为全局变量,造成变量值冲突(程序多时)
(setvar "cmdecho" 0)
(vl-cmdf "_.undo" "be");;为保证使用撤消命令时能一步就把本程序完成的撤消
(prompt "\n 倒角标注:2x45度...")
(setq osm (getvar "osmode"))
(setvar "osmode" 1)
(setq pt2 (getpoint "\n 请选择标注起点:"))
(if(not pt2)(exit));;每一次提示用户输入都要有判断,防止用户人为出错
(setq pt3 (getpoint pt2 "\n请选择文字存放位置: "))
(if(not pt2)(exit));;如果pt2 pt3为空的话,下面的程序就会出错
(if(and(>=(angle pt2 pt3)(* pi 0.5));;少用/,最好用*
(<=(angle pt2 pt3)(* pi 1.5)))
(progn
(setq pt4 (list(-(car pt3)23)(cadr pt3)))
(setq pt5 (list(+(car pt4)2)(+(cadr pt4)2)))
(setvar "osmode" 0);;绘制线条,或写文字时关闭捕捉
(command "pline" pt2 pt3 pt4 "")
(setq str (getreal "\n请输入倒角大小:<2>"));;倒角有小数的情况
(if(null str)(setq str 2))
(setq str1 (strcat (rtos str 2 1) "x45%%d"))
(command "text" pt5 6 0 str1 "")
)
(progn
(setq pt4 (list(+(car pt3)23)(cadr pt3)))
(setq pt5 (list(+(car pt3)2)(+(cadr pt3)2)))
(setvar "osmode" 0);;绘制线条,或写文字时关闭捕捉
(command "pline" pt2 pt3 pt4 "")
(setq str (getreal "\n请输入倒角大小:<2>"))
(if(null str)(setq str 2))
(setq str1 (strcat (rtos str) "x45%%d"))
(command "text" pt5 6 0 str1 "")
)
)
(setvar "osmode" osm);;恢复变量不要放在最后
(setvar "cmdecho" 1);;恢复命令回显
(vl-cmdf "_.undo" "e")
(princ);;静默退出,程序结束不要有任何不必要的信息出现在命令行
)

你的进步就是我的成绩! 紧急问题请发Email:xmltc@163.com

TOP

lantumold斑竹,谢谢你的放大程序.

TOP

我已收到你的邮件了,谢谢
宠辱不惊闲看庭前花开花落, 去留无意漫观天外云展云舒。

TOP

27楼,不要客气,只是我不知道你是哪个,我每天都要收发近10封的求助信。以后大家在给我发邮件时最好注明在哪个论坛上及其注册用户名、关于哪个帖子的哪个问题。
你的进步就是我的成绩! 紧急问题请发Email:xmltc@163.com

TOP

新来的, 想问下用AUTOLISP实现从工具栏图标到程序执行的过程

见标题!

TOP

请问搂主如何能让R14在画线的时候能够像2005那样有指引线的指引。

能帮作个插件么?

谢谢!

TOP

以下是引用zlp324在2005-12-27 20:47:00的发言:

请问搂主如何能让R14在画线的时候能够像2005那样有指引线的指引。

能帮作个插件么?

谢谢!


那不是指引线,而是极轴追踪,我是没能力写这个,这是程序内核的事情。
你还是升级软件吧。现在大家都在争着用2006了,追踪与实时数据录入2006要好用得多,谁还用R14???
你的进步就是我的成绩! 紧急问题请发Email:xmltc@163.com

TOP

呵呵,我不知怎么叫,就自己谁便起了个名字,让您见笑了。
我知道了,谢谢您啊
我们单位要求用cad出图,r14是经过开发的,也挺好用。
滚轮不好用,我下了一个插件,挺好用的。
但插件启动之后,过一段时间后,对象捕捉的设置就只剩端点捕捉了,不知道为什么?
还有一个问题,就是cad文件的路径不能有中文字符,否则直接打开的时候就会出错,而启动r14后,用r14里的打开命令可以打开,路径中无中文也能直接打开,不知道你能帮我解决这个问题么?
非常感谢!

TOP

以下是引用lantumold在2005-12-12 16:23:30的发言:

你的程序问题还太多了,甚至低级错误都还有,要多加努力。
我给你修改了一部分问题。还有<2>里面的默认值要是可以变动的,
下一次使用该命令显示的是上一次输入的值。
程序如果按ESC退出,你的程序就有问题了,更改的系统变量不会被恢复。
学习一下ap-api或学会自定义*error*,错误处理函数。
基本功不扎实,建议你买本专业的书学习一下。

下面是修改了的程序,可以运行了。
(defun c:dcf(/ osm pt2 pt3 pt4 pt5 str str1);;局部变量要加上,否则成为全局变量,造成变量值冲突(程序多时)
(setvar "cmdecho" 0)
(vl-cmdf "_.undo" "be");;为保证使用撤消命令时能一步就把本程序完成的撤消
(prompt "\n 倒角标注:2x45度...")
(setq osm (getvar "osmode"))
(setvar "osmode" 1)
(setq pt2 (getpoint "\n 请选择标注起点:"))
(if(not pt2)(exit));;每一次提示用户输入都要有判断,防止用户人为出错
(setq pt3 (getpoint pt2 "\n请选择文字存放位置: "))
(if(not pt2)(exit));;如果pt2 pt3为空的话,下面的程序就会出错
(if(and(>=(angle pt2 pt3)(* pi 0.5));;少用/,最好用*
(<=(angle pt2 pt3)(* pi 1.5)))
(progn
(setq pt4 (list(-(car pt3)23)(cadr pt3)))
(setq pt5 (list(+(car pt4)2)(+(cadr pt4)2)))
(setvar "osmode" 0);;绘制线条,或写文字时关闭捕捉
(command "pline" pt2 pt3 pt4 "")
(setq str (getreal "\n请输入倒角大小:<2>"));;倒角有小数的情况
(if(null str)(setq str 2))
(setq str1 (strcat (rtos str 2 1) "x45%%d"))
(command "text" pt5 6 0 str1 "")
)
(progn
(setq pt4 (list(+(car pt3)23)(cadr pt3)))
(setq pt5 (list(+(car pt3)2)(+(cadr pt3)2)))
(setvar "osmode" 0);;绘制线条,或写文字时关闭捕捉
(command "pline" pt2 pt3 pt4 "")
(setq str (getreal "\n请输入倒角大小:<2>"))
(if(null str)(setq str 2))
(setq str1 (strcat (rtos str) "x45%%d"))
(command "text" pt5 6 0 str1 "")
)
)
(setvar "osmode" osm);;恢复变量不要放在最后
(setvar "cmdecho" 1);;恢复命令回显
(vl-cmdf "_.undo" "e")
(princ);;静默退出,程序结束不要有任何不必要的信息出现在命令行
)

lantumold 你好
这个程序运行时出现下述提示:
“倒角标注:2x45度...
请选择标注起点:
请选择文字存放位置:
请输入倒角大小:<2> 未知命令“DF”。按 F1 查看帮助。
_.undo 输入要放弃的操作数目或
[自动(A)/控制(C)/开始(BE)/结束(E)/标记(M)/后退(B)] <1>: e”

我想问下出现“未知命令“DF”。按 F1 查看帮助”是怎么回事,能用
(vlax-add-cmd)这个函数解决吗?
谢谢
pwints

宠辱不惊闲看庭前花开花落, 去留无意漫观天外云展云舒。

TOP

(command "text" pt5 6 0 str1 "")这一句后面的“”不能要。

(command "text" pt5 6 0 str1)

你的进步就是我的成绩! 紧急问题请发Email:xmltc@163.com

TOP

受益匪浅

谢谢

宠辱不惊闲看庭前花开花落, 去留无意漫观天外云展云舒。

TOP

顶上去

TOP

我也是刚学lisp想问问版主,

一、在用entsel功能时想同时用锁点功能许多书都说可以特殊指定用object snap但没有具体的操作格式,autocad的帮助也是这样,我也在其它版块发了这个问题可还没有人答我,

二、用dtext建立的文本时,可以在文本框外任一点单击以结束文本的操作,那如何判断dtext的结束呢?

谢谢版主!!!

TOP

TO 37楼,用锁点功能我建议用ssget函数来实现,第二个问题程序中DTEXT不能实现输入文字,但TEXT可以实现,如(command "text" pause 10 0 "这个测试!") ,只能输入一行文字
我设计,我自豪!

TOP

多谢版主!!我再试试

TOP

斑竹,遗憾这么晚才发现这个论坛,我现在是新手,我怎么才能阅读“精华贴”啊?

TOP

发新话题