makimaki 发表于 2022-7-5 16:47:04

好了,makimaki,受够了“大师”的东西
 
2.这就是为什么我建议使用块而不是ACAD_表。为新手编写代码更容易。告诉我,你还想继续使用ACAD_表吗?我的下一个建议将取决于你的回答。[第2项]
 
3.vl字符串subst

(vla-settext atable 1 2 "DISTANCES")
(vla-InsertRowsAndInherit atable 2 0 1)
(vla-settext atable 2 0 "WHERE YOU GET THE TITLE")    
(setq row 3)
   (foreach itemtable_data

 
但是,对于一位数的值“S 075d29’W”,是否需要前导“0”

pBe 发表于 2022-7-5 16:49:28

你好,pBe。
 
对于#2。也许我会接受你关于使用积木的建议。请帮助我,因为使用积木,我完全没有知识,谢谢pBe。
 
对于#3。有趣的是,我昨晚在做实验,幸运的是我做对了。我们有相同的代码。哈哈哈。
是的,我需要前导“0”表示个位数。(即:S 7d29’W将变为S 07d29’W;S 23d9’W将变为S 23d09’W。我不知道该怎么做。提前感谢pBe的帮助。
 
当做
makimaki公司

makimaki 发表于 2022-7-5 16:51:36

等等,makimaki,你在骗我为你写代码
 
标题如何[它的来源是什么?提示和/或选择?

pBe 发表于 2022-7-5 16:55:09

 
哈哈哈。你难住我了。但我真的需要你的帮助。我没有足够的时间,我的学习将在3天后进行。
 
选择文本更适合标题的来源。还记得你帮我做批号和分批号的代码吗?用户将选择批号或子批号作为所有权来源。
再次非常感谢pBe。别担心,我会把你包括在我的感谢信中,甚至把我的研究报告给你看/上传,这样你就会知道你帮了我多少。再次感谢pBe先生。

makimaki 发表于 2022-7-5 16:59:44

我们将使用普通代码和块
 
(setq ang (vl-string-subst "%%d" "d" (angtos ang 4 2)))
 
BLLM:用于连接线
 
(defun c:maki2 ( / _pad0angtos data sn title sp np bearing dst data Main_start data_ip
                        LineValue1 LineValue2 BearingValue DistanceValue)
;;;                            Vanilla code                        ;;;
;;;                         pBe 31 Marc 2015                ;;;

(defun _pad0angtos(br / i n)
(setq i 2
    l (strlen br))
(while (/= (substr br (setq i (1+ i)) 1) "d"))
(setq n    (mapcar '(lambda (n)
                        (strcat (if (< (setq n (atoi n)) 10)
                                    "0""")
                              (itoa n)))
               (list (substr br 2) (substr br (setq i (1+ i))))))
(strcat (substr br 1 2)
      (car n)"%%d" (cadr n)
      (substr br (- l 2)))
)
   (setq main_start nil)
   (setvar 'Attdia 0)
   (setvar 'Attreq 1)
   (command "-layer" "m" "Technical Description" "")
   (command "-layer" "c" "7" "Technical Description" "")
   (setvar "cecolor" "bylayer")
   
   
           (while
             (and (progn
                        (setq data nil SN 1)
                        (initget "N")
                        (setq Title (entsel "\nSelect Lot Name Text / N for name: "))
                        (and Title
                         (setq Title (if (eq Title "N")
                                   (strcase (getstring "\Enter Lot Name : "))
                                      (if (member (cdr (assoc 0 (setq ent (entget (car Title))))) '("TEXT" "MTEXT"))
                                                  (cdr (assoc 1 ent)))))
                           (snvalid Title))
                        )
                  (setq sp (getpoint "\nPick Start Point"))
                  (setq sp_ sp)
                  )
        (while
            (setq np (getpoint sp "\nPick Next Point"))
            (setq dst (distance sp np))
              (setq bearing (angle sp np))                               
              (setq dst (Strcat (rtos dst 2 2) " m."))       
              (setq bearing (angtos bearing 4 2))
            (setq bearing (_pad0angtos bearing))
              (setq data (cons
                               (list (itoa sn)Bearing dst np) data))
            (setq sp np sn (+ 1 sn))
            )
             (setq data (cons (list(itoa sn)
                                  (_pad0angtos (angtos (angle sp sp_) 4 2))
                                     (Strcat (rtos (distance sp sp_) 2 2) " m.")) data))
             (setq data (reverse (cons (last data) data)))

          (if (null Main_start)
               (progn
                             (setq Main_start (getpoint "\nPick Insertion point for Main Title location"))
                             (command "-Insert" "MainTitle" "_non" Main_start "" "")
                     
                     (setq Data_ip (polar Main_start (* pi 1.5) 6.0))
                     )
               )
      (command "-Insert" "LotTitle" "_non" Data_ip "" "" Title )
      (while (and (setq data1 (car data))
                   (setq data2 (cadr data)))
             (setq Data_ip (polar Data_ip (* pi 1.5) 1.6))
             (setq LineValue1 (car data1))
             (setq LineValue2 (car data2))
             (setq BearingValue (cadr data1))
             (setq DistanceValue (caddr data1))
             (command "-Insert" "Data" "_non" Data_ip "" ""
                  LineValue1
                  LineValue2
                  BearingValue
                  DistanceValue
                   )
                       
                        (Setq data (cdr data)))
               
       (command "-Insert" "table_close" "_non" Data_ip "" "")
       (setq Data_ip (polar Data_ip (* pi 1.5) 3.0))   
       )
   
   (princ)
)

 
BLLM块
BLLM_标题。图纸
BLLM_数据。图纸
 
Maki2区块
洛蒂特。图纸
数据图纸
主要标题。图纸
 
BLLM和Maki2的公共块
table_关闭。图纸
 
(defun c:bllm ( / BLLM# BLLM_N BLLM_E BLLMDATA BLLMC Title BLLMipt BLLMipt)
   (if (and
        (setq BLLM# (getint "\nEnter BLLM Nos.: "))
        (setq BLLM_N (getreal "\nEnter Northing: "))
        (setq BLLM_E (getreal "\nEnter Easting: "))
               )
   (progn
       (setq BLLMDATA nil
             BLLMC    (list BLLM_E BLLM_N))
(while
             (and (setq Title (strcase (getstring "\nEnter Lot Name: ")))
           (snvalid Title)
                  (setq sp (getpoint BLLMC (Strcat "\nPick corner # 1 for " Title )))
                  )
             (setq BLLMDATA (cons (list title (_pad0angtos (angtos (angleBLLMC sp)))
                                       (strcat (rtos (distance BLLMC sp) 2 2) " m.")) BLLMDATA))
             )
       (setq BLLMipt (getpoint"\nPick BLLM table insertion point"))
       (command "-Insert" "BLLM_Title" "_non" BLLMipt "" "" (itoa BLLM# ))
       (setq BLLMData_ip (polar BLLMipt (* pi 1.5) 7.6))
       (foreach TieLines (reverse BLLMDATA)
             (command "-Insert" "BLLM_Data" "_non" BLLMData_ip "" ""
                  (car TieLines)
                   (cadr TieLines)
                   (last TieLines)
                   )
         (setq BLLMData_ipp BLLMData_ip
               BLLMData_ip (polar BLLMData_ip (* pi 1.5) 1.6))
             )
                     (command "-Insert" "table_close" "_non" BLLMData_ipp "" "")
       )
         )
   (princ)
   )
 
此提示将要求用户选择文字/多行文字,或者如果没有要选择的对象实体,则用户可以键入“N”以提示输入名称
 
HTH公司

pBe 发表于 2022-7-5 17:00:30

 
非常感谢pBe先生。刚刚通过true view将dwg文件转换为2010,因为我只有aCAD2010。
 
先生,我对你的例行公事有点困惑。首先,它会要求我为地块名称选择或提示一个名称,然后它会要求我选择边界点,单击enter后,会出现一个block attrib对话框并要求输入名称。我不知道它是怎么工作的。或者这是因为我有2010年aCAD。
 
2.这个例程是独立的还是应该与第一个代码结合?谢谢你的帮助,pBe先生。

makimaki 发表于 2022-7-5 17:05:35

哎呀。
 
找出当insert命令提示输入属性值Makimaki时,对话框出现的原因。并将其包含在代码中
 
对于原始代码中的这一行
(命令“cecolor”“bylayer”)将其更改为(setvar“cecolor”“bylayer”)[

pBe 发表于 2022-7-5 17:08:50

可怜的我。我真的不知道该怎么办,pBe先生。

makimaki 发表于 2022-7-5 17:11:57

 
真的吗?
 
属性1
收件人0
 
随便。请参阅第16页的更新代码
 
编辑:等等,我在那里看到了一个bug,最后一点对一点[愚蠢的我]。。。已更新

pBe 发表于 2022-7-5 17:12:49

页: 1 [2]
查看完整版本: 将地块/多边形数据生成到t