danielk 发表于 2022-7-6 06:23:53

需要修复2个LISP(斜率

第一个lisp斜率。LSP以百分比标记直线的坡度,并且能够使用不同的水平和垂直比例,这在创建管段时非常有用。。。有时在autocad 2013或2014中,当我尝试重复该命令时,它工作得很好,因此我需要重新启动autocad。
 
第二个Lisp程序的斜线。LSP在指定坡度处创建直线。问题如下:
1) 仅当我将文件拖动到autocad屏幕时,lisp才会启动
2) 该线是在与我单击以创建它的点相反的方向创建的。
 
谢谢大家,我希望其他人也会发现它很有用。lsp
斜坡lsp

danielk 发表于 2022-7-6 06:35:55

有人吗?

GP_ 发表于 2022-7-6 06:46:12

也许 吧:
rem是lisp函数,不能表示为变量。
(setvar "osmode" rem)
 
 
 
 

;CODE
;by Maurizio - July 2011
(defun C:Slopedraw () ;; 1) missing parenthesis
   ;INPUT SLOPE
   (if (= pSlope nil)
       (setq pSlope 3.03)
   )
   (setq perc (getreal (strcat "\nSlope % <" (rtos pSlope 2 2) "> :")))
   (if (/= perc nil)
       (setq pSlope perc)
   )
   ;FIRST POINT - DISTANCE
   (setq p1 (getpoint "\nStart point: "))
   (setq dd (getdist "\nDistance: " p1))
   (setq dy (/ (* dd pSlope) 100.0))
   ;SECOND POINT AT LEFT AND DY > 0
   (setq p2 (mapcar '+ p1 (list (+ dd) dy 0))) ;; 2) substitute - with +
   (command "_line" p1 p2 "")
   (princ)
)
 

(setq p2 (mapcar '+ p1 (list dd dy 0)))

GP_ 发表于 2022-7-6 07:00:46

 
 
..........

danielk 发表于 2022-7-6 07:12:36

非常感谢你,斯洛。LSP工作得很好。
那斜坡呢。lsp你发现问题了吗?
我需要删除带有“rem”的raw吗?

neophoible 发表于 2022-7-6 07:22:30

GP_告诉你一个问题是什么。将rem重命名为rem2 everywhere将是一个简单的解决方案。试试看,这是否就是它所需要的全部。

neophoible 发表于 2022-7-6 07:25:34

事实上,除了在最后,我不知道rem在哪里被实际使用。看起来目的是保存OSMODE值,然后重置它,但没有发生。你可以像这样在开头附近加上缺失的一行
 
(setq rem2 (getvar "OSMODE"))
页: [1]
查看完整版本: 需要修复2个LISP(斜率