中易网

请问各位大侠,在CAD中,如何将点批量沿选定直线垂线的方向移动至该直线上?

答案:2  悬赏:40  
解决时间 2021-01-30 00:11
请问各位大侠,在CAD中,如何将点批量沿选定直线垂线的方向移动至该直线上?
最佳答案
(defun C:MJL3 ( / &kw &kw1 &kw2 i @p1 @p2)
 (setvar "cmdecho" 0)
 (setvar "blipmode" 0)
 (princ "
请选择点")
 (setq &kw (ssget (list (cons 0 "POINT"))));;选择对象是点
 (if (= &kw nil) (alert "
对象不是点") )
 (if (/= &kw nil)
  (setq &kw1 (entsel "
请选择要对齐的直线或多段线或圆"))
 )
 (if (= &kw1 nil) (alert "
没有选择对齐的直线或多段线") )
 (if (/= &kw1 nil)
  (progn
   (setq i 0)
   (setq &kw1 (vlax-ename->vla-object (car &kw1)))
   (repeat (sslength &kw)
    (setq &kw2 (entget (ssname &kw i)))
    (setq @p1 (cdr (assoc 10 &kw2)))
    (setq @p1 (vlax-curve-getclosestpointto &kw1 @p1));;取得点到直线最短距离
    (setq @p1 (cons 10 @p1))
    (setq @p2 (assoc 10 &kw2))
    (setq &kw2 (subst @p1 @p2 &kw2))
    (entmod &kw2);;点到直线
    (setq i (+ i 1))
   )
  )
 )
 (prin1)
)
(prompt "
命令《C:MJL3》")
(prin1)复制到记事本,以(.lsp)后缀命名,加载autoLISP,快捷键(MJL3)就可以批量移动点了
追问朱老师,我试了,但不行,提示“参数类型错误: listp ”。追答这个原因打错了一个字:length修改为sslength即可,上面的已经修改过了,重新复制粘贴即可解决。
全部回答
通过坐标进行快速定位,我就以直线在X轴为例,查看直线的Y轴坐标是多少,然后选取全部的点,右击选择特性,位置Y坐标处填写直线的Y轴坐标即可搞定。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小猫取名
男朋友说他前女友太固执了,就这点不好。他这
考试后,老师让我们写反思,怎么写啊?
才女画家高瑶瑶
我和女朋友(其实我们的关系已经是名存实亡了
100元的学平险可以吗?保障是不是小了?
写两首诗歌当歌词
雷尚造型地址在什么地方,想过去办事
哪有做轻钢结构房屋的,多少钱一平
笔记的硬盘是sata还是msata?它们供电借口方
我在VM里装的是linux系统外部windows 能ping
美的空调还收安装费吗
英语中220000怎么读
联想笔记本发热怎么办
丽水至舟山汽车
推荐资讯
宽大于多少米的机动车均应安装示廓灯
阿拉善右旗(昱峰通讯店)怎么去啊,我要去那办
兰州到舟曲的甘南的邮件几天能到啊?
进军礼仪地址在什么地方,想过去办事
英文名字janey的意思?janey的意思是珍妮还是
武汉阀门是不是武汉千锤百炼管道装备有限公司
地球母亲迫切希望有一件完整的绿衣服 意思是
重庆哪个少数民族的人口最多?是苗族还是土家
女友过生日 第一次去她家带什么礼物
西北村地址在什么地方,想过去办事
耐压试验由哪一方做
李连杰和甄子丹谁的地位大
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?