明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1070|回复: 0

[求助]大家帮我看看问题在哪里

[复制链接]
发表于 2009-8-3 09:59:00 | 显示全部楼层 |阅读模式
  1. (defun c:zyzj ()
  2.   (setq dimzin (getvar "dimzin"))
  3.   (setvar "dimzin" 0)
  4.   (setq fact (getreal "\n全加(1),部分(0)?_(0)?"))
  5.   (if (not fact)
  6.     (setq fact 0)
  7.   )
  8.   (setq ss (ssget "X" '((8 . "*LINE"))))
  9.   (if (/= ss nil)
  10.     (progn
  11.       (setq n 0)
  12.       (setq num (sslength ss))
  13.       (while (< n num)
  14. (setq ent (ssname ss n))
  15. (setq ent1 (vlax-ename->vla-object ent))
  16. (setq objname (vla-get-ObjectName ent1))
  17. (setq tcm (vla-get-Layer ent1))
  18. (setq gxlb (substr tcm 1 2))
  19. (setq long (vla-get-length ent1))
  20. (SETQ tc (STRCAT gxlb "MARK"))
  21. (setvar "CLAYER" tc)
  22. (setq xdata (entget ent '("xdata1")))
  23. (setq xdata (cdr (last (last (last xdata)))))
  24. (setq xdata0 (ln1_lst xdata ","))
  25. (setq spnt (nth 17 xdata0))
  26. (setq epnt (nth 18 xdata0))
  27. (setq material (nth 11 xdata0))
  28. (setq dsize (nth 12 xdata0))
  29. (setq hole (nth 13 xdata0))
  30. (setq xh (vl-string-position (ascii "/") hole))
  31. (setq hole (substr hole 1 xh))
  32. (setq hole (strcat hole "孔"))
  33. (setq cab (nth 16 xdata0))
  34. (if (= (vl-string-position (ASCII "/") CAB) NIL)
  35.    (setq cab (strcat cab "根"))
  36. )
  37. (setq prange (nth 15 xdata0))
  38. (setq tgcc (nth 26 xdata0))
  39. (setq type1 (nth 9 xdata0))
  40. (setq data0 (strcat spnt "," epnt))
  41. (if (OR (= gxlb "JS")
  42.   (= gxlb "YS")
  43.   (= GXLB "WS")
  44.   (= GXLB "HS")
  45.   (= GXLB "GY")
  46.      )
  47.    (progn
  48.      (setq Xposizion (vl-string-position (ascii "X") dsize))
  49.      (if (= xposizion nil)
  50.        (setq dsize (strcat "DN" dsize))
  51.      )
  52.      (setq txt (strcat material " " dsize))
  53.    )
  54. )
  55. (IF (or (= gxlb "MQ")
  56.   (= GXLB "TQ")
  57.   (= GXLB "YQ")
  58.      )
  59.    (PROGN
  60.      (setq xposizion (vl-string-position (ascii "X") dsize))
  61.      (if (= xposizion nil)
  62.        (setq dsize (strcat "DN" dsize))
  63.      )
  64.      (setq txt (strcat material " " dsize " " prange))
  65.    )
  66. )
  67. (if (or (= gxlb "RS")
  68.   (= GXLB "ZQ")
  69.      )
  70.    (PROGN
  71.      (setq xposizion (vl-string-position (ascii "X") dsize))
  72.      (if (= xposizion nil)
  73.        (setq dsize (strcat dsize "+" tgcc))
  74.      )
  75.      (setq txt (strcat material " " dsize))
  76.    )
  77. )
  78. (if (or (= gxlb "GD")
  79.   (= GXLB "LD")
  80.   (= GXLB "XD")
  81.      )
  82.    (progn
  83.      (if (= material "")
  84.        (setq material "空管")
  85.      )
  86.      (setq xposizion (vl-string-position (ascii "X") DSIZE))
  87.      (if (= xposizion nil)
  88.        (setq dsize (strcat "Φ" dsize))
  89.      )
  90.      (if (= type1 "0")
  91.        (setq txt (strcat material " " dsize " " cab " " prange))
  92.      )
  93.      (if (/= type1 "0")
  94.        (setq txt (strcat material " " dsize " " hole " " prange))
  95.      )
  96.    )
  97. )
  98. (if (or (= gxlb "DX")
  99.   (= gxlb "YX")
  100.   (= gxlb "LX")
  101.   (= gxlb "JX")
  102.   (= GXLB "BX")
  103.   (= GXLB "KX")
  104.   (= GXLB "TV")
  105.      )
  106.    (progn
  107.      (if (= material "")
  108.        (setq material "空管")
  109.      )
  110.      (setq xposizion (vl-string-position (ascii "X") DSIZE))
  111.      (if (= xposizion nil)
  112.        (setq dsize (strcat "Φ" dsize))
  113.      )
  114.      (if (= type1 "0")
  115.        (setq txt (strcat material " " dsize " " cab))
  116.      )
  117.      (if (/= type1 "0")
  118.        (setq txt (strcat material " " dsize " " hole))
  119.      )
  120.    )
  121. )
  122. (if (> long 20)
  123.    (progn
  124.      (setq qdzb (vla-get-startpoint ent1))
  125.      (setq qdzb (vlax-variant-value qdzb))
  126.      (setq xq (vlax-safearray-get-element qdzb 0))
  127.      (setq yq (vlax-safearray-get-element qdzb 1))
  128.      (setq zdzb (vla-get-endpoint ent1))
  129.      (setq zdzb (vlax-variant-value zdzb))
  130.      (setq xz (vlax-safearray-get-element zdzb 0))
  131.      (setq yz (vlax-safearray-get-element zdzb 1))
  132.      (setq qdzb (list xq yq 0))
  133.      (setq zdzb (list xz yz 0))
  134.      (setq zjjd (angle qdzb zdzb))
  135.      (if (and (> zjjd (/ pi 2))
  136.        (< zjjd (* pi 1.5))
  137.   )
  138.        (progn
  139.   (setq ss qdms)
  140.   (setq qdms zdms)
  141.   (setq zdms ss)
  142.   (setq zjjd (- zjjd pi))
  143.        )
  144.      )
  145.      (if (= fact 1)
  146.        (progn
  147.   (setq xzj (/ (+ xq xz) 2))
  148.   (setq yzj (/ (+ yq yz) 2))
  149.        )
  150.      )
  151.      (if (= fact 0)
  152.        (progn
  153.   (setq yzj (atof (nth 22 xdata)))
  154.   (setq xzj (atof (nth 23 xdata)))
  155.        )
  156.      )
  157.      (if (and (/= xzj 0) (/= yzj 0))
  158.        (progn
  159.   (setq zjzb (list xzj yzj 0))
  160.   (setq zjzb (vlax-3d-point zjzb))
  161.   (setq zj1 (vla-addtext (model-space) txt zjzb 0.8))
  162.   (setq
  163.     exdata
  164.      (list (list -3 (list "xdata1" (cons '1000 xdata))))
  165.   )
  166.   (setq exdata0
  167.          (list (list -3 (list "LNUMBER" (cons '1000 data0))))
  168.   )
  169.   (setq lastent (entget (entlast)))
  170.   (setq newdata
  171.          (append lastent exdata)
  172.   )
  173.   (entmod newdata)
  174.   (setq newdata0
  175.          (append lastent exdata0)
  176.   )
  177.   (entmod newdata0)
  178.   (vlax-put-property
  179.     ZJ1
  180.     'VerticalAlignment
  181.     acVerticalAlignmentBottom
  182.   )
  183.      ;垂直下对齐
  184.   (vlax-put-property
  185.     ZJ1
  186.     'HorizontalAlignment
  187.     acHorizontalAlignmentCenter
  188.   )
  189.      ;水平中对齐
  190.   (vla-put-TextAlignmentPoint ZJ1 ZJZB)
  191.      ;对齐点
  192.   (vla-put-Rotation zj1 zjjd)
  193.        )
  194.      )
  195.    )
  196. )
  197. (setq n (+ n 1))
  198.       )
  199.     )
  200.   )
  201.   (setvar "dimzin" dimzin)
  202.   (setvar "CLAYER" "0")
  203.   (princ)
  204. )
大家帮我看看这段代码 我需要实现的是从线的扩展数据中读取一定的字符串 然后标注到线段的中间位置, 但是循环读取选择集选择之后读取第二条线时,第三条读取就会失败 但是我单独读取第三条线 可以读出来 大家帮我看看问题出在哪里

本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-1 09:38 , Processed in 0.141120 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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