Qonfire 发表于 2022-7-6 09:03:05

插入块并缩放

你好
我需要帮助,我想在我现在所在的地方扩大我的障碍
(defun c:MyBlock (/ pt)
(setq pt1 (getpoint "\nPick Insertion point."))

(setq pt2 (getpoint "\nPick Insertion point."))

(setq d (command "dist" pt1 pt2))

(command "-insert" "1" "_non" pt1 (nth 0 d) "" "")   ////y scale depends on user input the rotation can wait

(princ)
)
 
不行,我想明天用
非常感谢。

BlackBox 发表于 2022-7-6 09:08:51

用您发布的代码快速重写:
 
一些改动,sysvar的改动会很好地解决这个问题。

pBe 发表于 2022-7-6 09:13:02

你是否认为X与Y的比值,其中X为1,Y取决于拾取点?
 
我不确定你的意图,但我想这样做:

(defun c:MyBlock (/ pt)
(setq pt1 (getpoint "\nPick Insertion point."))
(setq pt2 (getpoint pt1 "\nPick Insertion point."))
      (command "-insert" "1" "_non" pt1 1 (1+ (/ 1 (distance pt1 pt2))) "")

                (princ)
)
 
编辑:ooops。。

Tharwat 发表于 2022-7-6 09:14:06

再加上更多保险
 
(tblsearch "BLOCK" "1")

pBe 发表于 2022-7-6 09:18:10

 
啊!良好的ol预防措施。是 啊为什么不呢,你永远不能太确定

BlackBox 发表于 2022-7-6 09:21:03

如果块驻留在SFSP中,则不需要这样做。

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

 
你好
 
这个SFSP是什么?

BlackBox 发表于 2022-7-6 09:28:38

SFSP=支持文件搜索路径
 
我说不需要TBLSEARCH,因为块要么通过引用插入(TBLSEARCH=Non-nil),要么通过“find”(FINDFILE)插入。第一次插入后,引用将用于后续插入。

Tharwat 发表于 2022-7-6 09:31:03

这是正确的,
 
但所有已经给出的例程都表明,该块是从当前图形插入的,而不是外部的。
 
谢谢

Lee Mac 发表于 2022-7-6 09:33:21

我不确定您试图在规模方面实现什么,但这可能是构建代码的一种方法:
 
(defun c:test ( / block p1 p2 )

(setq block "1")

(if
   (or
   (tblsearch "BLOCK" block)
   (setq block (findfile (strcat block ".dwg")))
   )
   (if
   (and
       (setq p1 (getpoint "\nSpecify Insertion Point: "))
       (setq p2 (getpoint "\nNext Point: "))
   )
   (command "_.-insert" block "_S" (distance p1 p2) "_R" 0.0 "_non" p1)
   )
   (princ "\nBlock not found.")
)
(princ)
)
页: [1] 2
查看完整版本: 插入块并缩放