明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 700|回复: 7

[提问] 求助一个关于循环画线段的问题

[复制链接]
发表于 2023-3-22 22:26:24 | 显示全部楼层 |阅读模式
本帖最后由 sunqv 于 2023-3-22 22:27 编辑

我要的效果是,如果图中选中的线段的扩展属性中的起点埋深为空或者为0,则在起点线段的位置标注一条线出来,如果选中的线段的扩展属性中终点埋深为空,则在线段终点的位置标注一条线。
源文件见附件,为什么我用下面的命令执行后,不能实现把线段没有埋深的一端标注出来?下面的lsp选择多条线段后,只会标注选择的最后一条线段的终点埋深标注出来(不管是不是终点埋深为 0,都会标注出来)
求教大神解惑,不胜感激




  • (DEFUN C:QMS() ;缺埋深标注
  •   (setq SS (SSGET '((8 . "*LINE") ) ))
  •   (setq I 0) (REPEAT (SSLENGTH SS )
  •                (setq EN (SSNAME SS I ))
  •                (setq XDATA (CDR (ASSOC -3 (ENTGET EN '("*" ) ) ) ))
  •                (setq LAYER (STRCAT (SUBSTR (DXF EN 8 ) 1 2 ) "MARK" ))
  •                
  •                (setq QDZB (DXF EN 10))
  •                (setq ZDZB (DXF EN 11 ))
  •                
  •                (setq QDX (CAR(DXF EN 10)))
  •                (setq QDY (CADR(DXF EN 10)))
  •                (setq QDXY(LIST QDX QDY)))
  •                (setq QDX1 (+ QDX 10))
  •                (setq QDY1 (+ QDY 10))
  •                (setq QDXY1 (LIST QDX1 QDY1))
  •               
  •               (setq ZDX (CAR(DXF EN 11)))
  •               (setq ZDY (CADR(DXF EN 11)))
  •               (setq ZDXY (LIST ZDX ZDY))
  •               (setq ZDX1 (+ ZDX 10))
  •               (setq ZDY1 (+ ZDY 10))
  •               (setq ZDXY1 (LIST ZDX1 ZDY1))
  •   
  •                (setq ANG1 (ANGLE QDZB ZDZB ))
  •               (setq ANG2 (ANGLE ZDZB QDZB ))
  •   (setq QDMS (CDR (CAR (CDR (ASSOC "起点埋深" XDATA ) ) ) ))
  •   (setq ZZMS (CDR (CAR (CDR (ASSOC "终点埋深" XDATA ) ) ) ))
  •   (if (OR(= QDMS "0.00")(= QDMS "0")(= QDMS nil)) (command "_.line" QDXY QDXY1 ""))
  •   (if (OR(= ZDMS "0.00")(= ZDMS "0")(= ZDMS nil)) (command "_.line" ZDXY ZDXY1 ""))
  •   (PRINC )
  •   (setq  I (+ I 1 ))
  • )  



本帖子中包含更多资源

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

x
发表于 2023-3-22 23:20:48 | 显示全部楼层
repeat的括号位置不对吧

代码排版整规整一点
这样可以减少犯错的几率
 楼主| 发表于 2023-3-22 23:55:39 来自手机 | 显示全部楼层
我以前用在别的代码中就没问题的,求大神帮优化一下代码

点评

已经指出了括号位置不对,自己检查啊  发表于 2023-3-23 10:55
发表于 2023-3-23 08:56:00 | 显示全部楼层
因为你repeat里只保存了最后一组坐标。仔细检查一下吧!
 楼主| 发表于 2023-3-23 09:44:19 来自手机 | 显示全部楼层
能帮忙改一下吗?谢谢,真心不懂啊
发表于 2023-3-23 09:59:17 | 显示全部楼层
埋深是指某点地表以下的垂直深度,如基础埋深,标高是指以某基准面为起点向上的高度,如山顶标高。
 楼主| 发表于 2023-3-28 20:34:29 | 显示全部楼层
没人帮忙吗?真的很需要,求助万能的坛友帮忙了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 12:41 , Processed in 0.190095 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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