明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 787116960

[提问] 求大神帮我改下这个源码 提出来的坐标显示不出来

[复制链接]
发表于 2020-3-5 13:07 | 显示全部楼层
本帖最后由 yshf 于 2020-3-5 13:08 编辑

(DEFUN C:TEST ()
    (SETVAR "CMDECHO" 0)
    (SETQ OLDOS (GETVAR "OSMODE"))
    (SETVAR "OSMODE" 0)
    (SETQ LN "LL")
    (WHILE (NOT (WCMATCH LN "*POLYLINE"))
        (SETQ SE (ENTSEL "\n请选取多段线:")
              ENT (ENTGET (CAR SE))
              LN (CDR (ASSOC 0 ENT)))
        )
        (SETQ PT (CADR SE))
        (IF (SETQ DD (GETDIST "\n请输入测量距离:"))
            (PROGN
                (IF (= LN "LWPOLYLINE")
                    (SETQ PT1 (CDR (ASSOC 10 ENT))
                          PT2 (CDR (ASSOC 10 (REVERSE ENT)))
                    )
                    (PROGN
                        (SETQ SN1 (ENTNEXT (CDR (ASSOC -1 ENT)))
                              LB (ENTGET SN1)
                              LM (CDR (ASSOC 0 LB))
                              PT1 (CDR (ASSOC 10 LB))
                        )
                        (WHILE (/= LM "SEQEND")
                           (SETQ SN1 (ENTNEXT (CDR (ASSOC -1 LB)))
                                 LB (ENTGET SN1)
                                 LM (CDR (ASSOC 0 LB))
                                 PT2 (CDR (ASSOC 10 LB))
                           )
                       )
                    )
                )
                (IF (> (DISTANCE PT PT1) (DISTANCE PT PT2))
                    (SETQ PTT PT1 PT1 PT2 PT2 PTT)
                )
                (COMMAND "MEASURE" PT DD)
                (SETQ SS (SSGET "P")
                      PT0 (CDR (ASSOC 10 (ENTGET (SSNAME SS 0))))
                      SL (SSLENGTH SS) DL (LIST (APPEND PT1 (LIST 0.0)))
                )
                (IF (> (DISTANCE PT0 PT1) (DISTANCE PT0 PT2))
                    (SETQ I (1- SS) N -1)
                    (SETQ I 0 N 1)
                )
                (REPEAT (SSLENGTH SS)
                    (SETQ PTT (CDR (ASSOC 10 (ENTGET (SSNAME SS I))))
                          I (+ I N)
                          DL (APPEND DL (LIST PTT))
                    )
                )
                (SETQ DL (APPEND DL (LIST (APPEND PT2 (LIST 0.0)))))
                (SETQ NM (IF NM NM ""))
                (IF (SETQ NM (GETFILED "请选择存盘文件 :" NM "txt" 1))
                    (PROGN
                        (SETQ FP (OPEN NM "w")
                              I -1
                        )
                        (REPEAT (LENGTH DL)
                             (setq pt (NTH (SETQ I (1+ I)) DL))
                             (PRINC (strcat "(" (rtos (car  pt) 2 3)
                                            " " (rtos (cadr pt) 2 3)
                                            " " (rtos (last pt) 2 3)
                                            ")\n"
                                    )
                                    FP
                              )
                        )
                        (CLOSE FP)
                        (COMMAND "NOTEPAD" NM)
                     )
                )
            )
        )
        (SETVAR "OSMODE" OLDOS)
        (SETVAR "CMDECHO" 1)
        (PRINC)
)
 楼主| 发表于 2020-3-6 12:19 | 显示全部楼层
yshf 发表于 2020-3-5 13:07
(DEFUN C:TEST ()
    (SETVAR "CMDECHO" 0)
    (SETQ OLDOS (GETVAR "OSMODE"))

谢谢大神  可以用了   可以加入圆弧也可以提取吗  这个阔以提取多段线了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-13 17:01 , Processed in 0.121172 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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