Organic 发表于 2022-7-6 14:46:50

Z值请lisp

是否可以创建一个lisp,将模型空间中所有直线的开始Z值和结束Z值设置为0?

Lee Mac 发表于 2022-7-6 14:54:16

直线和多段线,还是仅仅直线?

Came 发表于 2022-7-6 14:57:56

那是什么
 
尝试网站
http://ronleigh.info/autolisp/index.htm
http://klobouk.fsv.cvut.cz/~chour/Lisp/Chapter%201。htm
 
或者如果你是layzy
 
http://www.jtbworld.com/lisp.htm   
http://www.cadmonkey.com/lisp.htm
 
给我一个月,我会为你写一封
 
 
am学习基础
 
 
他没有睡觉

Lee Mac 发表于 2022-7-6 15:01:37

请尝试以下线路:
 


(defun c:0line (/ ss pt1 pt2 lst)
(if (setq ss (ssget "X" (list (cons 0 "LINE")
   (if (getvar "CTAB")(cons 410 (getvar "CTAB"))
      (cons 67 (- 1 (getvar "TILEMODE")))))))
   (progn
   (setq ss (mapcar 'entget (mapcar 'cadr (ssnamex ss))))
   (foreach elst ss
   (setq pt1 (cdr (assoc 10 elst)) pt2 (cdr (assoc 11 elst)))
   (setq pt1 (subst 0.0 (last pt1) pt1) pt2 (subst 0.0 (last pt2) pt2))
   (setq lst (subst (cons 10 pt1) (assoc 10 elst) elst))
   (entmod (subst (cons 11 pt2) (assoc 11 lst) lst))))
   (princ "\n<!> No Lines Found <!>"))
(princ))


 
不是我最好的,但这里已经午夜了。

Came 发表于 2022-7-6 15:05:25

dam你跑得很快
 
我已经做了一半,还有一些错误
 
我扮演一个角色:wink:

Lee Mac 发表于 2022-7-6 15:07:17

 
如果你需要帮助,请坚持,告诉我

Lee Mac 发表于 2022-7-6 15:12:50

老实说,在我发布的LISP中,我想使用mapcar函数同时更改起点和终点,但由于某些原因,当我这样做时,只有端点会被更新,所以不得不接受不太优雅的方法。

CarlB 发表于 2022-7-6 15:14:25

有时不太优雅的方法效果很好,甚至可能更少的代码!
 
例如,您可以选择所有直线和多段线(例如ss1),然后使用移动命令将其“展平”为0:
 
(命令“_move“ss1”“”(0.0 0.0 1e99)”。_move“ss1”“”(0.0 0.0-1e99)”)

David Bethel 发表于 2022-7-6 15:18:45

也许这些年来它已经改变了,但是如果它处理不同的z值,那么“改变”“P”“E”将是甜蜜的
回到AutoLISP
 
将所有模型空间线Z轴值更改为0.0
 
大卫

dave buckberry 发表于 2022-7-6 15:21:10

试试这个,前几天我发现我的一个朋友,他在文件上有问题,他被发送了所有的平面图都在不同的z上,这将全部移动到0,没有遗漏任何内容,他很高兴希望这有助于下载和加载Lisp,并在命令行中键入Z0在图纸中选择全部,然后它移动全部或只选择需要移动的内容
 
问候Dave b
MOVEZ。lsp
页: [1] 2
查看完整版本: Z值请lisp