明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1742|回复: 15

[提问] 源代码求改进

[复制链接]
发表于 2018-10-31 14:16:53 | 显示全部楼层 |阅读模式
本帖最后由 yzuzhou 于 2018-11-5 10:39 编辑

小白一枚,学习lisp没多久,写了个小程序,求各位高手帮改进file:///C:\Users\zhou\AppData\Local\Temp\X@8}U9MLE}EBUE273)]9PGF.gif!
就是类似于管道纵断面标高的一个小程序,本人工作上经常画一些纵断面,标高,人工做费时费力,自己写了一个小程序,不过还不够智能,请大神优化,不胜感激
更新无毒文件,不好意思,之前电脑感染lsp病毒没有在意,现已杀完。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2018-10-31 18:35:45 | 显示全部楼层
;指定标高尺参考点坐标
(defun C:zbg (/ pt1 y0 zbl bl pt2 zg y1 y2 pt3 y4 x y realstr pt ag dimzinold )
  (princ "\n**ZY工具箱纵断面标高模块,**\n**本命令快捷键zbg**")
  (setq pt1 (getpoint "\n 单击指定标高尺参考点"))   
  (setq y0 (getreal "\n 输入标尺参考点读数"))
  (setq zbl (getreal "\n 输入纵向比例,例如100或者200"))
  (setq bl (/ 1000 zbl))
  (setq pt2 (getpoint "\n 单击指定文本第一对齐点"))         ;后续提取其y坐标
  (setq zg (getreal "\n 输入文字高度"))                     ;指定文字高度
  (setq y1 (cadr pt1))                                      ;将标尺基点的y坐标赋值给y1变量
  (setq y2 (cadr pt2))                                      ;将文本基点的y坐标赋值给y2变量
      (while (/= zbl 0)
          (setq pt3 (getpoint "\n 单击指定需要标注的断面点"))
          (setq y4 (cadr pt3))
          (setq x (car pt3))
          (setq y (+ (/ (- y4 y1) bl) y0))
          (setq dimzinold (getvar "DIMZIN"))
          (setvar "DIMZIN" 0)
          (setq realstr (rtos y 2 3))                                   ;将y转换为三位小数格式的字符串待输出
          (setq pt (list x y2 0))
          (setq ag (/ pi 2))
              ;以下程序将在在坐标为(x,y2)的地方输出纵坐标字符串
          (entmake (list '(0 . "TEXT") (cons 1 realstr) (cons 10 pt) (cons 40 zg) (cons 50 ag)))



       )
   ;执行完rtos以后恢复
   (setvar "DIMZIN" dimzinold)
)
;源程序这个样子的,请各位大侠斧正

 楼主| 发表于 2018-10-31 18:34:00 | 显示全部楼层
mikewolf2k 发表于 2018-10-31 16:50
楼主确定是你自己写的?
如果真是你写的,哪里不智能,要智能成啥样?你自己不说,谁知道?

求助
由于本人工作中经常画综合管廊纵断面,是根据道路专业的纵断面上画的,所以表格中的标高都需要人工根据道路的线读取,然后标注在下方的表格中,人工做,相当繁琐,于是我开始想法子接触CAD二次开发,逛了明经论坛,看了一个多月相关资料。其实程序的核心思想就是纵断面桩号线与要标注的地面线或者管廊顶板线的交点Y坐标与标尺上参考点的Y坐标的差值加上标尺上的读数就是标注点的标高值。我自己写了一个简单的小程序,基本实现了想法,但是最近想改进一下,无奈水平有限,特向各位老师求助。改进想法是这样的,能不能输入程序命令后,程序提示选择点击“标尺参考点”,并输入读数,输入纵向绘图比例(此参数用于坐标换算),然后提示选择“设计路面线”,然后提示选择“纵断面桩号线”这样一次性选择所有的“纵断面桩号线”后,在表格“路面设计高程”一行点击一下,就可以标出所有“纵断面桩号线”与“设计路面线”的交点高程。我自己写的源程序及Gif在附件里,求大神帮改进,万分感谢!

发表于 2018-11-1 09:06:44 | 显示全部楼层
yzuzhou 发表于 2018-10-31 18:32
这个可能电脑问题,经常会多出那两个fas/lsp文件,大家下载了删除了就行

机器中毒了,所在局域网及所有带dwg文件的移动存储等,搜索所有的那两个文件,除了在acad安装目录下的要检查下是否原装的文件(从日期和文件内容大小可以判断出来),同时删除所有的文件,就可以根除了。
请更新自己的附件,不要带病毒文件,否则就是在传播病毒。
发表于 2018-10-31 16:00:32 | 显示全部楼层
源码可以直接贴出来啊 这样下载不太方便  gif图也挂了
发表于 2018-10-31 16:39:23 | 显示全部楼层
这么大的程序,有点可怕啊。是个大工程?
发表于 2018-10-31 16:50:47 | 显示全部楼层
楼主确定是你自己写的?
如果真是你写的,哪里不智能,要智能成啥样?你自己不说,谁知道?
发表于 2018-10-31 17:20:38 | 显示全部楼层
本帖最后由 updoc 于 2018-10-31 17:21 编辑

下载来看了  不算复杂,文件大的吓人,代码没几行。里面有个“病毒”文件,要解压的朋友注意一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2018-10-31 18:31:15 | 显示全部楼层
baitang36 发表于 2018-10-31 16:39
这么大的程序,有点可怕啊。是个大工程?

源程序就几行,主要是为了描述清楚,做了个GIF图像,所以文件很大
 楼主| 发表于 2018-10-31 18:32:23 | 显示全部楼层
updoc 发表于 2018-10-31 17:20
下载来看了  不算复杂,文件大的吓人,代码没几行。里面有个“病毒”文件,要解压的朋友注意一下

这个可能电脑问题,经常会多出那两个fas/lsp文件,大家下载了删除了就行
发表于 2018-10-31 18:34:05 | 显示全部楼层
yzuzhou 发表于 2018-10-31 18:32
这个可能电脑问题,经常会多出那两个fas/lsp文件,大家下载了删除了就行

把源码贴出来吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-19 05:04 , Processed in 0.168023 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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