乐筑天下

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

[编程交流] 无尽的中心线

[复制链接]

4

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 22:20:51 | 显示全部楼层 |阅读模式
您好,附图是梁布局图。
我想为所有梁画中心线。
还有12层同样大小
我讨厌做这样无聊的事情,虽然很耗时,但对我的工作来说同样重要。
任何加快这一进程的方法都会大有裨益。
非常感谢。
新建块。图纸
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 22:24:58 | 显示全部楼层
在第一步中画三条线,将信用证放在不同的层上
 
这是一个lisp,它取一行并生成两条新行,只需删除擦除位,c/l将保留,只需编辑边缘光束大小的定义
 
  1. ; pipe offset for different size pipes
  2. ; by Alan H July 2014
  3. (vl-load-com)
  4. (defun trap (errmsg)
  5. (prompt "\nAn error has occured.")
  6. (setvar "osmode" oldsnap)
  7. (setq *error* temperr)
  8. )
  9. (setq temperr *error*)
  10. (setq *error* trap)
  11. (setq  doc (vla-get-activedocument (vlax-get-acad-object))) ; open database
  12. (defun loadLinetype (doc LineTypeName FileName)
  13. (if (and
  14.        (not (existLinetype doc LineTypeName))
  15.        (vl-catch-all-error-p
  16.          (vl-catch-all-apply
  17.            'vla-load
  18.            (list
  19.              (vla-get-Linetypes doc)
  20.              LineTypeName
  21.              FileName
  22.            )
  23.          )
  24.        )
  25.      )
  26.    nil
  27.    T
  28. )
  29. )
  30. (defun existLinetype (doc LineTypeName / item loaded)
  31. (vlax-for item (vla-get-linetypes doc)
  32.    (if (= (strcase (vla-get-name item)) (strcase LineTypeName))
  33.      (setq loaded T)
  34.    )
  35. )
  36. )
  37. ;load missing linetypes
  38. ;;; returns: T if loaded else nil
  39. ;(loadLinetype doc "EX_PIPE250" "custom.lin")
  40. (defun pipeoffset (w / ang stpt pt3 pt4 obj whatis)
  41. (setq oldsnap (getvar "osmode"))
  42. (setvar "osmode" 0)
  43. (setq temperr *error*)
  44. (setq *error* trap)
  45. (setq obj (entsel "\nPick line"))
  46. (setq objtype (vla-get-objectname (vlax-ename->vla-object (car obj))))
  47. (if (= "AcDbLINE" objtype)
  48. (progn
  49.     (alert "You have picked an object which is not a line\nTry Again")
  50.     (exit)
  51. )
  52. (princ "\nLine")
  53. )
  54. (setq stpt (assoc 10 (entget (car obj))))
  55. (setq stpt (list (nth 1 stpt)(nth 2 stpt)))
  56. (setq endpt (assoc 11 (entget (car obj))))
  57. (setq endpt (list (nth 1 endpt)(nth 2 endpt)))
  58. (setq ang (angle stpt endpt))
  59. (setq pt3 (polar stpt (+ ang (/ pi 2.0)) 1.0))
  60. (setq pt4 (polar stpt (- ang (/ pi 2.0)) 1.0))
  61. (command "offset" w obj pt3 "")
  62. ;(Command "chprop" "last" "" "LT" "EX_PIPE250" "")
  63. (command "offset" w obj pt4 "")
  64. ;(Command "chprop" "last" "" "LT" "EX_PIPE250" "")
  65. ;(command "Erase" obj "")
  66. (setvar "osmode" oldsnap)
  67. )
  68. (defun c:P100 ()
  69. (pipeoffset 0.06)
  70. )
  71. (defun c:P150 ()
  72. (pipeoffset 0.08)
  73. )
  74. (defun c:P225 ()
  75. (pipeoffset 0.152)
  76. )
  77. (defun c:P300 ()
  78. (pipeoffset 0.19)
  79. )
  80. (defun c:P375 ()
  81. (pipeoffset 0.228)
  82. )
  83. (defun c:P450 ()
  84. (pipeoffset 0.265)
  85. )
  86. (defun c:P525 ()
  87. (pipeoffset 0.302)
  88. )
  89. (defun c:P600 ()
  90. (pipeoffset 0.34)
  91. )
  92. (defun c:P675 ()
  93. (pipeoffset 0.34)
  94. )
  95. (defun c:P750 ()
  96. (pipeoffset 0.415)
  97. )
  98. (defun c:P825 ()
  99. (pipeoffset 0.455)
  100. )
  101. (defun c:P900 ()
  102. (pipeoffset 0.49)
  103. )
  104. (defun c:P975 ()
  105. (pipeoffset 0.528)
  106. )
  107. (defun c:P1050 ()
  108. (pipeoffset 0.565)
  109. )
  110. (defun c:P1125 ()
  111. (pipeoffset 0.6)
  112. )
  113. (defun c:P1200 ()
  114. (pipeoffset 0.64)
  115. )
  116. (setq *error* temperr)
  117. (princ)
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 22:31:22 | 显示全部楼层
看看这条线是否有你需要的东西http://www.cadtutor.net/forum/showthread.php?49709-两条多段线之间的中心线
回复

使用道具 举报

4

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 22:33:29 | 显示全部楼层
对不起,迟来的回复伙计们,在施工现场工作的stuckup现在到了办公桌。
 
@BIGAL谢谢你,伙计,但我没能让它工作。已删除此部分
(命令“Erase”obj“”)
然后将这条线编辑为我的图纸中对应的梁尺寸。主要为230mm、300mm和1000mm
示例:将代码中的此行编辑为
(defun c:P450()至(defun c:P230()
(pipeoffset 0.265)保持这条线不变,认为必须改变。
 
将文本另存为。LSP加载了它并输入了p230,它要求我选一行,我想我用这几秒钟得到了一些,然后当我选择一个lin时,发生了一个错误。
用我的LISP语言加载和键入命令的技巧,我想我又回来求助了
 
 
@SLW210:谢谢,我在网上找到了一些Lisp程序的东西,它们和那条帖子上的Lisp程序非常相似。Lee mac的cpoly非常适合任何形状的多段线。在我的情况下,仅仅挑选第一行和第二行仍然很耗时。为了方便起见,我增加了拾取框的大小,但我仍然花费了大约半小时到45分钟。我想,能够用选框选择两行真的会有助于缩短时间。我已到达此页面
http://www.afralisp.net/autolisp/tutorials/selection-sets.php
希望学习和编辑字幕风格的选择,并意识到这需要更多的单
232051qlijw6i6fccf0jex.jpg
李。lsp
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 22:38:04 | 显示全部楼层
问题是我使用特定的线型绘制的代码中的线型。我已经更改了它现在应该在当前线型中绘制的代码,请看带有分号的行;开始时。这个意味着评论和之后的内容不运行。
回复

使用道具 举报

4

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 22:41:59 | 显示全部楼层
比加尔爵士我不明白你说什么
回复

使用道具 举报

4

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 22:45:30 | 显示全部楼层
继续用李·麦克的Lisp程序做中线,但遇到了一个小问题。它适用于直线、曲线、斜线,但当我在有角度的连续多段线上使用它时,我会将角圆角。附上图片和下面的LISP代码。请帮忙。
 
  1. (defun c:cPoly (/ ent1 ent2 i len pt p1 ptlst)
  2. (vl-load-com)
  3. (if (and (setq ent1 (car (entsel "\nSelect First Polyline: ")))
  4.           (wcmatch (cdr (assoc 0 (entget ent1))) "*POLYLINE")
  5.           (setq ent2 (car (entsel "\nSelect Second Polyline: ")))
  6.           (wcmatch (cdr (assoc 0 (entget ent2))) "*POLYLINE"))
  7.    (progn
  8.      (setq i -1 len (/ (vla-get-Length
  9.                          (vlax-ename->vla-object ent1)) 100.))
  10.      
  11.      (while (setq pt (vlax-curve-getPointatDist ent1 (* (setq i (1+ i)) len)))
  12.        (setq p1    (vlax-curve-getClosestPointto ent2 pt t)
  13.              ptlst (cons (polar pt (angle pt p1) (/ (distance pt p1) 2.)) ptlst)))
  14.      
  15.      (setq ptlst (apply (function append)
  16.                         (mapcar
  17.                           (function
  18.                             (lambda (x) (list (car x) (cadr x)))) ptlst)))
  19.      
  20.      (vla-AddLightWeightPolyline
  21.        (vla-get-ModelSpace
  22.          (vla-get-ActiveDocument (vlax-get-acad-object)))
  23.        (variant
  24.          (vlax-safearray-fill
  25.            (safearray vlax-VBDouble (cons 0 (1- (length ptlst)))) ptlst)))))
  26. (princ))

232053bfy3f4w3cj34gy6w.jpg
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 22:48:10 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-5 22:53:46 | 显示全部楼层
查看此线程。。。顺便说一句,你必须有2011年以上。。。
 
http://www.cadtutor.net/forum/showthread.php?83644-两条多段线之间的中心线
 
M、 R。
回复

使用道具 举报

4

主题

22

帖子

19

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 22:57:52 | 显示全部楼层
谢谢你带我去看《马库里巴》,帮了我很大的忙
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:11 , Processed in 0.760174 second(s), 74 queries .

© 2020-2025 乐筑天下

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