明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 960|回复: 14

求一个标注能断开的代码

[复制链接]
发表于 2020-10-26 19:51 | 显示全部楼层 |阅读模式
50明经币
本帖最后由 xj6019 于 2020-10-30 19:43 编辑

希望选择一个标注,两端分别向内100的位置断开,使一个标注变成三段,中间的标注用文字替代标注数值,如图
(defun C:TT()
(setq XNJL1  左端向内断开的距离)
(setq XNJL2  右端向内断开的距离) 分别设置吧,万一以后有两端不同的情况呢
( TDWZ  要替代的文字) 这里单独做成一个子函数调用吧,要替换的文字常用的好几个,我可以分别设置几个代码来用,要不太繁琐了
...
功能代码
.....
开头这样,方便以后需要修改的话,可以自己根据实际情况修改。需要适合水平垂直斜的方向,都经常要用的到,麻烦了,再次恳请相助。。
图片下载外部地址:https://xj6019.lanzous.com/iwGHlhrsxje



附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

试一下,替换文字就一句话,不用子函数了
发表于 2020-10-26 19:51 | 显示全部楼层
试一下,替换文字就一句话,不用子函数了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2020-10-27 12:21 | 显示全部楼层
不建议搞这么多“假”的标注在图中哦...
回复

使用道具 举报

 楼主| 发表于 2020-10-27 13:30 | 显示全部楼层
e2002 发表于 2020-10-27 12:21
不建议搞这么多“假”的标注在图中哦...

一般是为了标注一些孔 螺丝之类的,比方说两端离着100,然后中间平均分布一排直径为5的孔,一般我不会挨个的再把每个孔的间距尺寸标出来,直接把标注改成 “孔D5@300” 。一般要求没有太高,就是固定用的方便打螺丝的孔,间距标@300,但实际加工的时候250~350之间的任何数值都可以,我感觉这样标,算是一些很常见的做法吧。

点评

自定义的这些字符串应该标注为前缀(保留实际值),例如建筑的楼梯表示: "280x10=<>" (<>内是实际长度值)  发表于 2020-10-29 22:08
回复

使用道具 举报

 楼主| 发表于 2020-10-27 13:38 | 显示全部楼层
e2002 发表于 2020-10-27 12:21
不建议搞这么多“假”的标注在图中哦...

求个代码也是为了更省事一点,现在是用之前的代码挨个点四个点,然后再替换中间的,如果能把一个尺寸直接两端按固定距离分开,中间也能直接把数值替换成文字,我就能更方便点,结合我手里的其他几个标注代码,搭配使用,就能更得劲点,最完美的是自动全标,但是图纸图元信息应该不好区分,所以能按照习惯尽量在手工上能更快捷一点吧。
回复

使用道具 举报

 楼主| 发表于 2020-10-30 09:02 | 显示全部楼层
老师们,帮搞一下吧,自己也憋着研究了好几天了,算法上一直没有进展,想用论坛里面很常见的那个DDR断开标注的代码来改,尝试多次,一直没有成功,求助,求助!!
回复

使用道具 举报

 楼主| 发表于 2020-10-30 19:41 | 显示全部楼层
本帖最后由 xj6019 于 2020-11-2 08:32 编辑
start4444 发表于 2020-10-30 13:33
试一下,替换文字就一句话,不用子函数了

太棒了,我今天又倒腾了半天,代码堆了一串一串的,都没搞出来,这个又能省老鼻子事了,又是你帮的忙,谢谢的话都说了太多了,但是还是要再说一遍,太感谢了!!看看代码整合后的效果,还是很满意的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2020-10-30 19:50 | 显示全部楼层
start4444 发表于 2020-10-26 19:51
试一下,替换文字就一句话,不用子函数了

再请教个问题,是那个标注断开代码里的一句
(setq ent (centsel "\n>>>選擇要拆分的尺寸 或 <按 ESC 退出>:" "DIMENSION"))
这一句我想改改,想实现可以先选择再执行代码,我改成下面的
(or(setq ent(ssget "i"'((0 . "DIMENSION")))) (and(princ "\n選擇要拆分的尺寸")(setq ent(ssget ":S" '((0 . "DIMENSION"))))))
但是不行呢,我想知道centsel这个改成了ssget怎么就不行了呢。
如果要实现先选择尺寸线,再执行断开标注的操作,代码要怎么改呀。
回复

使用道具 举报

 楼主| 发表于 2020-10-30 21:11 | 显示全部楼层
包括这次的代码,我也希望能实现先选择后也能执行,可以吗,这样我可以有其他用法,能实现一些其他的想法,也学习一下entsel和centsel 用什么样的方式可以实现,先选择后执行。
回复

使用道具 举报

发表于 2020-10-30 23:14 | 显示全部楼层
xj6019 发表于 2020-10-30 21:11
包括这次的代码,我也希望能实现先选择后也能执行,可以吗,这样我可以有其他用法,能实现一些其他的想法, ...

其实很简单,一般选对象都是想提取对象图元名,entsel是单选个体,ssget是选集,选集的话要多一步提取个体,无论1个或多个都要提取,你上面的错在把选集当成个体了,看看下面本贴代码的替换就能实现,注意选集的第一个对象序号为0

(car (entsel "\n请选择对象:")) 改为 (ssname (ssget ":S" '((0 . "DIMENSION"))) 0)

评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1 很给力!

查看全部评分

回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-4 18:55 , Processed in 0.643602 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表