Eachy 工具集 Lisp源码 详解
本工具集为本人多年来积累的一些小程序并最终合成一个工具集,本贴将对该工具集的所有源码逐步予以公布并尽可能增加注释,最终打造一个开源的工具集。
首先说说工具集文件的构成,打包后仅包括了 vlx 主程序、mnu 菜单文件、mnl 自动加载文件、dll 图标文件。
主程序由若干个lisp 文件打包而成,为了便于程序的组织,这些 Lisp 文件依据功能单独保存为lisp文件:
1 Autolisp 通用函数文件,不在多而在精
2 ActivX 通用函数
3 DCL *** 作通用函数
4 按实体类型 *** 作的各个程序文件
5 专业性应用程序
推荐:安装一个天正结构,里面有个”多文编辑命令“,应该能满足你要求。
建议思路:
1、只想选择文字,采用类似”(setq ss1 (ssget '((0 "TEXT,MTEXT")))“选择集过滤即可。
2、挨个提取上面选择集ss1中的元素,将文字内容,文字坐标,提出出来,做表。
如:将第一个元素的文字内容,X坐标,Y坐标分别存入变量str,sx,sy中
(setq str (entget (ssname ss1 1))
sx (car (cdr (assoc 10 str)))
sy (cadr(cdr (assoc 10 str)))
str (cdr (assoc 1 str))
)
3、编写排序部分,注意提供上面表中数据可用的接口。
4、将给中数据按坐标对文字内容排序,并输出。
repeat m ,m是5,循环了5次,这个时候i等于5,那么N等于1200。
while (<= i 5)如果i等于5,那么就循环了6次,这个时候,i等于6了,那么结果N等于7200了。看看循环的次数。
如果你只是写了一个两个的程序,应当不用说明,如果以后还要写程序的话,就写说明,否则,你检查程序的时候,应当你不认识这个变量的应用。
当程序越来越多后,你回头看看原来的程序,你会发现可以优化,如果没有说明的话,你怎么能够分析是否可以优化。
一个大的程序,最好把这个程序分割成小的程序,如果别的程序要用到小程序功能,就不用重复编写了。写到最后,你会发现,要删除一个程序,根本不敢动,动了一个,可能会造成其它的程序无法运行。
所以变量写说明是很重要的,写了说明,实际上就是你编写的思路。如果你的思路有漏洞,也能够看出来。
1按F1帮助里面ARC有详解,如command"arc"p1"c"p2"a"angle1
p1是起点,p2是圆心,p3是角度。其他的画法都有解释,按提示写就行了。
2,提取endpoint;(setq p0 (getvar "lastpoint")这是画好了直接提取~
(defun c:tes ( / #k1 %k1 %k2 &k1 &kw1)
(if (setq &k1 (entsel "\n请选择参考圆"))
(progn
(setq #k1 (entget (car &k1)) &k1 (cdr (assoc 0 #k1)));取得图元名
(if (= &k1 "CIRCLE");如果是圆
(progn;那么
(setq %k1 (assoc 40 #k1));取得圆半径
(if (setq &kw1 (ssget '((0 "CIRCLE"))));框选圆
(progn
(setq &k1 (ssname &kw1 0))
(while &k1
(setq &kw1 (ssdel &k1 &kw1)
#k1 (entget &k1)
%k2 (assoc 40 #k1)
#k1 (subst %k1 %k2 #k1);圆半径替换为参考圆半径
)
(entmod #k1)
(setq &k1 (ssname &kw1 0))
);while
)
);if3
)
);if2
)
);if1
(princ)
);复制到记事本,以lsp为后缀命名。autoLISP加载了,命令:tes
以上就是关于可以帮我用LISP语言编CAD要用的密码程序,听说这可以让别人打开CAD,只看到内容,不可以修改。先表示感谢全部的内容,包括:可以帮我用LISP语言编CAD要用的密码程序,听说这可以让别人打开CAD,只看到内容,不可以修改。先表示感谢、求助一个cad autolisp的问题、关于AutoLISP中repeat和while的命令判读等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)