乐筑天下

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

[编程交流] 将地块/多边形数据生成到t

[复制链接]

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:12:33 | 显示全部楼层 |阅读模式
我这里有一个附加的图纸。我想要一个列表例程,该例程将提取地块的(从母地块到子地块)方位和距离,就像在dwg中一样。这些表将一个接一个地插入,如先插入母批次,然后插入子批次a,然后插入子批次b,依此类推。(还有从参考点到不同角落的方位和距离1)非常感谢。我真的需要这个程序来完成我的学习。我读过教程和博客,但还是做不好。希望有人能帮助我。谢谢
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:17:10 | 显示全部楼层
这是图纸。对不起,我第一次发邮件时忘了附上。
帮助图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 16:19:43 | 显示全部楼层
 
告诉我们你现在有什么,我们会指导你,但你必须自己写代码。听起来怎么样?
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 16:23:56 | 显示全部楼层
makimaki,
 
这是我不久前做的一个。你需要调整
程序开始时的常数值。
 
还需要修改以供轴承使用。
 
也许你可以用很多东西
然后根据您的口味进行定制。
dt。LSP
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 16:27:08 | 显示全部楼层
作为你的起点,makimaki
 
  1. (if
  2.      (and (select Text)                                ; "Ldx_Data"                        entsel / ssget with filter
  3.           (Pick Start point))                                ; To determine Point nos 1         getpoint
  4.              (progn
  5.              (while  (Pick Next point [ Start point ])        ;                                getpoijnt
  6.              (distance SP NP)                                ; Value for distance                distance
  7.              (angle SP NP)                                ; Value for Bearing                angle
  8.              (convert distance to string)                ; For table                         rtos / strcat
  9.              (convert angle to string)                        ; For table                         angtos
  10.       (replace "d" with "%%d")                        ; vl-string-subst
  11.              (pass the values to a list)                ; cons / list
  12.              )
  13.           (Pick Insertion point for table)                ;                                getpoint
  14. (Insert Attribute Block for Lot Title)                        ; Native insert command / Attreq
  15.        [Values: from (select Text) ]                        ; cdr / assoc / entget
  16. (Insert Attribute Block for LINE/BEARING/DISTANCE)        ; Native insert command / Attreq / polar
  17.        [Values: from (convert distance to string)         ; variable
  18.               (convert angle to string) ]        ; variable
  19.        )
  20.      )
  21.      

 
开始编写代码
 
数据图纸
洛蒂特。图纸
主要标题。图纸
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 16:28:56 | 显示全部楼层
@makimaki公司
 
编码进行得怎么样?有进展吗?还是你想要一个更“自动”的程序?我在这里的目标是指导并教您编写代码的基础知识。我们可以给你一个更复杂的伪代码[或一个工作例程],但这里的重点是,我们希望你像其他人一样学习[好吧,不是真的,这里仍然有我想要的帖子的用户../I NEED…即使在以他们的名义发布了100或帖子之后]。。希望你不是他们中的一员
 
别害羞,去问吧。。。。。。
 
干杯
pBe公司
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:32:00 | 显示全部楼层
@ymg感谢您发布的代码。
 
@pBe。别担心,主人,我完全明白你的意思,我很感激你的建议。我现在很忙,因为我正在写一篇关于我论文的手稿,虽然我开始编写代码,但它仍然没有完成。我会尽快寄出去的。再次感谢pBe大师。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 16:35:14 | 显示全部楼层
这就是他精神makimaki
 
去吧,让我们看看你有什么。如果你需要帮助,就喊一声
 
祝你好运伙计
回复

使用道具 举报

2

主题

18

帖子

16

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 16:39:59 | 显示全部楼层
 
我现在有了代码大师pBe。这真的需要时间。
  1. (vl-load-com)
  2. (defun C:TD (/ *error* acsp ang atable cnt col dist item osm
  3.      point_list pt row table_data tmp tmp_data)
  4.   (defun *error*  (msg)
  5.     (if (and msg
  6.       (not
  7.         (member msg
  8.          '("console break" "Function cancelled" "quit / exit abort"))))
  9.       (princ (strcat "\nError: " msg))
  10.       )
  11.     (if osm
  12.       (setvar "osmode" osm))
  13.     (princ)
  14.     )
  15. (command "layer" "m" "Technical Description" "")
  16. (command "layer" "c" "7" "Technical Description" "")
  17. (command "color" "bylayer")
  18. (initget 1)
  19. (setq osm (getvar "osmode"))
  20. (setvar "osmode" 1)
  21. (setq cnt 1)
  22. (while (setq pt (getpoint
  23.     (strcat "\n  Specify Corner #"
  24.      (itoa cnt)
  25.      " (hit Enter after the last corner) >> ")))
  26.   (setq point_list (cons pt point_list)
  27. cnt    (1+ cnt))
  28.   )
  29. (setq point_list (reverse point_list))
  30. (setq cnt 0)
  31. (while (<= cnt (- (length point_list) 2))
  32.   (setq tmp  (list (strcat (itoa (1+ cnt)) " - " (itoa (+ cnt 2)))
  33.          (nth cnt point_list)
  34.          (nth (1+ cnt) point_list))
  35. tmp_data (cons tmp tmp_data)
  36. )
  37.   (setq cnt (1+ cnt))
  38.   )
  39. (setq tmp      (list (strcat (itoa (length point_list)) " - 1")
  40.        (last point_list)
  41.        (car point_list))
  42.       tmp_data (cons tmp tmp_data)
  43.       )
  44. (setq tmp_data (reverse tmp_data))
  45. (foreach item  tmp_data
  46.   (setq ang (angle (cadr item) (caddr item)))
  47.   (setq ang (angtos ang 4 2))
  48.   (setq dist (distance (cadr item) (caddr item)))
  49.   (setq dist (strcat (rtos dist 2 2) " m."))
  50.   (setq tmp (list (car item) ang dist))
  51.   (setq table_data (cons tmp table_data))
  52.   )
  53. (setq table_data (reverse table_data))
  54. (setq pt (getpoint "\n  Specify insertion point of Technical Descriptions"))
  55. (setq acsp (vla-get-block
  56.       (vla-get-activelayout
  57.         (vla-get-activedocument
  58.    (vlax-get-acad-object))))
  59.       )
  60. (setq atable
  61.        (vlax-invoke
  62.   acsp
  63.   'AddTable
  64.   pt
  65.   (+ 2 (length table_data))
  66.   (length (car table_data))
  67.   (* (getvar "textsize") 2.0)
  68.   (* (getvar "textsize") 15))
  69.       )
  70. (vla-put-regeneratetablesuppressed atable :vlax-true)
  71. (vla-settextheight atable actitlerow (getvar "textsize"))
  72. (vla-settextheight atable acheaderrow (getvar "textsize"))
  73. (vla-settextheight atable acdatarow (getvar "textsize"))
  74. (vla-put-vertcellmargin atable (/ (getvar "textsize") 4.25))
  75. (vla-settext atable 0 0 "TECHNICAL DESCRIPTIONS")
  76. (vla-settext atable 1 0 "LINES")
  77. (vla-settext atable 1 1 "BEARINGS")
  78. (vla-settext atable 1 2 "DISTANCES")
  79. (setq row 2)
  80. (foreach item  table_data
  81.   (setq col 0)
  82.   (foreach x  item
  83.     (vla-settext atable row col x)
  84.     (vla-setcellalignment atable row col acMiddleCenter)
  85.     (setq col (1+ col)))
  86.   (setq row (1+ row))
  87.   )
  88.   (vla-put-regeneratetablesuppressed atable :vlax-false)
  89.   (*error* nil)
  90.   (princ)
  91. )

 
 
查看(vl string subst“new”“old”str)
我还注意到,在您的“help.dwg”中,您使用前导“0”表示一位数,即“05”数字。你打算合并吗?怎么做?
 
 
有趣的是,你这么说,因为我看不出与我发布的伪代码有任何相似之处
我很乐意帮忙
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

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

铜币
211
发表于 2022-7-5 16:43:25 | 显示全部楼层
你好,pBe大师。我最近真的很忙,很抱歉回复得太晚。
老实说,我发布的代码最初并非全部来自我。我研究了与我的主题相关的教程和论坛,将它们结合在一起,并将其指定为我自己的主题。
 
问题1已通过主pBe解决。非常感谢你。
2.对于问题2,我不知道如何像帮助中那样生成表。子批次的图纸。它应该是这样的:
l子批次名称l===>第1行/标题
l 1-2 l轴承数据l距离数据l===>第2行/数据表
l 2-3 l轴承数据l距离数据l===>数据/表格
等等
 
注意:正如你在我发布的代码中看到的那样。“while”函数在例程开始时,我计划在生成母批次表或“边界表”后转移它,以便生成子批次表的代码应该一次又一次地进行,直到所有子批次都已制表。我已经知道如何做这个主pBe,我现在的问题是,我不知道如何像在帮助中一样格式化我的表。图纸。
 
3、我仍然不知道如何更改学位标志。你能像以前解决问题1一样给我看解题大师吗?再次非常感谢pBe大师。
 
更强大!
 
当做
makimaki公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 21:04 , Processed in 1.581046 second(s), 73 queries .

© 2020-2025 乐筑天下

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