MikeP 发表于 2022-7-6 09:23:08

需要在线lisp方面的帮助

以下是我所拥有的:
 
(defun c:isol (/ ic)

(initget 6)
(if (setq ic (getdist "\nEnter Length: "))
   (command "_.LINE" "" (* ic 0.816496581)))

(princ))
 
我试图创建一个直线命令,它要求一定的长度,并绘制了这条线。但我有一个问题是,允许我点击线的基点,然后选择适当的角度,然后将线绘制到我指定的长度的缩小比例。

Tharwat 发表于 2022-7-6 09:32:01

一个非常有趣的主意,迈克,我真的很喜欢。
 
希望这能满足您的需求。
 
(defun c:test (/ p ang l p1)
(if (setq p (getpoint "\n base point :"))
   (progn
   (while
       (setq Ang (getangle p "\n Next point for Angle :"))
      (setq l (getdist "\n Specify length :"))
      (entmakex (list (cons 0 "LINE")
                        (cons 10 p)
                        (cons 11 (setq p1 (polar p ang l)))
                  )
      )
      (setq p p1)
   )
   )
   (princ)
)
(princ)
)

 
塔瓦特

MikeP 发表于 2022-7-6 09:42:02

有问题。当我尝试将其加载到appload时。当我尝试使用它时,它只是说未知命令。我确实将命令中的快捷方式更改为test以外的内容。
 
谢谢我用它来绘制等角图。这是从SW(或任何3d视图)到平面视图的比例。我有一个调暗样式设置,调暗比例等于该比例,因此我可以标注iso图纸的尺寸。

Tharwat 发表于 2022-7-6 09:49:10

 
没问题,你可以改变你想要的最好的例程的名称,我也觉得在这里出错,而通过在论坛线程步。
 
当做

CHLUCFENG 发表于 2022-7-6 09:52:44

合并这两个程序,然后添加一个当前尺寸比例的检查。。。
 

(defun c:isol (/ ic ds p ang p1)
(setq ds (getvar "dimscale"))
(if (setq p (getpoint "\nBase point :"))
   (progn
   (while
       (setq ang (getangle p "\nSelect Angle :"))
       (initget 6)
       (if (setq ic (getdist "\nEnter Length: "))
         (entmakex (list (cons 0 "LINE")
                              (cons 10 p)
                              (cons 11 (setq p (polar p ang (* ic ds))))
                   )
         )
       )
   )
   )
)
(princ)
)

 
:眨眼:

Tharwat 发表于 2022-7-6 09:56:34

如果(getvar“dimscale”)等于零会怎么样?
 
当做

BlackBox 发表于 2022-7-6 10:06:42

出于好奇。。。为什么不在模型空间中以1:1(真实比例)绘制线条,并使用图纸空间视口处理缩放?

CHLUCFENG 发表于 2022-7-6 10:13:33

 
嗯。。。
 
 
我认为这不是一个问题。但是,错误捕捉可以检查这一点,并在必要时提示用户。

MikeP 发表于 2022-7-6 10:18:06

提交的两个程序均未使用0.816496581的量表。我想输入一个长度,它会以选定的角度绘制一条按我的数字缩放的线。

CHLUCFENG 发表于 2022-7-6 10:26:19

这样行吗?
 

(defun c:isol (/ ic ds p ang p1)
(setq ds 0.816496581)
(if (setq p (getpoint "\nBase point :"))
   (progn
   (while
       (setq ang (getangle p "\nSelect Angle :"))
       (initget 6)
       (if (setq ic (getdist "\nEnter Length: "))
         (entmakex (list (cons 0 "LINE")
                              (cons 10 p)
                              (cons 11 (setq p (polar p ang (* ic ds))))
                   )
         )
       )
   )
   )
)
(princ)
)

 
然后,可以将ds变量更改为您喜欢的任何值。
页: [1]
查看完整版本: 需要在线lisp方面的帮助