模具初级
我KAO,老师,你不在家好好调养,还写程序,精神可嘉,功底也可嘉。程序很好,我没后悔跟你学。我狂顶!
查看详细资料
TOP
老狼
专业源于敬业
[此贴子已经被作者于2005-12-9 13:34:04编辑过]
查看个人网站
模具高级
白骨
版主你好:
想请你帮忙,我想写一程式:
有关做放大细图的
具体的如下: 首先选择可以是圆,也可以是矩形,其次是做好的放大,我想它是块,可以直接标注它不用选择标准比例,后给它一个命令(如a)(先选择它,在按快捷键)就可以退出细图标注对别的图进行标注,当中我又发现放大细图没标完整,我想重复a命令再增加放大细图的标注,ok后在按a退出!请您帮忙帮忙!不甚感激!
谢谢
请斑竹在看看这个程序,倒角标注程序
我刚编的,水平有限,运行起来有问题,请指正:
(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);;静默退出,程序结束不要有任何不必要的信息出现在命令行 )
模具中级
auto CAD
模具入门
请问搂主如何能让R14在画线的时候能够像2005那样有指引线的指引。能帮作个插件么?
谢谢!
lantumold 你好 这个程序运行时出现下述提示:“倒角标注:2x45度... 请选择标注起点:请选择文字存放位置:请输入倒角大小:<2> 未知命令“DF”。按 F1 查看帮助。_.undo 输入要放弃的操作数目或 [自动(A)/控制(C)/开始(BE)/结束(E)/标记(M)/后退(B)] <1>: e”我想问下出现“未知命令“DF”。按 F1 查看帮助”是怎么回事,能用(vlax-add-cmd)这个函数解决吗?谢谢 pwints
(command "text" pt5 6 0 str1 "")这一句后面的“”不能要。
(command "text" pt5 6 0 str1)
受益匪浅
我也是刚学lisp想问问版主,
一、在用entsel功能时想同时用锁点功能许多书都说可以特殊指定用object snap但没有具体的操作格式,autocad的帮助也是这样,我也在其它版块发了这个问题可还没有人答我,
二、用dtext建立的文本时,可以在文本框外任一点单击以结束文本的操作,那如何判断dtext的结束呢?
谢谢版主!!!
ID设计师
多谢版主!!我再试试