明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 19456|回复: 164

【DQ/K:DIMQuick】快速标注_v3.6,空格拦选,支持天正标注和CAD标注

    [复制链接]
发表于 2023-4-2 23:22:15 | 显示全部楼层 |阅读模式
本帖最后由 kucha007 于 2024-5-7 22:36 编辑

源码来自这里,感谢cq4920的分享:http://bbs.mjtd.com/thread-182512-1-1.html?_dsign=a9c88575

重构了程序,有比较大的改动。fas程序目前和原作者一样免费下载,lsp源码的话权限40才能下载
六种标注方式:点选+框选+栏选+最大外框标注+分堆标注+先选对象再输命令
支持对象:直线、多段线(轻+重)、圆、圆弧。栏选另外再支持填充及块内对象(可选)

  1. ;DQ命令冲突,又没有权限下载源码,可以这样重新自定义命令:
  2. (defun C:你的命令名 nil (K:DIMQuick))




功能相关:
01-cq4920的源码在旋转ucs时使用会出错,加了坐标转换
02-先选对象再输命令时也可标注所选对象
03-关键词C,控制标注图层: 可切换为默认层或者当前层(标注默认放置在层"PUB_DIM",该层颜色为绿色)
--如果默认层冻结就自动切换到当前图层标注,标注完再恢复变量。如果标注层锁定就弹窗提示解锁图层
--天正标注默认层切换的问题在3.3版本中已解决。
04-关键词D,切换标注模式: 天正标注或者CAD原生标注(默认为天正)
--判断三个天正ARX是否加载,没加载且标注方式为天正标注时,就切换标注方式为CAD原生标注(变量之后不自动恢复)
05-关键词S,设置标注比例: 输入关键词再输入比例值可重新设置标注比例
--天正环境默认使用天正比例值,纯CAD环境首次加载会提示输入比例
06-空格使用栏选标注,栏选时临时恢复对象捕捉。
--与栏选线重合的端点,单独收集再加入交点表,算法参见此贴:http://bbs.mjtd.com/thread-187621-1-1.html
--输入关键词S,确认是否计算块内对象(默认不计算),算法参见此贴:http://bbs.mjtd.com/thread-187632-1-1.html
07-其它参照后续更新













本帖子中包含更多资源

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

x

评分

参与人数 12明经币 +13 金钱 +30 收起 理由
tomonkey239 + 1 赞一个!
自贡黄明儒 + 1 赞一个!
hubeiwdlue + 1 很给力!
yanshengjiang + 1 很给力!
pzweng + 2 很给力!
tigcat + 1 + 10 很给力!
USER2128 + 1 赞一个!
liwen888888 + 1 很给力!
aggdqty + 1 赞一个!
Rhalf + 20 很给力!

查看全部评分

 楼主| 发表于 2023-4-14 08:29:57 | 显示全部楼层
本帖最后由 kucha007 于 2024-3-25 10:06 编辑

自己顶一顶,作为备用楼。

20240324-v3.6
1-补充文字样式、标注样式及线型的创建。避免参数缺失导致无法创建标注
2-由于天正的弧长标注SB及多段线原位分解再拾取容易出错。点选标注时不再支持多段线
(即无法像之前一样只标注多段线中的一段,要标注某一段需要自行分解)
(天正弧长标注在2014后不能传入实体名,所以弧长标注仍然容易出错进而导致捕捉无法恢复,建议分段标注或者视口放大再标注避免其它对象干扰)
3-选择集最小外框及分堆标注时,直接绘制外框,不再提示。外框线型为<DQ+全局比例>的1:1虚线,根据当前全局比例创建
(虚线比例和当前标注比例统一)
4-程序未创建任何标注时,空格或者回车可进入栏选。若已经创建标注对象,使用栏选需要通过关键词F,直接空格或者回车将直接结束命令,
5-栏选块内对象时,若对象层锁定,则先解锁,获取交点后再锁定。避免块内锁定层的对象无法删除导致出错

20230713-v3.5
1-针对弧长增加关键词R,可标注弧长+半径或仅弧长或仅半径
2-天正半径大于3位数,半径长度为20mmx比例。否则为15mmx比例


20230627-v3.4
1-修改边界框函数:在计算最大边界框时放回UCS而不是WCS。
2-绘制边界框时使用entmake,速度更快,也避免受到UCS的影响


20230619-v3.3

1-修复点选标注时出错的Bug
2-终于找到天正标注控制默认层的变量,程序将根据设置进行调整。
  1. (GetTextLayerChange);获取状态
  2. (SetTextLayerChange);改变状态。将在1和0之间切换,其中1为默认层

3-目前除了标注弧线段容易出错(天正的锅不知道怎么跳过),这个程序算是完美了。



20230616-v3.2
1-改用Grread重写主程序,主程序部分输入关键词不用再回车。
2-增加选择集分组,各自按最大外框标注,主要用来标注零件最大边界。可选择是否要在标注后绘制边界框
3-栏选部分优化,标注方向始终在输入方向的左侧,这样就可以自己控制标注的位置了
(即从左至右标注在上方,从右至左标注在下方。从下至上标注在左侧,从上至下标注在右侧)
4-取消封闭空间标注,此功能的使用频率较低,且容易出现下面两个错误:
(BOUNDARY命令效率太低,有时候还会卡死)
(天正高版本标注弧线时,如果有重叠的部分会提示选择正确对象,从而导致报错)
5-框选对象改为循环,可分多次框选对象标注时。同时还扩充了建立选区的方式,支持旋转的UCS。具体用用就知道了。

20230611-v3.1
1-闭合区域无法标注,大Bug修复。之前居然没人提= =
2-优化多段线的处理方式,复制出来处理再删除,避免多段线有多个宽度要恢复。
(缺点是报错时,复制出来的多段线可能没法完全删除,具体再看坛友反馈修改吧,主要会出现在天正弧长标注上)

20230521-v2.8
1-计算标注角度作为子函数,方便后期统一调整
2-拦选时若无交点或者交点数量小于2,将标注输入点

20230503-v2.7
调整程序逻辑,避免手动修改天正比例后,DQ没有获取最新的比例

20230503-v2.6
应坛友反馈,调整获取天正比例的方式,避免天正比例小于1时出错。
创建临时实体(在原点创建一个点),之后删除,避免新文件entlast收集对象时报错

20230417-v2.5
修复了UCS下重叠线拾取不到的bug
修复了UCS下Angle角度出错的问题
修复了栏选时块中块出错的bug



标注相关:
01-尽可能使用entmake的方式创建标注,更快更高效。
02-天正连续标注/CAD对齐标注的位置始终在线的上方,具体参考下方的角度计算
--多段线先分解再标注,标注完再合并,重新赋予宽度。
--但如果对象重叠导致天正弧长标注出错,宽度信息可能不恢复
03-弧长标注在远离圆心一侧,半径标注在靠近圆心一侧(1/4圆弧的位置,以便和尺寸文字错开)
--天正的弧长标注没法用entmake创建,而天正弧长标注又是点选对象,所以当对象重叠时需要选择。
--这样的选择方式本身就容易出错,所以建议用此程序前先对弧线进行去重。
04-圆在45度方向上标注直径


;设置天正比例:
  1. (if (OR (> (TGetPScale) 1.0)(eq (getvar "CVPORT") 1.0) )
  2.   (TGetPScale)
  3.   (getvar "HPSCALE")
  4. );获取天正比例
  5. (TsetPScale 20) ;设置天正标注比例为20


;判断天正是否存在的方法:
  1. (defun K:IsTangent ()
  2.   (vl-every
  3.     '(lambda (T-Arx)
  4.       (member (strcase T-Arx) (mapcar 'strcase (arx)))
  5.     )
  6.     '("tch_kernal.arx" "Tch_PipeBase.arx" "tch_pipewire.arx")
  7.   )
  8. )



;标注相关的命令:
顺便说一下,天正的标注会自动开捕捉,还好看到大佬总结的LSP捕捉陷阱!http://bbs.mjtd.com/thread-185992-1-1.html
  1. (command "_DimAligned" "" "none" (list en StaPt) "none" TgtPt );CAD对齐标注
  2. (command "_DIMARC" "none" (list en StaPt) "none" TgtPt );;CAD弧长标注
  3. (command "_DimRadius" "none" (list en StaPt) "none" TgtPt );CAD半径标注
  4. (command "DIMDIAMETER" "none" (list en StaPt) "none" TgtPt );CAD直径标注

  5. (command "TDIMMP" "none" StaPt "none"  EndPt "none"  TgtPt "" );天正逐点标注
  6. (command "TDIMARC" "none" StaPt "none" TgtPt "none"  TgtPt "" );天正弧弦标注
  7. (command "TDIMRAD" "none" StaPt);天正半径标注
  8. (command "TDIMDIA" "none" StaPt );天正直径标注












回复 支持 1 反对 0

使用道具 举报

发表于 2023-4-6 17:55:49 | 显示全部楼层
命令: DQ 未知命令“TDIMMP”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“DQ”。按 F1 查看帮助。
未知命令“TDIMMP”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“DQ”。按 F1 查看帮助。
未知命令“TDIMMP”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“DQ”。按 F1 查看帮助。
未知命令“TDIMMP”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“DQ”。按 F1 查看帮助。
未知命令“TDIMMP”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“DQ”。按 F1 查看帮助。
未知命令“TDIMMP”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“NONE”。按 F1 查看帮助。
未知命令“DQ”。按 F1 查看帮助。
发表于 2023-4-3 07:33:10 | 显示全部楼层
怎么还下载不了
发表于 2023-4-3 09:00:18 | 显示全部楼层
谢谢楼主分享!
发表于 2023-4-3 09:20:18 | 显示全部楼层
谢谢楼主分享!
发表于 2023-4-3 09:25:45 | 显示全部楼层
高产了,高产了。
谢谢分享,占楼支持一波
发表于 2023-4-3 12:50:24 | 显示全部楼层
谢谢楼主分享!
发表于 2023-4-3 14:18:30 | 显示全部楼层
试用了一下,不错不错~
发表于 2023-4-3 14:40:41 | 显示全部楼层
有演示吗?楼主
发表于 2023-4-3 22:23:25 | 显示全部楼层
谢谢楼主分享,下载收藏下
发表于 2023-4-4 08:06:56 | 显示全部楼层
线内或线外统一标注才美观
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 05:57 , Processed in 0.205106 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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