明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3097|回复: 3

源程序(含注释)

[复制链接]
发表于 2006-5-5 11:08 | 显示全部楼层 |阅读模式
  1. 我做的LISP程序
  2. ;;命令:JZD 查找形如“J004”重复注记
  3. (defun c:jzd(/ j_lay ss a j_d j_n n entname j_s j_z j_dd j_h pt)
  4. (setvar "cmdecho" 0)
  5. (command "undo" "be")
  6. (setq j_lay(getstring "\n界址点所在层:"));;输入层名
  7. (setq ss(ssget "x" (list (cons 0 "TEXT")(cons 8 j_lay))));;选取图幅内所有j_lay层的文字集合
  8.   (setq a 0 j_d '())
  9.   (repeat (sslength ss);;循环处理选择集ss每一图元
  10.   (setq entname(ssname ss a));;选择ss一图元名
  11.   (setq j_n(cdr (assoc 1 (entget entname))));;获取文字内容字符串
  12.   (setq n(strlen j_n)) ;;获取该文字字符串个数
  13.   (setq j_s(substr j_n 2));;获取该文字字符串子串编号(去J)
  14.   (setq j_z(atoi j_s)) ;;字符串转变为整数
  15.   (setq j_dd(cons j_z j_n));;构造一个点对
  16.   (setq j_h(assoc j_z j_d));;从关联表中搜索j_z(点号)元素
  17.   (if j_h
  18.     (progn ;;若j_h不为空,说明已有该编号
  19.      (setq pt(cdr (assoc 10 (entget entname))));;获取该文字所在位置坐标
  20.      (command "PLINE" PT '(0 0) "");;画一条从原点到该文字位置的线
  21.     );;end progn
  22.   (setq j_d(cons j_dd j_d));;若为空把该点对加入表
  23.   );; end if
  24.   (setq a(1+ a));;循环加一
  25. );;end repeat
  26. (command "undo" "e")
  27. (setvar "cmdecho" 1)
  28. )
  29. ;;命令:CHZ 查找字符串所在位置
  30. (defun c:chz(/ tr s num pt1 nm rq ct)
  31. (setvar "CMDECHO" 0)
  32. (setq tr(getstring "\n输入字符串"))
  33. (setq s(ssget "x" (list (cons 0  "text") (cons 1  tr))))
  34. (if s
  35. (progn
  36. (setq num 0)
  37. (repeat (sslength s)
  38.   (setq pt1(cdr(assoc '10 (entget (ssname s num)))))
  39.   (command "pline" pt1 '(0 0) "")
  40. ;;(command "zoom" "1.5x")
  41. (if (> (sslength s) 1)(progn
  42.   (initget 2 "n y")
  43.   (setq nm (getstring "下一个? N(不)/Y(是)/:<Y>"))
  44.   (if (eq nm "") (setq nm "y"))
  45.   (if (or (eq nm "n") (eq nm "N")) (exit))
  46.   (if (or (eq nm "y") (eq nm "Y")) (setq num (1+ num)))
  47.   ))
  48. )
  49. )(alert "本图没有该文字或文字大小写错误"))
  50. (setvar "CMDECHO" 1)
  51. )

点评

不错,支持注释!顶你一个  发表于 2011-12-28 10:44
发表于 2006-6-2 10:40 | 显示全部楼层

感谢楼主!!支持楼主!!

发表于 2006-6-4 23:54 | 显示全部楼层
Cad 不是有FIND命令吗?
发表于 2019-10-15 07:16 来自手机 | 显示全部楼层
谢谢分享,支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 08:33 , Processed in 0.439973 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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