明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 天天问

[源码] 用lisp创建标注样式(有更新)

    [复制链接]
发表于 2022-3-28 16:03 | 显示全部楼层

谢谢分享,不错的分享。
发表于 2022-3-28 17:26 | 显示全部楼层
天天问 发表于 2022-3-28 10:50
你可以根据需要自己改一下代码
思路是:把字高设置的那一句从子函数里剪切到主函数里,然后加一句接收字 ...

嗯,好的,谢谢大神,我琢磨琢磨
发表于 2022-5-2 00:35 | 显示全部楼层
本帖最后由 hnzkhyyl 于 2022-5-2 00:36 编辑

试用几次,如果图中已经有了1bi1000的标注,没有置前,那么运行程式后,1bi1000没有被设置成当前标注样式。意思就是    (command "DIMSTYLE" "R" "1bi1000") ;;将标注样式“1bi1000”置为当前  这一行代码在程式运行后没有生效。我是在2020版本上试用的。希望楼主能找一下原因,修正一下。才疏学浅,我改了几次,没有成功
发表于 2022-5-2 08:20 | 显示全部楼层
本帖最后由 hnzkhyyl 于 2022-5-2 08:22 编辑

楼主看到我,看看我说的问题。看看怎么解决上一楼我说的问题。另外,怎么把这个程序作为子程序引用到其它程序里面去?
 楼主| 发表于 2022-5-2 22:50 | 显示全部楼层
hnzkhyyl 发表于 2022-5-2 00:35
试用几次,如果图中已经有了1bi1000的标注,没有置前,那么运行程式后,1bi1000没有被设置成当前标注样式。 ...

因为你说的这一句代码是在IF语句里面的,这一句生效的前提是:n=0,也就是所有标注样式都已经存在了,不需要创建。
你可以自己改一下,把你要的这一句单独放在IF外面就可以了。
发表于 2022-5-2 23:19 | 显示全部楼层
本帖最后由 hnzkhyyl 于 2022-5-2 23:29 编辑
天天问 发表于 2022-5-2 22:50
因为你说的这一句代码是在IF语句里面的,这一句生效的前提是:n=0,也就是所有标注样式都已经存在了,不 ...

是把这句话“ (command "DIMSTYLE" "R" "1bi1000");;将标注样式“1bi1000”置为当前“这句话,放到"(if (= n 0)"外面吗?这不合逻辑了吧,要if判断之后才去执行吧?

不太明白,明明具体一下,谢谢
 楼主| 发表于 2022-5-3 09:56 | 显示全部楼层
本帖最后由 天天问 于 2022-5-3 12:49 编辑
hnzkhyyl 发表于 2022-5-2 23:19
是把这句话“ (command "DIMSTYLE" "R" "1bi1000");;将标注样式“1bi1000”置为当前“这句话,放到"(if ( ...
新建标注样式本身是不需要这个IF语句的。
这个if语句是为了提供一个反馈:
(1)有新建样式时,就返回到底新建了几个,然后将1bi1000这个样式前置;
(2)如果没有新建,说明所有的标注样式已经存在了。为了不影响用户当前的样式,就不用前置了。
发表于 2022-5-3 21:27 | 显示全部楼层
天天问 发表于 2022-5-3 09:56
新建标注样式本身是不需要这个IF语句的。
这个if语句是为了提供一个反馈:
(1)有新建样式时,就返回到 ...

谢谢指导,我改了一下
              (progn
                          (alert "当前文档已包含所有标注样式,不需要再次创建!")
                          (command "DIMSTYLE" "R" "F0")                        ;将标注样式F0置为当前
                        (alert (strcat "成功创建" (rtos n 2 0) "个标注样式"))
                 )
                (progn
                        
                        (alert (strcat "成功创建" (rtos n 2 0) "个标注样式"))


F0是我自己的标注样式
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-5-4 10:40 | 显示全部楼层
hnzkhyyl 发表于 2022-5-3 21:27
谢谢指导,我改了一下
              (progn
                          (alert "当前文档已包含所有标 ...

目测你的第一个progn里面的第二个alert是多余的,可以删掉。你测试一下看看
发表于 2022-5-4 11:00 | 显示全部楼层
您好
我RUN LISP後出现错误的消息:
字体无法使用。不明的指令“0”。请按 F1 取得说明。
不明的指令“75”。请按 F1 取得说明。
不明的指令“0”。请按 F1 取得说明。
不明的指令“N”。请按 F1 取得说明。
不明的指令“N”。请按 F1 取得说明。
; 错误: 已拒绝 AutoCAD 变量设置: "DIMTXSTY" "仿宋体"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 17:28 , Processed in 0.218107 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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