Veri alanlarındaki Güncelleme dizel ifadesi

  • Konuyu başlatan Konuyu başlatan x11start
  • Başlangıç tarihi Başlangıç tarihi

x11start

Guest
Şirkette çeşitli müşterilerin dosyaları için bir isim kullanıyoruz, bu şekilde ayarlanmış:

kırmızı mario 24900.dwggg

Hangisinde
- müşteri adı: değişken uzunluğu olabilir,
- Yıl
- Sözleşmenin ilerlemesi

Bu müşteri ile ilgili çeşitli çizimler için, bana otomatik olarak yıl ve komisyonu ekleyen bir dizel ifade ile veri alanları ekledim:
[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,$(getvar,dwgname)), 9,6)

Temel olarak, beni dosyanın adı alır, alttan 9 pozisyondan 6 karakter çıkarır.

Sorun şu ki, şimdi 1000'e yaklaşıyoruz... sonucumu sipariş ediyoruz: "24-1000" yerine "41000" olurdu.

Eğer dizel ifadede olursam dahil ederek çözdüm:
[imath](eğer,[/imath](substr.[imath](Getvar, Dwgname)[/imath](-,[imath](strlen,[/imath](Getvar,dwgname); 7)[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,[imath](Getvar,dwgname);[/imath](substr.[imath](Getvar, Dwgname)[/imath](-,[imath](strlen,[/imath](getvar,dwgname)), 9,6)

Yani:

$(if, -> if...
[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,$(getvar,dwgname)),7),1"1", -> Dosya adının sonundan 7 haç (yalnızca 1 crt) = "1".
[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,$(getvar,dwgname)),10),7), -> 7 crt (committee > 1000 için)
[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,$(getvar,dwgname)), 9,6) Aksi takdirde 6 crt için 9° crt (committee < to 1000)

) - > yakınlar eğer


... Benim problemim tüm bu verileri tüm çizimlerde değiştirmeliyim....

Size göre bir lisp veya senaryo oluşturabilirsiniz, "bul" ve bir veri alanında bir ifade?
 

Ekli dosyalar

Formda yayınlanan programdan başladım "elimeli kapaklardan", metini genişleterek sildim =-1, örneğin dwg'ye dizel ifade ile bir alan eklemek için, her şeyi yarattı. Bunu ihtiyaçlarınıza uygun olarak değiştirirsiniz.
 

Ekli dosyalar

Hemen cevap vermediysem üzgünüm. Bu günlerde artık Apple'ı kullanmadım.

Ona bir göz atacağım ve sonra bilmenize izin vereceğim.

Çok teşekkür ederim!
 
Tek bir komutla çözdüm, metin alanına tıklayarak (veya normal bir metinde bile), istenen dizel dizeyi ekleyin.
Neredeyse sadece bir ile küçük bir lisp yaptım (ve çok uzun!) çizgi:

(vlax-put(vlax-ename->vla-object (car (entsel)'textstring"%\\\acdieselsel [imath](eğer,[/imath](substr.[imath](Getvar, Dwgname)[/imath](-,[imath](strlen,[/imath](Getvar,dwgname); 7)[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,$(getvar,dwgname)),10),7)[imath](substr.[/imath](Getvar, Dwgname)[imath](-,[/imath](strlen,$(getvar,dwgname)), 9
(6)

Ps. Eğer değişiklik için metin bir blok içindeyse, editör bloklara girmek ve oradan lisp atmak zorunda değilim, metin alanını değiştirmek için.

Yardımınız için teşekkür ederiz.
 

Forum İstatistikleri

Konular
58,521
Mesajlar
499,056
Kullanıcılar
104,110
Son Üye
ChristianR

Çevrimiçi Üyeler

Şu anda çevrimiçi üye yok.
Geri
Üst