suriwaits 发表于 2022-7-6 07:30:44

难以置信的东西。
 
谢谢你花时间处理我的请求,我很感激。
 
效果很好
 
我已经按照自己的意愿更改了值
 

(defun c:Test (/ *error* j ss i e)
;;--- Tharwat 31. March, 2013 ---;;
(defun *error* (msg)
   (princ
   "\n*Cancelled by user or by coincidence ,Nothings more*"
   )
)
(if (setq j0.
       ss (ssget "_:L" '((0 . "INSERT") (2 . "180DEG,360DEG,90DEG")))
   )
   (repeat (setq i (sslength ss))
   (setq e (entget (ssname ss (setq i (1- i)))))
   (cond ((eq (cdr (assoc 2 e)) "90DEG")
      (setq j (+ 0.06 j))
       )
       ((eq (cdr (assoc 2 e)) "180DEG")
      (setq j (+ 0.12 j))
       )
       (t
      (eq (cdr (assoc 2 e)) "360DEG")
      (setq j (+ 0.23 j))
       )
   )
   )
)
(if (> j 0)
   (alert (strcat "Total Values : " (rtos j 2 4)))
)
(princ)
)

Tharwat 发表于 2022-7-6 07:35:42

 
很好,很高兴听到这个消息。

suriwaits 发表于 2022-7-6 07:39:59

你好
 
我需要lisp来执行以下操作,以便将放置块放置在pline边界上:
 
 
步骤1
 
1.要求选择pline/line的命令(命令行或警报)
2.显示拾取对象的列表长度(警报消息)。
要求用户输入“输入头部间距”(输入应在这些数字中的任意一个上)
3.将显示值除以用户输入值
4.将除法值显示为“没有可能的磁头。(警报消息)
5.要求用户输入“所需的头数为(这将是上述的四舍五入值)。(警报消息)
 
6.计算长度除以所需的无压头,在输入值的+-0.25范围内(输入为1.25,2.25,2.75,3.25,4.25)
然后继续执行步骤7
 
如果与输入值不在+-0.25范围内,则要求用户“输入不同的值或按ESC取消操作
 
如果输入了不同的值,请重复步骤6
 
 
7.使用autocad divide命令,一旦通过标准,将输入作为步骤6中的段数。
 
8、使用块选项
 
9.如果用户输入为1.25,则输入块名为5-180
2.25然后输入块名为8-180
2.75然后输入块名为10-180
3.25然后输入块名为12-180
4.25然后输入块名为15-180
10.结束
 
 
 
提前感谢
 
Suriwaits。

SLW210 发表于 2022-7-6 07:45:27

请阅读代码发布指南,以后将您的代码放入代码标签中。这次我帮你修好了。
页: 1 [2]
查看完整版本: 为块指定值