乐筑天下

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

[编程交流] 将块添加到多段线

[复制链接]

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:13:04 | 显示全部楼层 |阅读模式
大家好,
我可以通过lisp将块作为附件添加到多段线吗?
我想选择所有多段线,然后在选定的多段线处插入一个块。
谢谢你的帮助。
001308nj0l6r7hlzzz656r.jpg
测试添加块。图纸
回复

使用道具 举报

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-5 23:20:19 | 显示全部楼层
当被要求指定数字类型B并键入块的名称时,可以使用measue或devide命令
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 23:26:04 | 显示全部楼层
莫斯塔法,
 
首先,您需要修改块的插入点
处于箭头的尖端。
 
其次,可以使用vlax曲线函数来获取多段线的中点。
 
  1. (defun c:test ()
  2.   (while  (setq ent (car (entsel "\nSelect polyline:")))
  3.      (setq d (/ (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)) 2.0)
  4.            p (vlax-curve-getPointAtDist ent d)
  5.      )
  6.      (vl-cmdf "._insert" "WIRE-TYPE" p "" "" "")
  7.   )
  8. )   

 
ymg公司
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:34:38 | 显示全部楼层
感谢ymg3的回复,我不知道是否可以修改lisp以使用ssget函数插入块。
这个帖子可能会有帮助。
http://www.cadtutor.net/forum/showthread.php?48143-LISP查找多条直线的中点&p=327737&viewfull=1#post327737
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 23:39:31 | 显示全部楼层
  1. (defun c:test (/ d e i p ss)
  2.   (prompt "\nSelect polyline: ")
  3.   (while  (setq ss (ssget '((0 . "LWPOLYLINE")(8 . "00-BT-PA-WIRE"))))
  4.      (repeat (setq i (sslength ss))
  5.         (setq e (ssname ss (setq i (1- i)))
  6.               d (/ (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)) 2.0)
  7.               p (vlax-curve-getPointAtDist e d)
  8.         )
  9.         (vl-cmdf "._insert" "WIRE-TYPE" p "" "" "")
  10.      )
  11.      (prompt "\nSelect polyline: ")
  12.   )
  13.   (princ)
  14. )   

 
莫斯塔法,
 
你是资深会员,我相信你能做到。
 
一定要研究代码,试着理解发生了什么。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:43:49 | 显示全部楼层
 
Mostafa Autocad帮助的目的是,如果您在lisp下查找ssget并使用选择过滤器,您将很快找到答案。ssget的一部分是了解如何选择过滤器,这些可能相当复杂。键入图层颜色线型x值。
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:53:20 | 显示全部楼层
谢谢你的努力,
谢谢你的关心让我学习,我真的很努力,但我是外地,然后我请你做它来学习。
再次感谢。
回复

使用道具 举报

26

主题

210

帖子

184

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 23:56:53 | 显示全部楼层
好啊
比加尔我知道ssget安静,但缺少的部分是我真的尝试学习感谢比加尔的兴趣。
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

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

铜币
289
发表于 2022-7-6 00:01:40 | 显示全部楼层
用点选择点,你也可以用它。它的优点是街区可以坐在你想坐的地方。它不依赖于:实体类型、图层、颜色等,
 
 
  1. 3
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 00:07:49 | 显示全部楼层
莫斯塔法,
 
 
在重复循环开始时,我们将变量i设置为选择集的长度(repeat(setq i(sslength ss))
 
然后在循环中,我们读取构成选择集的每个ename,从索引i减1处的最后一个ename开始。
每次循环都会减少1。
 
假设你的sslength等于5。所以你读了ename(ssname ss 4)。。3.2.1 ad最终为0。
 
ymg公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 00:09 , Processed in 0.925470 second(s), 75 queries .

© 2020-2025 乐筑天下

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