乐筑天下

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

[编程交流] 编辑立面帮助

[复制链接]

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 12:39:36 | 显示全部楼层
 
我认为新文本的起点可以是旧文本中的一个,也可以和旧文本平行,当然也可以是点。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:39:51 | 显示全部楼层
 
这只是为了你的利益
你会发现这很难解决
我不知道该怎么做
 
 
  1. ;;=======================================================;;
  2. (defun _getnearest (ss pt / en)
  3.     (while (setq en (ssname ss 0))
  4.       (setq elist (entget en)
  5.      ip (cdr (assoc 10 elist))
  6.      box (textbox elist)
  7.      up (mapcar '+ ip (cadr box))
  8.      )
  9.       (setq tmp (cons up en)
  10.      data (cons tmp data)
  11.      tmp nil)
  12.       (ssdel en ss)
  13.       )
  14.    (vl-sort data (function (lambda (a b)
  15.                       (< (distance (car a) pt)
  16.                          (distance (car b) pt)))))
  17.    (cdar data)
  18.    )
  19. ;;=======================================================;;
  20. (defun dxf (key en)
  21. (cdr (assoc key (entget en)))
  22.       )
  23. ;;=======================================================;;
  24. (defun C:ELV (/ atleft atright bref cnt ip lefttext lp righttext rp ss txt)
  25. (command "_zoom" "e")
  26. (setq ss (ssget "X" (list (cons 0 "INSERT")(cons 2 "DOT-1"))))
  27. (setq blocks (sslength ss)
  28. cnt 0
  29. )
  30. (while (setq bref (ssname ss 0))
  31.       (setq ip (cdr (assoc 10 (entget bref)))
  32.      lp (list (- (car ip) 7)(cadr ip))
  33.      rp (list (+ (car ip) 3)(cadr ip))
  34.      )
  35. (if (and
  36.      (setq atleft (ssget "F"
  37.           (list ip lp)
  38. (list
  39. '(0 . "TEXT")                       
  40. '(8 . "HI")
  41. '(62 . 14)
  42. '(40 . 1.5)
  43. '(41 . 1.0)
  44. '(7 . "PLOTTER_1"))))
  45. (setq atright (ssget "F"
  46.           (list ip rp)
  47. (list
  48. '(0 . "TEXT")                       
  49. '(8 . "HI")
  50. '(62 . 14)
  51. '(40 . 1.5)
  52. '(41 . 1.0)
  53. '(7 . "PLOTTER_1")))))
  54. (progn
  55. (if (= 1 (sslength atleft))
  56. (setq lefttext (ssname atleft 0))
  57.      (setq lefttext (_getnearest atleft ip))
  58. )
  59. (if (= 1 (sslength atright))
  60.    (setq righttext (ssname atright 0))
  61.    (setq righttext (_getnearest atright ip))
  62.    )
  63. (if (and lefttext righttext)
  64.   (progn
  65.   (setq cnt (1+ cnt))
  66.   (setq txt (strcat (dxf 1 lefttext)"."(dxf 1 righttext)))
  67.   (princ "\n")( princ txt)
  68.   ;; do what you need with texts here
  69.    )
  70. )
  71. )
  72. )
  73. (ssdel bref ss)
  74. )
  75. (alert (strcat  "Blocks found: " (itoa blocks) "\nTexts found: " (itoa cnt) ))
  76. (princ)
  77. )

 
~'J'~
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 12:44:46 | 显示全部楼层
 
谢谢亲爱的fixo,我使用这些代码,如果有任何问题,请稍后写信给你
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 12:48:30 | 显示全部楼层
 
不,谢谢,
这个例行程序效果很差
再次检查编辑的版本
你会看到这两个街区是否很近
在这种情况下,左右文本替换错误:
 
  1. ;;=======================================================;;
  2. (defun _getnearest (ss pt / en)
  3.     (while (setq en (ssname ss 0))
  4.       (setq elist (entget en)
  5.      ip (cdr (assoc 10 elist))
  6.      box (textbox elist)
  7.      up (mapcar '+ ip (cadr box))
  8.      )
  9.       (setq tmp (cons up en)
  10.      data (cons tmp data)
  11.      tmp nil)
  12.       (ssdel en ss)
  13.       )
  14.    (vl-sort data (function (lambda (a b)
  15.                       (< (distance (car a) pt)
  16.                          (distance (car b) pt)))))
  17.    (cdar data)
  18.    )
  19. ;;=======================================================;;
  20. (defun dxf (key en)
  21. (cdr (assoc key (entget en)))
  22.       )
  23. ;;=======================================================;;
  24. (defun C:ELV (/ atleft atright bref cnt ip lefttext lp righttext rp ss txt)
  25. (command "_zoom" "e")
  26. (setq ss (ssget "X" (list (cons 0 "INSERT")(cons 2 "DOT-1"))))
  27. (setq blocks (sslength ss)
  28. cnt 0
  29. )
  30. (while (setq bref (ssname ss 0))
  31.       (setq ip (cdr (assoc 10 (entget bref)))
  32.      lp (list (- (car ip) (cadr ip))
  33.      rp (list (+ (car ip) 4)(cadr ip))
  34.      )
  35. (if (and
  36.      (setq atleft (ssget "F"
  37.           (list ip lp)
  38. (list
  39. '(0 . "TEXT")                       
  40. '(8 . "HI")
  41. '(62 . 14)
  42. '(40 . 1.5)
  43. '(41 . 1.0)
  44. '(7 . "PLOTTER_1"))))
  45. (setq atright (ssget "F"
  46.           (list ip rp)
  47. (list
  48. '(0 . "TEXT")                       
  49. '(8 . "HI")
  50. '(62 . 14)
  51. '(40 . 1.5)
  52. '(41 . 1.0)
  53. '(7 . "PLOTTER_1")))))
  54. (progn
  55. (if (= 1 (sslength atleft))
  56. (setq lefttext (ssname atleft 0))
  57.      (setq lefttext (_getnearest atleft ip))
  58. )
  59. (if (= 1 (sslength atright))
  60.    (setq righttext (ssname atright 0))
  61.    (setq righttext (_getnearest atright ip))
  62.    )
  63. (if (and lefttext righttext)
  64.   (progn
  65.   (setq cnt (1+ cnt))
  66.   (setq txt (strcat (dxf 1 lefttext)"."(dxf 1 righttext)))
  67.   (princ "\n")( princ txt)
  68.   (setq apt (list (car ip)(+ (cadr ip) 2.) 0.0))
  69.   (entmake
  70. (list
  71. '(0 . "TEXT")
  72. '(100 . "AcDbEntity")
  73. '(67 . 0)
  74. '(410 . "Model")
  75. '(8 . "BM")
  76. '(62 . 256)
  77. '(100 . "AcDbText")
  78. (cons 10 apt)
  79. (cons 11 (list (car apt)(+ (cadr apt) 0.75)  0.0))
  80. (cons 40  1.5)
  81. (cons 1  txt)
  82. '(50 . 0.0)
  83. '(41 . 1.0)
  84. '(51 . 0.0)
  85. '(7 . "PLOTTER_1")
  86. '(71 . 0)
  87. '(72 . 1)
  88. (cons 210 (list 0.0 0.0 1.0))
  89. '(73 . 2)))
  90. ;; change the rest to suit
  91.    )
  92. )
  93. )
  94. )
  95. (ssdel bref ss)
  96. )
  97. (alert (strcat  "Blocks found: " (itoa blocks) "\nTexts recreated: " (itoa cnt) ))
  98. (princ)
  99. )

 
我还没有其他想法如何检测最近的文本,对吗
 
~'J'~
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:51:53 | 显示全部楼层
这是我的。它(现在)很难看,所以我不想发布它的开源版本。
 
 
正如你从视频中看到的,我这样做是为了让你为最初的3个选择选择正确的对象。
 
最后一个多行文字对象放置在新层上点块的插入点。
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 12:53:13 | 显示全部楼层
尊敬的先生:
你好
我用你们的FAS文件,从左4位数到右2位数,和你们的慢动作表演一样,但不要在屏幕上出现最终的黄色结果!为什么?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 12:58:33 | 显示全部楼层
 
再次下载,我今天早上做了一个更新(忘记了一个子例程)。
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 13:00:22 | 显示全部楼层
 
你好,fixo
我认为必须在每个点周围创建一个选择集窗口,使其宽度等于:((Text.Heigt)+epsilon),两个字符串位于该窗口中,窗口的基位于点上。
回复

使用道具 举报

10

主题

45

帖子

35

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
51
发表于 2022-7-6 13:04:02 | 显示全部楼层
 
 
ِ尊敬的alanjt
特别感谢你帮助我完成这个项目。谢谢你所做的一切,你太棒了。。。。
玩得愉快
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 13:06:26 | 显示全部楼层
我认为这是一个信号,它的工作。我等着寄支票眨眼:
 
别动,这里有很多人比我聪明得多。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:26 , Processed in 1.116400 second(s), 71 queries .

© 2020-2025 乐筑天下

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