乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: Madruga_SP

[编程交流] 帮我处理我的脏代码

[复制链接]

24

主题

135

帖子

111

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 07:57:36 | 显示全部楼层
非常感谢你,亨里克!
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 07:59:11 | 显示全部楼层
Madruga_SP,
我想已经修好了,
最低限度的测试。
 
  1. (defun c:perfil (/   ss1    ss     itm      obj      osm_old
  2.   angb_old angd_old ct_base  base_obj ref      lbtxt
  3.   pt1   pt2    pt3     ent1     obj1     dist1
  4.   dist2   base_obj itm     ptint    lent     txt_obj
  5.   ptdist   grade    pt_txt   pt_txt1  pt_txt2
  6. )
  7. (vl-load-com)
  8. (prompt "\nSelecione a Polyline do Grade : ")
  9. (if (setq ss1 (ssget "_:S:E" '((0 . "LWPOLYLINE"))))
  10.    (progn
  11.      (prompt "\nSelecione as linhas verticais do Coletor: ")
  12.      (if (setq ss (ssget '((0 . "LINE,LWPOLYLINE"))))
  13. (progn
  14.   (setq itm  0
  15. obj  (vlax-ename->vla-object (ssname ss1 0))
  16. osm_old  (getvar "OSMODE")
  17. angb_old (getvar "ANGBASE")
  18. angd_old (getvar "ANGDIR")
  19.   )
  20.   (setvar "OSMODE" 0)
  21.   (setvar "ANGBASE" (/ PI 2.))
  22.   (setvar "ANGDIR" 1)
  23.   (setq ct_base  (entsel "\nSelecione a linha da cota base :")
  24. base_obj (vlax-ename->vla-object (car ct_base))
  25. ref  (atof
  26.      (cdr
  27.        (assoc
  28.          1
  29.          (entget
  30.     (car
  31.       (entsel "\nSelecione o texto da cota base :")
  32.     )
  33.          )
  34.        )
  35.      )
  36.    )
  37.   )
  38.   (setvar "OSMODE" 512)
  39.   (setq lbtxt
  40.   (nentselp
  41.     "\nSelecione a linha base para os textos cota do grade:"
  42.   )
  43.   )
  44.   (setvar "OSMODE" 128)
  45.   (setq pt1 (cadr lbtxt)
  46. txt_obj (vlax-ename->vla-object (car lbtxt))
  47. pt1 (vlax-curve-getClosestPointTo txt_obj pt1 T)
  48.   )
  49.   (setq pt2   (getpoint
  50.   pt1
  51.   "\nSelecione a linha base para os textos cota do coletor:"
  52.        )
  53. pt3   (getpoint
  54.   pt1
  55.   "\nSelecione a linha base para os textos profundidade do coletor:"
  56.        )
  57. dist1 (distance pt1 pt2)
  58. dist2 (distance pt1 pt3)
  59.   )
  60.   (setvar "OSMODE" 0)
  61.   (repeat (sslength ss)
  62.     (setq ent1 (ssname ss itm)
  63.    obj1 (vlax-ename->vla-object ent1)
  64.     )
  65.     (if (setq ptint (vla-IntersectWith obj obj1 acExtendNone))
  66.       (progn
  67. (setq lent   (vla-get-length obj1)
  68.        ptint  (vlax-safearray->list
  69.          (vlax-variant-value ptint)
  70.        )
  71.        ptdist (vlax-curve-getClosestPointTo base_obj ptint T)
  72.        grade  (+ (distance ptint ptdist) ref)
  73.        pt_txt (vlax-curve-getClosestPointTo txt_obj ptint)
  74.        pt_txt (polar pt_txt (* (/ pi 4) 3) 0.15)
  75. )
  76. (command "TEXT" pt_txt 0. (rtos grade 2 3))
  77. (setq pt_txt1 (polar pt_txt (angle pt1 pt2) dist1))
  78. (command "TEXT" pt_txt1 0. (rtos (- grade lent) 2 3))
  79. (setq pt_txt2 (polar pt_txt (angle pt1 pt3) dist2))
  80. (command "TEXT" pt_txt2 0. (rtos lent 2 3))
  81.       )
  82.       ;; progn
  83.     )
  84.     ;; If
  85.     (setq itm (1+ itm))
  86.   )
  87.   ;; repeat
  88. )
  89. ;; progn
  90.      )
  91.      ;; if
  92.    )
  93.    ;; progn
  94. )
  95. ;; if
  96. (setvar "OSMODE" osm_old)
  97. (setvar "ANGBASE" angb_old)
  98. (setvar "ANGDIR" angd_old)
  99. (princ)
  100. )

 
干杯
 
亨里克
回复

使用道具 举报

24

主题

135

帖子

111

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 08:06:24 | 显示全部楼层
:值得注意:
 
非常感谢你,亨里克。
你太棒了!!
 
工作得很有魅力!
 
当做
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 08:07:45 | 显示全部楼层
不客气,Madruga_SP
 
干杯
 
亨里克
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 15:07 , Processed in 0.445912 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表