偏移外部参照图元
因工作需要和绘图习惯,图纸经常使用外部参照(XREF)命令引用别的图纸做参照文件,有时需要以参照图形的某个图元(比如直线、多义线、圆、圆弧等)为基准点,偏移一定距离画一个新图元;现在只能在参照图形中的相应位置,先画一条直线,然后使用OFFSET命令偏移,然后再删除早先画的那个直线,操作太繁琐了,且容易遗漏画的直线有没有可能把参照图形(含图块)中的图元(直线、多义线、圆、圆弧)直接偏移(OFFSET)到当前图形中生成一个新图元(原参照图形中需要偏移的图元是多义线的,最好是能只偏移命令点击的那条直线,而不是偏移整条多义线)
命令运行后,点击参照图形中想要偏移(OFFSET)的图元,输入偏移距离,就在当前图形偏移(OFFSET)生成一个新图元
谢谢……
https://apps.autodesk.com/ACD/en/Detail/Index?id=8920523579967030772&appLang=en&os=Win32_64
The JTB OffsetInXref app can be used with Autodesk® AutoCAD® to enable the OFFSET command to work with line contents of blocks and externally referenced drawings, associated arrays, dimensions, and tables.
Once loaded, the standard OFFSET command will work with blocks and externally referenced content: instead of responding "Cannot offset that object", the app will automatically copy the selected object into the current drawing, allowing it to participate with the OFFSET command. The lowest-level object will be selected, if part of a nested Xref or block, but some objects - such as Hatches - will still cause the "Cannot offset that object" prompt to be displayed. All objects copied temporarily into the drawing will be erased automatically at the end of the OFFSET command. The app can either have the OFFSET command create geometry on the current layer (the default) or the source layer. The XOFFSETLAYER command allows the configuration of this option.
A trial of this product is available at OffsetInXref Trial. Visit our app page at https://jtbworld.com/offsetinxref
Note: This app uses a custom installer (and not the standard App Store installer). 本帖最后由 你有种再说一遍 于 2024-10-18 22:04 编辑
说实话,这个东西不好搞,主要是性能优化上面.
问题简化:
如何从外部参照拷贝图元出来,并且执行偏移.
1,点中的外部参照.块表记录.数据库,
后台读取数据库.遍历模型空间=>构建哈希网格(或者四叉树)通过全局缓存,避免频繁偏移和开启的其他图纸使用;
2,外部参照.逆变换=块变换到原点=>鼠标点.逆变换;
3,此时鼠标点在对应的网格位中,获取鼠标击中的图元;
4,选中的图元.深度克隆到本图.变换=外部参照矩阵;
5,把新图元执行偏移; 本帖最后由 xotoo 于 2024-10-19 09:43 编辑
wszxf 发表于 2024-10-18 11:13
里面估计要做一些判断,因为有些图可能不能offset
(defun c:tt (/ data en new_en)
(setq dist 200)
大佬
您写的这个能用,但偏移距离是调用上一次成功运行Offset命令时的偏移距离
能修改成可以输入偏移距离吗(如果不输入就默认上一次偏移距离)?
另需要有明确偏移图元偏移点和偏移方向的选择较好
谢谢!
大佬
您能抽时间完善一下吗
用nentsel选择这个外部参照图元并在本图生成相同的,然后自动偏移。并删除生成的 ncopy 命令了解一下。 wszxf 发表于 2024-10-18 08:54
用nentsel选择这个外部参照图元并在本图生成相同的,然后自动偏移。并删除生成的
nentsel这个命令是系统自带的吗? Bao_lai 发表于 2024-10-18 08:58
ncopy 命令了解一下。
NCOPY命令实现描述的要求还是太繁琐了,且最后还是要手动删除NCOPY生成的图元 里面估计要做一些判断,因为有些图可能不能offset
(defun c:tt (/ data en new_en)
(setq dist 200)
(while (setq en (nentsel))
(setq new_en (entmakex (cdr (entget (car en)))))
(command "_.offset" dist new_en pause "")
(entdel new_en)
)
) 不如弄个开发申请,悬赏大佬出手。 本帖最后由 kozmosovia 于 2024-10-18 17:18 编辑
Bao_lai 发表于 2024-10-18 08:58
ncopy 命令了解一下。
ncopy 对xref里面的东东处理的不是很理想的,除非参照在0,0,0,否则图元跑位 kozmosovia 发表于 2024-10-18 17:12
ncopy 对xref里面的东东处理的不是很理想的,除非参照在0,0,0,否则图元跑位
那么奇怪?不是官方命令吗?没有做矩阵变换到当前鼠标?
页:
[1]
2