git_thailand 发表于 2022-7-6 08:43:44

需要修复此Lisp

(defun c:测试()
(setq p1(getpoint“\n点击点L:”)
p2(获取点“\n拾取点R:”)
p3(极性p2(dtr 270.0)(+(/0.10 2)0.10))
p4(极性p3(dtr 180.0)0.10)
p5(极性p4(dtr 150.0)0.10)
总和(-(距离p1 p2)0.373)
p6(极坐标p5(dtr 180.0)和)
p7(极坐标p6(dtr 210.0)0.10)
p8(极坐标p7(dtr 180.0)0.10)
“A梁”层
);endq公司
 
(命令“_layer”“m”layer”)
(命令“pline”p1 p2 p3 p4 p5 p6 p7 p8 p1“”)
(普林斯)
)
 
 
(defun dtr(x)
;定义度到弧度函数
 
(*π(/x 180.0))
;将角度除以180,然后
;将结果乘以常数PI
 
)    ;功能结束
(普林斯)

MSasu 发表于 2022-7-6 08:57:18

首先,你需要提供更多关于你想要实现什么的信息——在禁用OSMODE后,例程绘制一些东西,只是不知道是否出错:
 
(setvar "OSMODE" 0)
 
第二,请编辑您的帖子,以遵循代码发布的规则。
 
当做
米尔恰

git_thailand 发表于 2022-7-6 09:12:08


 
拾取p1 p2在地面上绘制截面混凝土板

git_thailand 发表于 2022-7-6 09:16:05


 
照片。lisp错误

MSasu 发表于 2022-7-6 09:24:11

请看下面我的红色对白:
 

(defun c:test ( / MyOldOsmode MyOldOrtho )
;retain current setting to be able to restore later
(setq MyOldOsmode (getvar "OSMODE")
      MyOldOrtho (getvar "ORTHOMODE"))
;disable auto-Osnap and activate Ortho mode
(setvar "OSMODE" 0) (setvar "ORTHOMODE" 1)

(setq p1 (getpoint "\nPick point L: ")
      p2 (getpoint p1 "\nPick point R: ")
      p3 (polar p2 (dtr 270.0) (+ (/ 0.10 2)0.10))
      p4 (polar p3 (dtr 180.0)0.10)
      p5 (polar p4 (dtr 150.0)0.10)
      sum (- (distance p1 p2 )0.373)
      p6 (polar p5 (dtr 180.0) sum)
      p7 (polar p6 (dtr 210.0)0.10)
      p8 (polar p7 (dtr 180.0)0.10)
      Layer "A-BEAM"
);endq

(command "_layer" "m" Layer "")
(command "pline" p1 p2 p3 p4 p5 p6 p7 p8 p1 "")

;restore previous environment
(setvar "OSMODE" MyOldOsmode) (setvar "ORTHOMODE" MyOldOrtho)
(princ)
)
 
当做
米尔恰

Tharwat 发表于 2022-7-6 09:37:08

Mircea,您只本地化了添加的变量,那么其余变量和子函数DTR呢?

MSasu 发表于 2022-7-6 09:53:31

这段代码可以做很多改进——我只修复了它,使其按预期工作。我不打算重写它。
 
当做
米尔恰
页: [1]
查看完整版本: 需要修复此Lisp