明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3218|回复: 15

[讨论] 请问如何同时在多条线段(PL线或者直线)定距插入块?

  [复制链接]
发表于 2013-4-23 17:15:03 | 显示全部楼层 |阅读模式
请问如何同时在多条线段(PL线或者直线)定距插入块?
平时采用ME命令,只可以针对一条线进行处理,请问有什么软件或者插件可以实现这个功能?
需要同时对多条线段进行处理。
发表于 2022-9-7 15:11:39 | 显示全部楼层
1993063 发表于 2013-5-4 00:27
(defun c:tt ( / *error* ans b cmdecho d e n ss)
  (defun *error* (s)
    (setvar 'cmdecho cmdecho) ...

我是新手,我刚才复制了您这段代码,保存了LSP文件,请问:加载后,输入什么指令,可以开启这个功能呢?谢谢了
发表于 2022-9-7 15:02:26 | 显示全部楼层
能用ME插入指定位置块,我觉已经是高手了,帮我解决了一个大难题。 我现在也需要一个插件:批量插入块(在若干条直线的中心点上),而且可以对齐直线。   
发表于 2018-10-13 22:28:37 | 显示全部楼层
不错的帖子  顶一下
发表于 2013-4-23 21:05:03 | 显示全部楼层
  1. (defun c:tt (/ cmdecho *error* d ss n e)
  2.   (defun *error* (s)
  3.     (setvar 'cmdecho cmdecho)
  4.     (princ s)
  5.   )
  6.   (setq cmdecho (getvar 'cmdecho))
  7.   (setvar 'cmdecho 0)
  8.   (setq d (getdist "\n输入定距:"))
  9.   (while (not
  10.            (tblobjname "block" (setq b (getstring "\n输入块名称:")))
  11.          )
  12.   )
  13.   (if (setq ss (ssget '((0 . "*line,arc,circle,ellipse"))))
  14.     (repeat (setq n (sslength ss))
  15.       (setq e (ssname ss (setq n (1- n))))
  16.       (command "measure" e "b" b "y" d)
  17.     )
  18.   )
  19.   (setvar 'cmdecho cmdecho)
  20.   (princ)
  21. )
 楼主| 发表于 2013-4-23 22:52:02 | 显示全部楼层
我承认,你是高手,你的回答就是我想要的答案,非常感谢!
如果可能,能不能在这个程序中加入一步“是否对齐块和对象?[是(Y)/否(N)] <Y>: ”,这个是在ME命令中使用到的,再次谢谢!
 楼主| 发表于 2013-4-23 22:52:59 | 显示全部楼层
补充一下,这是AUTOCAD中ME 的命令
发表于 2013-4-23 23:17:59 来自手机 | 显示全部楼层
我承认,你的要求我可以做到!如果可能,请你自己动动手!;)
 楼主| 发表于 2013-4-23 23:23:39 | 显示全部楼层
我是新新手,目前还不敢动手,只能先向您学习了,谢谢,请多多指教!
 楼主| 发表于 2013-4-24 09:07:56 | 显示全部楼层
高手,还请你指教啊,我都从昨晚等到现在了。
发表于 2013-5-4 00:27:19 | 显示全部楼层
本帖最后由 1993063 于 2013-5-3 06:29 编辑

(defun c:tt ( / *error* ans b cmdecho d e n ss)
  (defun *error* (s)
    (setvar 'cmdecho cmdecho)
    (princ s)
  )
  (setq cmdecho (getvar 'cmdecho))
  (setvar 'cmdecho 0)
  (setq d (getdist "\n输入定距:"))
  (initget "Y N ")
  (setq ans (cond ((getkword "\n对齐线[(Y)是/(N)否] <对齐>: "))("Y")))
  (while (not (tblobjname "block" (setq b (getstring "\n输入块名称:")))))
  (if (setq ss (ssget '((0 . "*line,arc,circle,ellipse"))))
    (repeat (setq n (sslength ss))
      (setq e (ssname ss (setq n (1- n))))
      (command "measure" e "b" b ans d)
    )
  )
  (setvar 'cmdecho cmdecho)
  (princ)
);;多玩玩,多动动
 楼主| 发表于 2013-5-4 02:45:46 | 显示全部楼层
试过了,可以使用,就是我想要的,非常感谢!
发表于 2015-6-6 22:45:59 | 显示全部楼层
高手,突然觉得这个程序很有用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 22:21 , Processed in 0.193744 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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