乐筑天下

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

[编程交流] 使用“全部”创建选择集

[复制链接]

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 12:27:14 | 显示全部楼层
把这个添加到你的循环中怎么样
 
  1. (cond ((= (vlax-get-property item 'ObjectName) "AcDbCircle").........)
  2.          
  3.          
  4.      ((= (vlax-get-property item 'ObjectName) "AcDbPolyline")..........))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:31:32 | 显示全部楼层
例子:
 
[code](定义c:C2P(/segs i ss ent rad cent theta 2pi lst);;李Mac~06.01.10(vl load com)(setq segs 100);;多段线中的线段数(if(setq i-1 ss(ssget“_:L”'((0。“圆”))))(while(setq ent(ssname ss(setq i(1+i))))(setq rad(cdr(assoc 40(entget ent)))θ0。cen(cdr(assoc 10(entget ent)))2pi(*2 pi))(entmake(append(list(cons 0“LWPOLYLINE”)(cons 100“AcDbEntity”)(cons 100“AcDbPolyline”)(cons 90 segs)(cons 70 1))(同时(
回复

使用道具 举报

19

主题

60

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-6 12:32:13 | 显示全部楼层
 
谢谢李
因为我已经有一个函数来检查所有的lwpolyline区域,并在每个lwpolyline上做一个标记,但如果它是一个循环,它将无法检查它。所以我有一个想法,将所有的多段线和圆分组到选择集,然后函数可以在每个项目上做标记。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:35:13 | 显示全部楼层
好的,我希望我的代码能帮助你更接近你的目标。
回复

使用道具 举报

19

主题

60

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-6 12:38:32 | 显示全部楼层
 
谢谢你的代码。但我发现了一些问题。
当我使用lisp将圆转换为LW多段线时,可能是使用100段来构建这个圆。与新物体和旧圆相比,总面积有所不同。如果使用lisp检查所有圆并获取中心点,可以使用bpoly命令在其上绘制新的多段线吗?因为我使用bpoly命令在圆的顶部绘制lwpolyline,该区域与圆相同。
 
谢谢
回复

使用道具 举报

19

主题

60

帖子

41

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
95
发表于 2022-7-6 12:44:05 | 显示全部楼层
 
谢谢这是我的代码,但在我运行程序后得到了错误的参数类型:VLA-OBJECT error。有什么问题吗?
 
(setq myset(ssget“_X”(LIST)(0。“LWPOLYLINE,CIRCLE”)(cons 410(getvar“CTAB”)))))
(setq ctr 0)
(重复(sslength sset)
(setq项目(ssname sset ctr))
(setq项目(vlax ename->vla对象项目))
(cond((=(vlax get property item'ObjectName)“AcDbCircle”)(命令“-color”红色)
((=(vlax get property item'ObjectName)“AcDbPolyline”)
(if(=(vlax-property-available-p(vlax ename->vla object item)“Closed”T)T)
(程序。。。。。。
回复

使用道具 举报

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 12:46:55 | 显示全部楼层
B多边形方法是可能的,此外,您可以使用此原则将圆转换为多段线:
 
(setq rad(vla get radius(setq ron(vlax ename->vla object(car(entsel)ЮЮ)))))
(setq cen(vlax get ron’center))
(Setq pt1(极坐标系)
(setq pt2(极坐标中心0 rad))
(命令“pline”pt1 pt2“c”)
(vla setbulge(vlax ename->vla对象(entlast))0 1。)
(vla setbulge(vlax ename->vla对象(entlast))1
 
我得先去上班。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:48:41 | 显示全部楼层
 
啊,忘记了膨胀因素!很好的一个巫师
回复

使用道具 举报

1

主题

316

帖子

311

银币

初来乍到

Rank: 1

铜币
29
发表于 2022-7-6 12:52:55 | 显示全部楼层
谢谢李,我知道你忘了,因为我是从你那里学来的。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 12:54:31 | 显示全部楼层
 
谢谢Wiz。。。我想你指的是这个
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-5 10:17 , Processed in 0.522744 second(s), 70 queries .

© 2020-2025 乐筑天下

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