请教一下,选择了一个样板块,之后怎么框选和这个样板块一样的其他块
本帖最后由 蜀国的大熊猫 于 2021-11-12 14:26 编辑首先非常感谢您抽出划水的时间来看我的帖子。
目前我有一个这样的需求需要实现,本来已经找贱人工具箱的作者定制,但是有QQ 网址等水印,用着有点不舒服。
因为自己学开发的,所以四处学习,找到了LISP,但是我这个面向对象的思想实在是转不过这个面向表的编程。
后来找到了明经社区,社区大神还是很多啊,感觉自己实现有希望了。
步骤如下:
1、选择一个对齐原点,(其实就相当于拾取了一个位置,作为我的初始坐标中心)
(setq duiqi_yuandian (getpoint "选择原点"))
2、选择一个样板块
(setq block_yangli (entsel "选择一个样板块"))
3、根据这个样板块选择一样的块
(setq selected_blocks (ssget '((0 . "INSERT"))))
4、回车导出这些被选中的块坐标,这个坐标是基于第一步的原点的坐标
(setq locationFile (getfiled "坐标文件保存为" "C:/点位坐标" "txt" 1))
到目前为止,东拼西凑的写了四个简单步骤,但是里面的逻辑真的无从下手。
所以请教一下您,
1、如何根据我的样板块,在ssget里选中同样的块
2、如何根据我第一步的原点,导出这些块的坐标
不胜感激!
附件是写好的插件效果。
start4444 发表于 2021-11-12 14:40
试过了,步骤是这样了,但是结果也是不清楚那个坐标对应是那个块啊,你要这个文件有啥用。。。
他提取的 ...
大哥 , 我这个写的差不多了。 还剩最后一步卡着了。
我获取了样例块之后 也根据这个样例块 把想同的选中了,如下
(setq blocks_selected (ssget (list '(0 . "INSERT") (cons 2 block_name))))
接下我循环遍历这个blocks_selected的时候 始终获取不到坐标,帮忙看下吧。
repeat 我也试了。
foreach 我也试了。
但就是一直报错。
(foreach block blocks_selected
(setq block_x (rtos (nth 0 block) 2 3))
(setq block_y (rtos (nth 1 block) 2 3))
(setq zuobiao (strcat "[" block_x "," block_y "]"))
(write-line zuobiao locationFile)
) 蜀国的大熊猫 发表于 2021-11-13 01:26
大哥 , 我这个写的差不多了。 还剩最后一步卡着了。
我获取了样例块之后 也根据这个样例块 把想同的选 ...
选集就用repeat吧
(setq i 0)
(repeat (sslength blocks_selected)
(setq en (ssname blocks_selected i)
i (1+ i)
block_x (rtos (car (cdr(assoc 10 (entget en))))2 3)
block_y (rtos (cadr (cdr(assoc 10 (entget en))))2 3)
zuobiao (strcat "[" block_x "," block_y "]")
)
(write-line zuobiao locationFile)
) start4444 发表于 2021-11-12 13:56
1,提取样板块的块名,再用(setq selected_blocks (ssget '((0 . "INSERT") (2 . 样板块名)))) 可以选到 ...
感谢感谢。
我现在一头雾水的还有一个问题就是怎么获取他的属性。比如这个块的xy,我在js或者java直接就是 obj.x 或者 obj.y
能否推荐个什么网址,或者文档能让我看到这些属性的获取方法?
我其实只需要块的中心点坐标 就行 1,提取样板块的块名,再用(setq selected_blocks (ssget '((0 . "INSERT") (2 . 样板块名)))) 可以选到同名块选集.
2, 你说块的坐标是基点坐标吧,先提取块基点xy,再各自减去所选原点xy ,应该就得到相对坐标位置了,对选集内的块都处理一下把得出的点坐标组合成表,最后你还得把表的内容逐一写入txt文件。
另外有个问题你要考虑哪个点坐标是对应哪个块的? start4444 发表于 2021-11-12 13:56
1,提取样板块的块名,再用(setq selected_blocks (ssget '((0 . "INSERT") (2 . 样板块名)))) 可以选到 ...
另外 我刚刚也找到这个 帖子,
同种的块一部分修改块名
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=180391&highlight=%BF%E9
这里的一部分逻辑我基本是可以复用的 蜀国的大熊猫 发表于 2021-11-12 14:01
感谢感谢。
我现在一头雾水的还有一个问题就是怎么获取他的属性。比如这个块的xy,我在js或者java直接 ...
这些操作都不复杂,就是步骤有点多,在论坛都有,你慢慢找找吧
把你定制那个做个动画发上来人家看了就一清二楚最终效果了 start4444 发表于 2021-11-12 14:25
这些操作都不复杂,就是步骤有点多,在论坛都有,你慢慢找找吧
把你定制那个做个动画发上来人家看了就一 ...
对的 对的,附件就是,已经上传了,如果您有时间的话,就帮忙看下吧 蜀国的大熊猫 发表于 2021-11-12 14:26
对的 对的,附件就是,已经上传了,如果您有时间的话,就帮忙看下吧
试过了,步骤是这样了,但是结果也是不清楚那个坐标对应是那个块啊,你要这个文件有啥用。。。
他提取的也是块基点,不是块中心,如果你的块基点不是中心点那坐标就不对了 按块名进行选择 start4444 发表于 2021-11-12 14:40
试过了,步骤是这样了,但是结果也是不清楚那个坐标对应是那个块啊,你要这个文件有啥用。。。
他提取的 ...
我是搞物联网可视化的,我们需要把这些设备点位标记到三维模型里,因为三维模型是按照CAD来的,所以我在cad里选一个点,导出设备基于这个点的坐标。然后去三维里选同样位置,就把坐标换算到三维中去。 start4444 发表于 2021-11-12 14:40
试过了,步骤是这样了,但是结果也是不清楚那个坐标对应是那个块啊,你要这个文件有啥用。。。
他提取的 ...
至于这个块的点是给的基准点还是中心点的坐标,其实偏差不大,以忽略不计。
页:
[1]
2