吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1319|回复: 19
收起左侧

[其他原创] CAD多线段(\曲线)标注指定点到起点距离(桩号)

  [复制链接]
xkbuild 发表于 2024-3-31 13:52
几天前遇到了麻烦,需要在一条多线段上标注某点距离起点距离,在网上查了半天,找到了方法(部分代码来自网络,作者不详),可以测量距离,但是不能标注距离,之后进行了一下修

命令为zhbz,选择多线段(不能为封闭线段)—点击需要测量的位置—点击标注距离文字的位置,(注意,自己判 ...

命令为zhbz,选择多线段(不能为封闭线段)—点击需要测量的位置—点击标注距离文字的位置,(注意,自己判 ...

加载lsp命令为appload 也可以添加到启动组,这样不用每次都需要加载,启动组—内容—找到.lsp文件。

加载lsp命令为appload  也可以添加到启动组,这样不用每次都需要加载,启动组—内容—找到.lsp文件。
改,可以实现标注。现在分享给大家。
1.加载lsp命令为appload
也可以添加到启动组,这样不用每次都需要加载,启动组—内容—找到.lsp文件。2.命令为zhbz,选择多线段(不能为封闭线段)—点击需要测量的位置—点击标注距离文字的位置,(注意,自己判断起点\终点,头尾可不一定哦,当然,你自己画的线就没问题了。)将以下代码复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注。
[Asm] 纯文本查看 复制代码
(defun C:zhbz ( / &dis1 &k1 &n1 &p1 &ss1)
 (if (null vlax-dump-object) (vl-load-com) )
 (setq &ss1 '("LINE" "LWPOLYLINE" "CIRCLE" "ARC" "HELIX" "ELLIPSE" "SPLINE" "POLYLINE"))
 ;曲线有起点:直线,多段线,圆,圆弧,螺旋对象,椭圆,样条曲线,二维多段线
 (if (and
  (setq &k1 (entsel "\n请选择曲线"))
  (setq &k1 (car &k1))
  (member (cdr (assoc 0 (entget &k1))) &ss1);确认是曲线
  (setq &p1 (getpoint "\n请选择指定点"))
  (setq &p1 (vlax-curve-getclosestpointto &k1 &p1));取得最近点
  (setq &n1 (vlax-curve-getParamAtPoint &k1 &p1));取得参数
  (setq &dis1 (vlax-curve-getDistAtParam &k1 &n1));到起点距离
    (setq b (rtos &dis1 2 2))  ;将数据结果由实数转换成字符串,且设置为两个精度,即小数点后两位
(setq a (getpoint "\n屏幕单击插入点"))  ;指定插入点
(entmake (list '(0 . "text")          ;建立文字图元属性列表,文字,插入点,内容,字高
                  (cons 10 a)           
                  (cons 11 a)
                  (cons 1 b)
                  '(40 . 15);字高
           )
)
 )
  (princ (strcat "\n指定点到起点距离为" (rtos &dis1)));命令行显示
 )
 (princ)
);复制到记事本,以【.lsp】为后缀命名,存储以ANSI编码形式,打开cad,【appload】加载,命令【zhbz】就可以查询并标注,by xkbuild,更多搜索 xkbuild

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
某些人 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| xkbuild 发表于 2024-4-2 15:21
深爱我的女孩 发表于 2024-4-2 15:14
有效果,感觉和PU命令清理差不多,(我不懂代码,但实测确实有效)!谢谢楼主

这一段代码不是我的!我只是搬运来的,应该感谢作者!
 楼主| xkbuild 发表于 2024-4-2 15:01
本帖最后由 xkbuild 于 2024-4-2 15:08 编辑
深爱我的女孩 发表于 2024-3-31 17:20
首先感谢楼主分享插件,其次,想问下同道中人有没有办法或者什么命令来处理图纸本身体积大小的解决方法,比 ...

[Asm] 纯文本查看 复制代码
;打开超大图纸,将此文件直接拖入cad即可。
(setvar "cmdecho" 0)
(dictremove (namedobjdict) "ACAD_DGNLINESTYLECOMP")
(command "_purge" "b" "" "n")
(command "_purge" "de" "" "n")
(command "_purge" "d" "" "n")
(command "_purge" "g" "" "n")
(command "_purge" "la" "" "n")
(command "_purge" "lt" "" "n")
(command "_purge" "ma" "" "n")
(command "_purge" "mu" "" "n")
(command "_purge" "p" "" "n")
(command "_purge" "sh" "" "n")
(command "_purge" "st" "" "n")
(command "_purge" "m" "" "n")
(command "_purge" "se" "" "n")
(command "_purge" "t" "" "n")
(command "_purge" "v" "" "n")
(command "_purge" "r" "" "n")
(command "-SCALELISTEDIT" "r" "y" "e")
(setvar "cmdecho" 1)
(princ)


以上存入记事本,扩展名为lsp,存储以ANSI编码形式,之后把lsp文件直接拖入cad,快速清理超大图纸DGN

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
深爱我的女孩 + 3 + 1 谢谢@Thanks!

查看全部评分

深爱我的女孩 发表于 2024-3-31 17:20
首先感谢楼主分享插件,其次,想问下同道中人有没有办法或者什么命令来处理图纸本身体积大小的解决方法,比如设计院发来的图纸打开太大,用什么命令可以保存之后体积变小!
小能维尼 发表于 2024-3-31 18:44
本帖最后由 小能维尼 于 2024-3-31 18:49 编辑

我估计你和我一样,找到别人代码,然后改一下就行了
代码确实是一模一样

不过我修改后,是设置桩号,例如:K0+000
根据用户所选点,标记线段距离的桩号
jori 发表于 2024-3-31 18:52
这类小而精巧的CAD实用功能收藏
泡菜久坛 发表于 2024-3-31 19:04
这个很实用,前段时间量样条曲线中间某点到起点距离就只能修剪后测总长,比较麻烦
头像被屏蔽
hjsen 发表于 2024-3-31 19:11
提示: 作者被禁止或删除 内容自动屏蔽
caojian1624 发表于 2024-4-1 07:53
谢谢分享
 楼主| xkbuild 发表于 2024-4-1 08:28
小能维尼 发表于 2024-3-31 18:44
我估计你和我一样,找到别人代码,然后改一下就行了
代码确实是一模一样

如果有好的代码,分项一下!
 楼主| xkbuild 发表于 2024-4-1 08:30
小能维尼 发表于 2024-3-31 18:44
我估计你和我一样,找到别人代码,然后改一下就行了
代码确实是一模一样

cAD统计线段交点数量lsp!这个你可以办到么?如果有代码,可否分项下!万分感谢
jjTest007 发表于 2024-4-1 09:12
ACAD内任何从曲线派生下来的对象都可以用使用参数的概念来表示曲线上的一个点,像楼主这段代码就可以让用户选取两次点,用vlax-curve-getParamAtPoint来分别获取两个点的参数值,传入vlax-curve-getDistAtParam来获取两点间距离,这样就不用管起点终点位置了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 20:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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